Android基础与应用开发教程完整版课件全套ppt教程

上传人:可**** 文档编号:242899557 上传时间:2024-09-11 格式:PPTX 页数:244 大小:10.01MB
返回 下载 相关 举报
Android基础与应用开发教程完整版课件全套ppt教程_第1页
第1页 / 共244页
Android基础与应用开发教程完整版课件全套ppt教程_第2页
第2页 / 共244页
Android基础与应用开发教程完整版课件全套ppt教程_第3页
第3页 / 共244页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2020-5-25,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,单击此处编辑母版标题样式,单击此处编辑母版副标题样式,Android,基础与应用开发教程,Android,概述,第一章,2003,年,Android,高科技股份有限公司在美国加州成立,2005,年被世界著名的,Internet,引擎公司,Google,收购,2007,年,11,月,,Google,与其他,33,家公司宣布成立开放手机联盟,(OHA),2010,年末,,Android(,安卓,),操作系统超越称霸十年的诺基亚,Symbian(,塞班,),系统,跃居为全球最受欢迎的智能手机平台。,1.1 Android,发展概况,总之,经过多方努力,,Google,的,Android,现已形成一个完整的开放式生态系统,它有,3,个组成部分,:,(1) Android,开源工程,(Open Source Project:,包含系统的全部源代码,供开发移动电话系统使用,;,(2) Android,开发者,(Developer):,包含应用层接口和开发参考文档,供开发应用系统使用,;,(3)Android,市场,(Market):,系,Google,为,Android,程序提供交易的场所,开发者可上传自己的程序,使用者可在市场上下载这些程序。,1.1 Android,发展概况,显然,Android,从一开始就面临着巨大的挑战。在此情况下,,Google,采取了一系列措施来增强自己的竞争优势,其核心就是开源和免费。具体地说,,Google,公开自己开发的,Android SDK,软件包,让第三方开源社群的开发者开发出数量众多的,Android,应用程序,;Google,与最有影响力的龙头公司结成联盟扩大,Android,软硬件研发队伍,;,采用,ASL,开放源码版权,;,建立免费的,Android Market,集散市场,;,举办开发者有奖挑战大赛活动,等等。下面我们将分别简要说明,Google,这些措施的具体实施情况。,1.2 Android,面临的挑战,正是“免费”与“开放”这两个关键字,免费保证了全球的移动电话制造商可免费地随意安装,Android,操作系统,这样可降低,15%,一,20%,的手机制造成本。,开放是指除开源,Linux,作为操作系统内核外,还开放内核的开发工具,让最上层的应用程序开发者可以在统一开放的平台上开发程序,而不必理会这些程序会用在哪种手持装置上。只要采用,Android,操作系统,程序内容就不受硬件的限制、都是可移植的。,免费与开放同时也意味着将来用户有更多机会选择更开放的环境,也表示手机,用户拥有更多的决定权。当硬件的界限打破后,可以想象手机也会像个人计算机那样由用户自行决定需要哪些软件功能,可以自行安装和移除功能,完全不需要无奈地接受手机制造商的默认系统软件设置与环境,用户可依据个人需求定制自己手机的内容。,1.3,开放性与免费问题,1.3,开放性与免费问题,开放手机联盟,(Open Handset Alliance,OHA),就是手机和技术领导者联合组成的一个群体,他们希望分享这个改变着消费者移动体验的愿景,目的是加速手机的创新和尝试,为消费者提供更丰富、更便宜和更好的手机体验。,OHA,的每个成员都坚定地致力于实现移动生态系统更大的开放性,致力于商业部署和服务于使用,Android,平台的手机。,开放手机联盟体现了移动生态系统的各个部分。其中的成员包括移动运营商,(13,家,),、手机制造商,(22,家,),、半导体公司,(20,家,),、软件公司,(17,家,),和商业化公司,(12,家,),。,1.4,开放式手机联盟,联盟的主旨,是将,Android,作为一种开放的平台,这对于给消费者来说,将会让他们得到更便宜更新颖的移动设备和服务,会给消费者带来更耐看更易使用的用户界面和更丰富的应用组合,;,对于移动运营商来说,将会具有完全的灵活性来定制和区别对待他们的产品系列,并降低手机的整体成本。此外,他们也将能够更迅速地领会手机和服务方面的创新,;,对于手机制造商来说,他们将受益于降低,BOM,软件的成本和缩短手机上市时间。此外,他们将会有更大的灵活性定制和区别对待他们的产品供应,;,而对于半导体公司来说,需要了解利用这些解决方案来增强功能的复杂软件,好让未来的处理器能够包含更多内核和访问共享外设,如三维图形、信号处理器和专用多媒体加速模块等,让手机芯片变得更贴近实际需要。,1.4,开放式手机联盟,Android,市场,(Google Play,,原名为,Android MarketOS,是,Google,为了让,Android,开发人员将应用程序上载销售的集散网站,而,T-Mobile G1,手机的用户,则可以到,Google Play,网站下载自己所需的应用程序到手机上使用。,Google,创造的这个网站不用,Android Store,名称是因为,Store,是商店,暗含店中所有商品必须花钱获取,;,而,Play(,或,Market),则有比赛、才智运用和消遣之意,开发者在此网站上上载或下载与他有关的程序,还可决定,Android,用户下载时是否收费。,1.6 Android,市场,1.,使用,APK Downloader,下载,APK Downloader,是,Google,浏览器,Chrome,的一个插件,且它必须在,Chrome 17,或更高版本上使用。,2.,使用,Real APK Leecher,下载应用程序,Real APK Leecher,是一个独立的应用程序,其设置方法与,Downloader,同,插件基本相同,但这个软件的当前版本不如,Downloader,好用,操作起来不尽如人意,故建议使用,Downloader,插件。,1.6 Android,市场,1.6.1,从,Google Play,下载应用程序,上传应用程序可遵照,Google,所给的发行准备操作步骤进行操作,准备工作共分,16,步。它们是,:,了解分发流程,;,了解,Google Play,的政策,;,确定应用程序内容评级,;,确定分发的国家,;,确认应用程序的整体规模,;,确认应用程序平台和屏幕兼容范围,;,决定应用程序是免费或给出定价,;,考虑应用程序部分代码的计价,;,设定应用程序的价格,;,执行本地化工作,;,准备高质量促销图片,;,组建和上传发行准备版,APK;,完成产品的详细信息,;,在促销活动中使用,Google Play,徽标和链接,;,最后的检查和发行,;,发行后对用户的服务。,1.6 Android,市场,1.6.2,上传应用程序到,Google Play,本章简要地介绍了,Android,的发展过程,以及,Google,围绕着它的发展所采取的一系列措施,其中包括建立开放手机联盟、实施源代码完全开放与免费使用、采用,ASL,版权、建立,Android,市场、举办开发者挑战大赛等。在,OHA,成员和,Google,的不断努力下,现在已经形成了一个完整的,Android,生态系统,使得,Android,取得了空前的大发展。,1.8,本章小结,感谢观看,Android,基础与应用开发教程,大连理工大学出版社,Android,应用程序开发基础,第,2,章,2.1 Android,软件开发概述,2.1 Android,软件开发概述,第,1,层,:Linux,内核,(Linux Kernal),层,由操纵移动设备硬件的,Linux,内核程序组成。其中包含的驱动程序有,:,进程,/,线程间调用,(Binder IPC),管理,闪存,(Flash Memory),管理,音频、视频、显示器,(Display),管理,摄像机,(Camera),管理,无线网络协议栈,(WiFi),和电源管理,小键盘,(Keypad),管理,2.1 Android,软件开发概述,第,2,层,:,函数库与系统运行库,(Libraries/Android Runtime),层。函数库,(Libraries),由开源代码函数组成,其中包括,标准,C,函数库,(Libc),、,安全套接层函数库,(OpenSSL),、,数据库,(SQLite),、,网页函数库,(WebKit,,负责,Android,网页浏览器的运行,),、,字体光栅化引擎库,(FreeType,,将字符栅格化并映射成位图和支持其他字体,),、,界面管理器,(Surface Manager,,控制显示系统访问并支持平面和立体图像,),2D,图形库,(Skia Graphics Library, SGL),3D,图形与多媒体函数库,(OpenGL/ES,和,Media),2.1 Android,软件开发概述,第,3,层,:,应用架构,(Application Frameworks),层,是应用程序架构,API,的集合,其主要目的是让应用程序开发者便于利用其中常用的例行程序进行架构设计,以便快速开发,Android,应用程序。常见的,API,包括,:,View System(,视窗系统,如制作列表,list,、表格,grid,、文本框、按钮等,),Resource Manager(,资源管理器,提供字符串、图形和布局文件等非代码资源的访问,),Content Provider(,内容提供者,让应用程序共享和互访彼此的数据,),Notification Manager(,通知管理器,让应用程序在状态栏中显示自定义的提示信息,),Activity Manager(,活动管理器,管理应用程序生命周期和浏览器导航回退等,),Window Manager(,窗口管理器,),Telephone Manager(,电话管理器,),Package Manager(,包管理器,),Location Manager(,位置管理器,),2.1 Android,软件开发概述,第,4,层,:,应用,(Applications),层,是,Java,语言编写的应用程序。,Android,手机中预装了若干应用程序,它们可高速地运行在,Dalvik,虚拟机上,如电话拨号、日历、地图、浏览器、通讯录、,SMS,短信,),、,E-Mail,客户端、游戏等。此外,还可编写自己的应用程序或从,Android,市场,(Android Market,上下载应用程序,将它安装在自己的手机上使用。,2.2 Android SDK,2.2 Android SDK,2.2.2 Android,模拟器,Android SDK,除底层的,Linux,内核外,最重要的工具就是,Android,模拟器,(AVD),。,Android,模拟器所模拟的处理器是一种,32,位的高级,RISC,机器,(Advanced RISC Machine,ARMy ARM,在手机和其他嵌人式设备中广泛使用的原因是它对电源要求较低,例如,,iPod,Nimtendo DS,和掌上游戏机都运行在只有,3,万只晶体管的,ARM4,上,而奔腾系列,CPU,的晶体管数量高达,320,万只。所有,Android,应用程序的开发并不需要在真实的手机上进行,使用,AVD,就能够完成应用程序代码的调试、运行和测试,以及,SD,存储卡的添加。除,USB,接口、照相机、视频捕捉、耳机、电池模拟和蓝牙等功能外,,90%,的应用程序开发都可以在手机模拟器上完成。,2.2 Android SDK,2.2.4 Android,排错工具,为了便于程序调试,Android SDK,除了提供模拟器之外,还提供了一个排错工具,android,调试桥,(adb),。程序开发过程中难免出现这样或那样的错误,调试,(Debug,或称为“排错”,),工具是必不可少的。,Android,的,adb,除提供程序编码排错外,还可以连接到个叹计算机与,Android,模拟器。,2.2 Android SDK,2.2.5 Android SDK API,2.3 Android 与 Eclipse,2.3.1 Android 开发工具 ADT,在,Eclipse,中安装了,ADT,后,就可获得完善的,IDE,功能和捆绑在,ADT,中的,Android,特有的功能。,Eclipse,和,ADT,的重要特征为,:,(1),集成了,Android,工程的创建、组建、打包、安装和调试功能,:ADT,向,Eclipse,中集成了许多开发工作流任务,很容易让使用者迅速开发和测试他所开发的,Android,应用程序。,(2) SDK,工具集成,:,许多,SDK,工具都集成到了,Eclipse,的菜单和透视图中,或成了,ADT,所运行的后台进程的一部分。,(3)Java,编程语言和,XML,编辑器,:Java,编程语言编辑器包含常见的,IDE,功能,如编译时语法检查、代码自动补足。,ADT,还提供了自定义,XML,的编辑器,可以用,UI,形式来编辑,Android,特有的,XML,文件。它的图形化布局编辑器允许使用拖放方式设计用户界面。,(4),集成了,Android,架构,API,的综合文件,:,可以将鼠标悬停在类、方法或变量上来访问文档。,2.4 Android 的其他开发工具,1. Android,开放辅助开工具库,(Open Accessory Development Kit),2. Android App Inventor(,应用程序发明家,),3. HyperNext Android,创建器,4. Simple,规划,5. Basic4android,2.5 Android 程序的基本组成部分,2.5.1 Android 应用程序的基本组件,01,活动,活动,(Activity),是,android. app,包内的一个类,它是显示用户界面,(,或窗口,),的应用程序组件,用户可以与它交互来做一些操作,如拨打电话、拍照、发送电子邮件或查看地图等。通常用户界面填满整个屏幕,但可能小于屏幕或浮动在屏幕上另一窗口的上方。,应用程序通常由多个彼此松散地关联的活动组成。,2.5 Android 程序的基本组成部分,2.5.1 Android 应用程序的基本组件,02,服务,服务,(Service),也,android, app,包内的一个类,它是应用程序的另一个组件,它没有用户界面且可长期在后台运行。,服务基本上有两种形式:,启动,:,应用程序组件,(,如活动,),调用,StartService(),时,服务即告启动,然后便在后台无限期地运行,即使启动它的组件已销毁。,关联,(,或绑定,):,应用程序组件调用,bindService),关联到某服务时,该服务就被绑定了。,2.5 Android 程序的基本组成部分,2.5.1 Android 应用程序的基本组件,03,意图,应用程序三个核心组件(,活动、服务和广播接收者,),都是通过意图,(Intent,的消息激活的。意图是,android. content,包内的一个类,意图的消息是它与应用程序组件之间绑定的手段。意图可执行的任务有广播消息、启动服务、发起活动、显示,Web,页面或内容列表,以及发起和回答电话呼叫等。意图是,Intent,对象,它是抽象描述所执行操作的被动式数据结构,;,在广播情时它经常是某事已经发生或公布某件事的描述。,2.5 Android 程序的基本组成部分,2.5.1 Android 应用程序的基本组件,03,意图,意图分为两类:,显式意图,用名字指定其目标组件。由于开发人员一般不知道组件名称,所以显式意图多用于应用程序内部的消息,如启动从属服务的活动或启动姊妹活动等。,隐式意图,未指名目标组件,(,空白组件名称,),,意图对象经常用它激活其他应用程序中最佳适配的组件。,2.5 Android 程序的基本组成部分,2.5.1 Android 应用程序的基本组件,04,视图,视图(View),是,android. view,包内的一个类,它是用户界面,(UI,)中基本组成块。视图分层次且会绘制,(,显示,),自己。它是窗体小部件的基类,占据屏幕上一个矩形区域,并负责绘图和处理用户交互事件,它可以是按钮、标签、文本字段或其他,UI,元素。,2.5 Android 程序的基本组成部分,2.5.1 Android 应用程序的基本组件,05,视图,内容提供者(ContentProvider),是,android, content,包内的一个类,它管理结构化数据集的存取。它可封装数据,并提供数据安全性的定义机制。内容提供者是把一个进程中的数据连接到另一进程中运行的标准接口。,2.5 Android 程序的基本组成部分,2.5.1 Android 应用程序的基本组件,06,广播接收者,广播接收者(BroadcastReceiver),是,android. content,包内的一个类,它是响应全系统内广播通知的组件。许多广播起源于系统,例如广播通知屏幕已关闭、电池容量过低或捕获图片等。应用程序也可以启动广播,例如通知其他应用程序数据已下载到设备上可供使用。广播接收者不显示用户界面,但它可创建一个状态栏提示用户有广播事件发生。更普遍的是广播接收者只是通往其他组件的“通道”,只做非常少量的工作。,2.5 Android 程序的基本组成部分,2.5.2 Android,应用程序的资源,一个Android,应用程序不仅由源代码组成,它还需要与源代码分开的一些资源,诸如字符串、图片、图像、动画文件、音视频文件,以及有关应用程序的视觉显示有关的数据资源。它可能还需要定义菜单、样式、颜色、活动的用户界面布局,XML,文件。定义应用程序资源有两种方法,:,使用程序代码和使用,XML,文件。前者是,Java,使用的方法,而,Android,能够同时使用这两种方法,但主要是使用,XML,文件。,XML,文件能够让应用程序更新变得非常容易,无需修改代码。,2.5 Android 程序的基本组成部分,2.5.3,程序集文件,AndroidManifest, xml,AndroidManifest, xml,是整个应用程序的配置文件,它定义了整个应用程序的内容和行为。,Android,系统每启动一个应用程序组件,必须读取该这个,AndroidManifest.xml,文件才能知道该组件是否存在。因此,应用程序必须在这个文件内声明它所用的全部组件。,AndroidManifest. xml,文件必须保存在应用程序工程的根目录内。,2.6,本章小结,本章内较详细地介绍了,Android,平台的系统结构、各部分的组成部件和主要的功能,以及在该平台可开发的软件种类。本章还较详细地介绍了,Android SDK,现有的版本,以及其中重要的组成部分,:Linux,系统内核、,AVD,DVM,、调试工具和,API,中重要的主要包,(Package),的类型。特别是本章所介绍的,Eclipse,和其插件,ADT,的下载与安装方法。掌握这些知识和具体操作对于学习设计和调试,Android,应用程序都具有重要的实际意义。,感谢观看,Android,基础与应用开发教程,大连理工大学出版社,Android,基本应用程序,第,3,章,3.1,设置,Android,工作环境,3.1.1 JDK,和,Eclipse,的下载与安装,Android,应用程序是用,Java,语言编写的,因此第一个要安装的软件是,JDK,。,Android SDK,要求,JZSE,的,JDK 5(,即,JDK 1.5),或更高版本,现在,Oracle,提供,J2SE JDK 6,或,JDK 7,版,(,即,JDK 1.6,或,JDK 1.7),,建议下载和安装,JDK 6,。,下载完后,可以先安装它并将,JAVA_ HOME,环境变量设置为,JDK,的安装文件夹。在,Windows XP,情况下,可以右击“我的电脑”,选取“属性”的“高级”选项卡,单击“环境变量”。单击【新建】按钮添加新环境变量,(,如果它已经存在,则用“编辑”修改它,),。,JAVA_HOME,的值通常是,C: Program FilesJava jdkl. 6. 0_16,,可将它更改为,JDK,实际安装目录。对于,Windows Vista,和,Windows 7,,则右击“计算机”选取“属性”,单击“高级系统设置”链接,再单击“环境变量”。然后,采用同样的操作。对于,Mac OS X,,需在,HOME,目录内的,.profile,文件中按下述方式设置,JAVA_HOME,变量,:,export JAVA_HOME=path_to_ JDK_directory,3.1,设置,Android,工作环境,如,2.2,节所述,,Android SDK,是开发和运行,Android,应用程的基本软件。其中包括,Android API,和,Android,模拟器。,Android SDK,安装比,JDK,略显复杂些,首先需要下载,Android SDK Tools,称为,Android SDK starter,,即启动器,它并未包含,SDK,的全部内容,),,然后可将这个软件包安装在,androidandroid-sdk,文件夹内。安装完毕后,启动其中的,SDK Manager(,管理器,),,在该管理器的窗口中选取所需安装的,SDK,版本,(,可勾选多种版本,),和相关的工具,同时勾选,show: Upadates/New,和,Installed,,以及,Sortedby: API Level,,然后单击,Install n packages,按钮就会开始下载和安装所选中的文件。注意,此时必须保持网络连接顺畅。我们推荐下载并安装,Windows Android SDK 2. x,版本。对于,Mac OS X,和,Linux,,可将它解压到,Home,目录内。,3.1.2,下载安装,Android SDK,和,ADT,开发工具,3.2 Hello World,程序,(1),启动,Eclipse,并选择,File |New | Project,。在“,New Android Project,对话框内选择“,Android 1. 6,,然后单击,Next,按钮。,3.2 Hello World,程序,3.2 Hello World,程序,3.2 Hello World,程序,3.2 Hello World,程序,3.3 Android,应用程序的结构,3.4 NotePad,应用程序,3.4.1,加在和运行,NotePad,应用程序,为了执行这个,Notepad,应用程序,首先启动,Eclipse IDE,,然后遵照下列步骤把,Notepad,示例加载到该,IDE,内,:,(1),选择,File | New | Project;,(2),在“,New Project,对话框内选择,Android | Android Project;,(3),在“,Android Project”,对话框内,先输人工程名,(,如,NotesList,),再选择“,Createproject from existing source(,从已有的源创建工程,),,并设置“,Location,,字段为,Notepad,程序的路径,(,在,Android,安装目录的,samples,文件夹内,),。然后,单击,Finish,按钮,就可将已有的,Notepad,程序加载到,Eclipse IDE,内。,要运行,Notepad,程序,选择,Run | Run As | Android Application,即可。,3.4 NotePad,应用程序,3.4.2 NotePad,应用程序,3.4 NotePad,应用程序,3.4.2 NotePad,应用程序,3.4 NotePad,应用程序,3.4.2 NotePad,应用程序,为了执行这个,Notepad,应用程序,首先启动,Eclipse IDE,,然后遵照下列步骤把,Notepad,示例加载到该,IDE,内,:,(1),选择,File | New | Project;,(2),在“,New Project,对话框内选择,Android | Android Project;,(3),在“,Android Project”,对话框内,先输人工程名,(,如,NotesList,),再选择“,Createproject from existing source(,从已有的源创建工程,),,并设置“,Location,,字段为,Notepad,程序的路径,(,在,Android,安装目录的,samples,文件夹内,),。然后,单击,Finish,按钮,就可将已有的,Notepad,程序加载到,Eclipse IDE,内。,要运行,Notepad,程序,选择,Run | Run As | Android Application,即可。,3.5,应用程序的生命周期,法管理活动,(Activity),的生命周期,对于开发强大灵活的应用程序至关重要。一个活动基本上存在着三种状态,:,(1),活跃,(,运行,),态,:,活动处于屏幕前台,(,在栈顶,),并具有用户焦点。,(2),暂停态,:,活动失去焦点但仍可见。也就是说,有一个非满屏显示或透明的新活动在其上部可见。暂停的活动完全是“活着的”,(,其对象仍在堆栈中,持有完整的状态和成员信息,并保持对窗口管理器的连接,),,但在极低内存的情况下,可以被系统“杀死”。,(3),终止态,:,活动完全由另一活动遮盖。它仍保持状态和成员信息,但没有连接到窗口管理器上,且用户已经看不见它,其窗口是隐藏的。当其他地方需要内存时系统可以“杀死”它。,3.5,应用程序的生命周期,3.6,应用程序调试,在整个,Android,应用程序开发过程中可用的调试工具之一是分类日志,LogCat,,它可有选择地显示由,android. util. Log,类、异常和,System, out, println(),方法等发出的日志消息。当,System. out. println,到此我们完成了有关内容提供者的全部讨论。,5.2 Android,意图(,Intent,),Android,的意图,(Intent),概念包含很多的创意。意图可从在一个应用程序中激活另一个应用程序、激活内部或外部的组件、引发事件让其他意图用类似于出版一订阅方式进行响应,也可以用意图来表示行动,(Action),。,从根本上说,意图是让,Android,激活某个行动,且所激活的所行动取决于它所注册的内容。譬如我们创建了这样一个活动,:,5.2 Android,意图(,Intent,),5.2.1,意图类,在,Android,内打包了许多预制应用程序和激活它们的意图对象,(Intent),,运行这些程序能够对意图进行测试。这些应用程序,(,对不同,SDK,版本所有区别,),是,:,1),浏览器应用程序,:,打开浏览器窗口,;,2),电话呼叫应用程序,:,可呼叫某电话号,;,3),电话拨号应用程序,:,它显示一个电话拨号盘,用户可用它输人电话号并通过,UI,进行呼叫,;,4),绘图应用程序,:,它显示给定经纬度坐标的世界地图,;,5),详细地图应用程序,:,它显示出,Google,的街景视图。,5.2 Android,意图(,Intent,),5.2.2,意图和,URI,我们首先从最简单的意图开始,其中要做的所有事情就是给行动起一个名字。代码,5-13,中的,ACTION_ DIAL,活动就是行动名,(,或意图常数,),之一。因此,要激活电话拨号盘,所需要的全部东西只是拨号盘的行动而已,再不需要别的东西。呼叫给定电话号的,ACTION_ CALL,意图则有所不同,它需要使用称为,Data,的参数。这个参数指向一个,URI,,而该,URI,又指向给定电话号。,意图的行动部分是一个字符串或一个串常数,该常数通常用,Java,包名作前缀,;,而数据部分总是表示,URI,的字符串。而该,URI,的格式对于行动激活的每个活动都是专有的。譬如,,CALL,行动决定应当使用哪种,URI,数据,并从该,URI,提取电话号。,5.2 Android,意图(,Intent,),5.2.3,意图和额外信息,除去行动和数据等主要属性之外,意图,(Intent),还可以包含附加属性,extra(,即额外部分,),。,extra,可给接收意图的组件提供更多的信息。,extra,数据的形式为“关键字,/,值”,(key/value),对。关键字的名字应以包名开始,而值的名字可以是基本数据类型或名字与所实现的,android, os. Parcelable,接口一样长的对象。这个,extra,信息用,Android,的,android. os. Bundle,类来表示。,Intent,类用下述两个方法对,extra Bundle,进行访问,:,5.2 Android,意图(,Intent,),5.2.4,利用组件直接激活活动,我们已经看到,用意图来启动活动的办法有两种,:,由显式行动来启动活动和借助,URI,数据由通用行动启动活动。此外,,Android,还提供了更直接的办法来启动活动,:,即指定活动的,ComponentName,,它是关于对象的包名和类名的一种抽象。对于,Intent,类来说,它的许多方法都能够用来指定组件,:,5.2 Android,意图(,Intent,),5.2.5,意图的类属,为了便于用该类名来查找活动,,Android,把活动分成了类属,(Category),。例如,启动,Android,时需查找类属为,CATEGORY_ LAUNCHER,的那些活动。然后取得该活动名和图标,并显示在启动的主屏幕上,(,即一系列应用程序图标,),。又譬如,Android,启动时查找标记为,CATEGORY_ HOME,的活动来显示主屏。类似地,类属,CATEGORYGADGET,把活动标记为适合于在另一个活动内嵌人或重用。一般地说,字符串为,LAUNCHER,的类属定义格式遵从下述约定,:,5.2 Android,意图(,Intent,),5.2.5,意图的类属,5.2 Android,意图(,Intent,),5.2.6,意图解析的规则,在活动层次的顶部是附加到意图上的意图名。如果它已经设置,则该意图的属性忽略不计,并选择该意图准备执行。,然后,,Android,查看意图的行动属性。如果该意图指明一个行动,则目标活动必须将该行动列为意图过滤器的一部分,;,如果没有指定其他属性,则,Android,激活这个活动。如果存在着多个活动,,Android,将显示活动选择器,(chooser)o,接着,,Android,查看意图的数据部分。如果意图指定了数据,URI,,但没有提供类型,则通过,ContentProvider. getType),从,URI,检索该类型。目标活动必须通过意图过滤器指明它能够处理这种类型的数据。如果数据,URI,不是内容,URI,或未指定数据类型,就需要考虑,URI,的模式。接着目标活动应当表明它可以处理这种模式类型的,URI,。然后,Android then,查看类属,,Android,只选取匹配该类属的活动。,最后,如果指定了意图的类属,则目标活动应当在其过滤器内声明该类属。,5.2 Android,意图(,Intent,),5.2.7,运用,ACRION_PICK,要用表示,Android,内容游标的,MIME,类型中选择多个项目,需要说明项目集合。这个,URI,的实际,MIME,类型与下面给出的类似,:,vnd. android. cursor. dir/vnd. google. note,活动的职责是根据,URI,从内容提供者检索数据。这也是把数据封装在内容提供者内的原因,只要这种封装是可能的。,对于返回这种数据的所有行动都不能使用,startActivity ( ),,因为,startActivity( ),不返回结果。,5.2 Android,意图(,Intent,),5.2.8 GET_CONTENT,行动,ACTION_ GET_ CONTENT,类似于,ACTION_ PICK,。在,ACTION_ PICK,情况下,我们指定的是表示项目集合的,URI,,如,notes,集合。预期这个行动会获取,notes,之一,并返回给调用者。对于,ACTION_ GET_ CONTENT,,我们向,Android,指明需要一个具体的,MIME,类型项目。,Android,搜索可创建这些项目之一的活动,或搜索可从满足,MIME,类型的现有项目集合中进行选择的活动。,5.3,本章小结,本章主要介绍内容提供者,android. provider, android. content,和与之密切相关的意图类。其中,android. provider,包是内部提供者,它是预制数据库的封装。而,android.content,包包含,3,个重要的类,,Content. Provider, ContentResolver,和,Intent,。它们可从包内和包外共享数据,这些数据可以包含在,preference(,首选项,),、文件、,SQLite,和,Web,服务器上。它们都需要通过,URI,访问这些数据源。在访问过程中经常要用到,MIME,类型。因此,5. 1. 2,分析内容提供者结构时也内介绍了,MIME,类型。为了对内容提供者的应用有具体的了解,我们给出了一个实现它的例子。意图是比较复杂的高年,,5. 2,节介绍了用多种方式通过意图,(Intent),来启动其他活动的问题。同时也介绍了行动,(Action),和过滤器,(filter),的概念与使用。,感谢观看,Android,基础与应用开发教程,大连理工大学出版社,建立用户界面,和使用组件,第,6,章,6.1 Android,的用户界面,在,Android,中可以选用三种办法来组建用户界面,:,全部用,Java,代码来构建用户界面,在,XML,文中定义用户界面,把这两种办法结合起来使用,即在,XML,中定义用户界面,然后在代码中引用和修改它。为了具体阐明这点,我们组建一个分别使用上述三种办法的用户界面示例。为此,我们先定义一种命名法则。进行,UI,开发时,经常用到视图,(view,、组件,(control ),、小窗体,(widget ),、容器,(container),和布局,(layout),等术语。,6.2 Android,的常用组件,文本框组件是,Android,中用到的第一种组件。,Android,有一套完善的文本框组件,它们是,TextView, EditText, AutoCompleteTextView,和,MultiCompleteTextView,组件。,6.2.1,文本框组件,TextView,6.2 Android,的常用组件,1. TextView,文本框组件,TextView,只能显示文本,不能编辑文本。但它与标签不同,,TextView,组件有一些重要的属性。如,autoLink,属性设置到某,web URL,时,该
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!