Android开发入门指导(精品PPT) .ppt

上传人:文库蛋蛋多 文档编号:2816129 上传时间:2023-02-25 格式:PPT 页数:164 大小:1.79MB
返回 下载 相关 举报
Android开发入门指导(精品PPT) .ppt_第1页
第1页 / 共164页
Android开发入门指导(精品PPT) .ppt_第2页
第2页 / 共164页
Android开发入门指导(精品PPT) .ppt_第3页
第3页 / 共164页
Android开发入门指导(精品PPT) .ppt_第4页
第4页 / 共164页
Android开发入门指导(精品PPT) .ppt_第5页
第5页 / 共164页
点击查看更多>>
资源描述

《Android开发入门指导(精品PPT) .ppt》由会员分享,可在线阅读,更多相关《Android开发入门指导(精品PPT) .ppt(164页珍藏版)》请在三一办公上搜索。

1、Android简介,流氓艳遇记,课程目标,简要介绍Android平台、Android SDK特性架构底层实现,什么是Android?,Android 是一个专门针对移动设备的软件集一个操作系统,中间件和一些重要的应用程序Android SDK 提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API接口。,Android特性,应用程序框架 支持组件的重用与替换Dalvik 虚拟机 专为移动设备优化集成的浏览器 基于开源的WebKit 引擎 优化的图形库 包括定制的2D图形库,3D图形库基于OpenGL ES 1.0(硬件加速可选)SQLite 用作结构化的数据存

2、储多媒体支持 包括常见的音频、视频和静态图像格式(如 MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)GSM 电话技术(依赖于硬件)蓝牙Bluetooth,EDGE,3G,和 WiFi(依赖于硬件)照相机,GPS,指南针,和加速度计(accelerometer)(依赖于硬件)丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件,Android架构,应用程序,Android会同一系列核心应用程序包一起发布,该应用程序包包括。所有的应用程序都是使用JAVA语言编写的。email客户端SMS短消息程序日历地图浏览器联系人管理程序等,应

3、用程序框架,开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其 它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的

4、数据(如联系人数据库),或者共享它们自己的数据。,应用程序框架,资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(layout files)。通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。,Android平台程序库,Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:系统 C 库-一个从 B

5、SD 继承来的标准 C 系统函数库(libc),它是专门为基于 embedded linux 的设备定制的。媒体库-基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。Surface Manager-对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。LibWebCore-一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。SGL-底层的2D图形引擎3D libraries-基于OpenGL ES 1.0 AP

6、Is实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。FreeType-位图(bitmap)和矢量(vector)字体显示。SQLite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。,Android运行库,Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟 机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了 优化。同时虚拟机是基于寄存器

7、的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 dx 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。,Linux内核,Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。,Android SDK核心包,android.util包含有许多底层的工具类,例如专用容器类,XML工具等等。android.os 提供基本的操作系统服务、消息传递和进程间通讯。android.graphics核心图形绘制包。a

8、ndroid.text,android.text.method,android.text.style,and android.text.util提供丰富的文本处理工具、富文本支持以及输入法等等。android.database包含数据库相关的底层API。android.content 提供大量的访问存储在设备上的数据的服务:安装在设备上的应用及相关资源,用于持续的动态数据的内容提供器(content provider)。android.view核心用户界面框架。android.widget提供构建view包的标准用户界面元素(列表、按钮、布局管理器等等)。android.app提供高层应用模型

9、,通过活动实现。,Android SDK附加包,android.provider 包括了平台内的各个内容提供器(content providers)的定义。android.telephony 提供与设备的电话协议栈交互的API。android.webkit 包含各种用于web内容的API。,课程内容回顾,简要介绍Android平台、Android SDK特性架构底层实现,课程目标,安装Android SDK设置开发环境JDK6.0u14Eclipse3.5(Galileo)Android SDK1.5ADT0.9.1,系统和软件需求,用Android sdk的代码和工具开发Android应用程

10、序,你需要适合的开发电脑以及开发环境,如下描述:所需操作系统:Windows XP 或 VistaMac OS X 10.4.8 或更高版本(仅支持x86)Linux(Linux Ubuntu Dapper Drake 版本已测试)所需开发环境:Eclipse IDE Eclipse 3.3(Europa),3.4(Ganymede)3.5(Galileo)Eclipse JDT 插件(大多数的 Eclipse IDE 包包含)WST(可选,但Android编辑器的功能需要,它被包含在most Eclipse IDE packages 中)JDK 5 或 JDK 6(只有JRE是不够的)And

11、roid Development Tools 插件(可选)不兼容GNU Java编译器(gcj)其他开发环境或 IDE JDK 5 或 JDK 6(仅有JRE不够)Apache Ant 1.6.5 或更高版本(Linux 和 Mac环境下),1.7 或更高版本(Windows环境下)不兼容GNU Java编译器(gcj),安装SDK,下载完SDK后,把.zip文件解压到你电脑上合适位置.默认情况下,SDK文件被解压到 android_sdk_文件夹.这个文件夹包含 tools/,samples/等.请注意系统里SDK解压后的文件夹的名字和位置 当你安装Android插件和使用SDK工具时,你将

12、需要引用这个文件夹。你可以添加 SDK tools 的文件夹路径到你的环境变量中.如上所述,tools/文件夹位于SDK文件夹中。Linux环境下,修改/.bash_profile或者/.bashrc文件.找到环境变量设置的地方,加入tools/的绝对路径。如果找不到该设置,你需要新添加一行:export PATH=$PATH:/toolsMac环境下,在你的home文件夹里面查找.bash_profile,然后和linux一样处理。如果之前没有.bash_profile文件,你可以创建一个新的。Windows环境下,右击我的电脑,并选择属性.在标签页高级,点击环境变量,当对话框出现,在系统变

13、量栏目里双击路径(Path).并添加tools/文件夹的完整路径.添加 tools 到你的环境变量里,这样你可以运行Android Debug Bridge(adb)和其他tools下命令,而不需要输入完整路径名。需要说明的是,如果你升级你的SDK,需要将你的相应环境变量更新到新的位置。,Eclipse插件(ADT)安装,使用 Eclipse IDE作为开发Android应用的环境,你可以安装支持Android工程和工具的通用插件Android Development Tools(ADT).ADT插件包含强大的扩张,使得创建,运行和调试Android 更快速,更简单。如果你不使用 Eclips

14、e IDE,就不必下载和安装ADT插件下载和安装ADT插件,请按照你们各自Eclipse版本步骤安装。Eclipse 3.3(Europa)Eclipse 3.4(Ganymede)开始Eclipse,然后选择 Help Software Updates Find and Install.对话框出现后,选择 Search for new features to install 点击 Next.点击New Remote Site.在对话框中,输入远程站点的名字(如Android Plugin),输入站点如下:https:/dl-点击OK.你可以看到新的站点添加到搜索列表中(并检查),点击Fini

15、sh.在下面的搜索结果对话框,选择复选框 Android Plugin Developer Tools.它将会检查特性:Android Developer Tools,和 Android Editors.Android 编辑器的特性是可选的,但我们推荐安装它,如果你选择安装,需要前面提到的WST插件。点击 Next.阅读许可协议,然后选择接受许可协议,点击 Next.,点击 Finish.ADT插件没有签名,你可以点击“Install All”来安装所有东西。重启 Eclipse.启动 Eclipse,选择 Help Software Updates.在出现的对话框里,点击标签页 Availa

16、ble Software.点击 Add Site.输入下面的地址:https:/dl-点击 OK.返回可用软件的视图,你会看到这个插件.选择下一步到 Developer Tools 并点击 Install.在接下来的安装窗口,选中Android Developer Tools和 Android Editors。Android编辑器特性是可选的,但是我们推荐安装它,如果你选择安装,需要前面提到的WST插件。点击 Finish.重启 Eclipse。重启之后,update your Eclipse preferences 指向SDK文件夹:选择 Window Preferences.来打开属性面板

17、。(Mac OS X:Eclipse Preferences)从左边面板选择 Android。在主界面上定位SDK 点击 Browse.然后定位 SDK文件夹。点击 Apply,然后点击 OK。,ADT安装疑难解答,下载ADT压缩文件(不解压).按照默认安装的第一部和第二步(如上).在 Eclipse 3.3,点击New Archive Site.In Eclipse 3.4,click Add Site.,然后点击Archive.浏览和选择已经下载的压缩文件。从第五步开始完成上面剩下的流程。更新你的插件,你必须按照这些步骤代替默认的更行说明。,课程内容回顾,安装Android SDK设置开发

18、环境JDKEclipseAndroid SDKADT,在eclipse上开发Android应用程序,在用eclipse IDE开发android应用程序之前,你首先要创建一个Android工程,并且建立一个启动配置,在此之后你才可以开始编写,运行,以及调试你的应用程序。,创建一个Android工程,ADT提供了一个新的工程向导,你可以快速的创建一个新的工程或者在现有代码上创建工程。创建工程的步骤如下:选择File New Project 选择 Android Android Project,然后按下 Next选择项目内容:选择 Create new project in workspace,为

19、编码创建一个全新的工程。输入工程名称(project name),基础软件包的名称(the base package name),以及Activity 类的名称。以创建stub.java文件等文件和程序名字。选择Create project from existing source,为已有代码创建一个工程。如果你想编译运行SDK中提供的示例程序,可以使用这个选项。示例程序的存放在SDK的samples/目录下。浏览包含已有代码的目录,点击ok,如果目录中包含有可用的android manifest 文件,ADT将为你填写合适的软件包,activity,和应用程序名称。按下Finish.ADT插

20、件会根据你的工程类型创建合适的文件和文件夹,如下:src/包含stub.java Activity文件的文件夹.res/资源文件夹.AndroidManifest.xml工程清单.,创建一个启动项,在eclipse上运行调试应用程序之前,你必须为它创建一个启动项。启动项指定哪个工程将被启动,哪个activity开始工作,以及使用哪些模拟器选项等。按照以下步骤为Eclipse版本的应用程序创建合适的启动项:打开启动项管理工具。在 Eclipse 3.3(Europa)的版本中,酌情选择 Run Open Run Dialog.or Run Open Debug Dialog.。在Eclipse

21、3.4(Ganymede)版本中,酌情选择 Run Run Configurations.or Run Debug Configurations.。在左边的工程类型列表选择Android Application选择,双击(或者点击右键选择new),创建一个新的启动项。输入启动项名称。在 Android标签中,浏览要开始的工程和Activity。在Target标签中,设置想要显示的屏幕及网络属性,以及其他任何模拟器启动选项。你可以在Common标签中设置更多的选项.按下Apply保存启动配置,或者按下Run或Debug()。,运行和调试应用程序,可以按照以下的说明运行和调试应用程序了。从ecli

22、pse主菜单,根据情况选择RunRun 或者 RunDebug,开始运行或者调试活动启动项。注意,这里活动启动项是在运行配置管理中最最近一次选中的那个。它不一定就是在Eclipse Navigation 面板中选择的程序(如果有的话)设置和修改活动启动项,可以使用启动项管理工具。如何获得启动项管理工具可以参考创建一个启动项 运行或调试应用程序将触发以下动作:启动模拟器,如果他还没有开始运行。编译工程,如果在上次编译的基础上修改过代码,将重新编译。在模拟器上安装应用程序。Run选项,开始运行程序。Debug 在Wait for debugger 模式下启动程序,然后打开调试窗口并将Eclipse

23、 Java调试器和程序关联。,应用程序签名(一),Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序。不管是模拟器还是真实设备,只要是android系统,这都适用。鉴于此原因,在设备或者是模拟器上运行调试程序之前,你必须为你的应用程序设置数字签名。理解android程序签名的重要几点::所有的程序都必须签名,没有被签名的程序,系统将不能安装。你可使用自签署证书签署你的应用程序,必须是无凭证授权是的。系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用。你可以使用标准工具-Keytool

24、 and Jarsigner-生成密钥,来签名应用程序的.apk文件。,应用程序签名(二),Android SDK 工具可以帮助你在调试时给应用程序签名。ADT插件和Ant编译工具都提供了两种签名模式-debug模式和release模式 debug模式下,编译工具使用JDK中的通用程序Keytool通过已知方法和密码创建秘锁和密钥。每次编译的时候,工具使用debug密钥签名应用程序的.apk文件。因为密码是已知的,工具不需要在每次编译的时候提示你输入密锁和密钥。测试证书期限,自创建时间起有一年的期限当你的应用程序已经准备release了,你可以在release 模式下编译。release模式下

25、,工具编译时不会将.apk文件签名。你需要用Keytool生成密钥和密锁,再用JDK中的Jarsigner工具给.apk文件签名。Market受理应用一般要求30年期限,使用ApiDemo示例应用程序,Android SDK包含了一套示例程序,他们验证了许多功能以及API的用法。ApiDemos软件包被提前安装在模拟器中,所以你可以启动模拟器,在主画面的应用程序抽屉里打开它。你也可以在/samples/ApiDemos中找到源码,可用看看它,学习Demo的实现方法。如果你愿意,你还可以将ApiDemo的示例程序作为一个工程加载进来,修改并在模拟器上运行。然而,在这之前你首先要卸载之前已经安装的

26、ApiDemos。如果你没有移除之前安装的版本而直接在开发环境中运行或修改ApiDemos,将会有安装错误。,调试,Android有相当广泛的一套工具帮助你调试你的应用程序:DDMS-一个生动的程序,它支持端口转换(因此你可以在IDE中给你的代码下端点),支持抓取模拟器屏幕,线程和堆栈信息,以及许多其他功能。你还可以运行logcat重新获得Log信息。点击此连接查看更多信息。logcat-转储系统信息,这些信息包括,模拟器抛出错误时堆栈的运行过程以及日志信息。运行logcat,点击此连接。Android Log-输出模拟器上log文件信息日志类。如果你在DDMS上运行了logcat,你可以实时

27、阅读这些信息。在你的代码中添加logging方法的调用。使用 log类,你可以根据你想获得信息的重要程度不同调用Log.v(verbose),Log.d()(debug),Log.i()(information),Log.w()(warning)或者Log.e(error).来分派log信息Log.i(MyActivity,MyClass.getView()Requesting item number+position)你可以用logcat阅读这些信息。Traceview-Android可以将函数的调用情况以及调用时间保存到一个log文件中,你可以用图形阅读器Traceview查看详细内容。更

28、多信息查看这个连接下的主题Eclipse plugin-Eclipse插件整合了相当数量的工具(ADB,DDMS,logcat output,以及其它功能),点击此连接查看更多信息。Debug and Test Device Settings-Android揭示了很多有用的设定,例如CPU使用率和 帧速率,设备上的调试和测试设置,Android允许你设置多个设定以便你测试和调试程序。获得模拟器的开发设置,可以选择Dev ToolsDevelopment Settings。按照以下选项将打开开发设置页(或其中之一):Debug app选择要被调试的程序,你不需要设置这个来关联调试器,但是这个变量

29、有两个作用:防止Android在调试的断点处长时间停留时抛出错误。允许你选择Wait for Debugger选项来暂停程序启动,直到调试器被关联上(如下介绍)Wait for debugger 阻塞程序加载直到关联上调试器。这样你可以在onCreate()中设置端点,这在调试Activity的启动进程时很重要。当你改变这个选项,任何当前运行的程序实例将被杀死。为选中此框,你必须如上面介绍的选择一个调试程序。这和在代码中添加waitForDebugger()是一样的。Immediately destroy activities告诉系统只要activity停止了就销毁它。(犹如 Android必

30、须回收内存).这个在测试 onSaveInstanceState(Bundle)/onCreate(android.os.Bundle)代码路径 时非常有用,否则将难以生效.选择这个选项可能带来很多问题,因为他们没有保存程序的状态。Show screen updates选中这个选项时,屏幕上任何被重绘的矩形区域会闪现粉红色。这对于发现屏幕不必要的绘图很有用。Show CPU usage在屏幕顶端显示一个CPU进度,显示CPU的使用情况。上面红色栏显示总的CPU使用率,下方绿色栏显示目前画面的CPU使用时间。注意:一旦打开次功能就不能关掉,除非重新启动模拟器。?Show background没有

31、activity屏幕显示时显示背景面板,这个通常在调试的时候才会发生。模拟器重起后这些设置仍被记忆。,顶端调试技巧,快速堆栈转储 从模拟器上获得堆转储,你可以登录adb shell,用ps命令找到你想要的进程,然后用kill-3,堆栈使用轨迹将显示在log文件中。在模拟器屏幕上显示有用信息 设备可以显示一些有用信息,例如CPU使用率,以及高亮显示重绘区域。可以在开发设定窗口打开和关闭这些功能。Setting debug and test configurations on the emulator.中有详细介绍。你可以通过Dalvik Debug Monitor Service工具获得转储状态

32、信息。请参考adb中介绍的dumpsys and dumpstate 获得模拟器中应用程序状态信息(dumpsys)你可以通过Dalvik Debug Monitor Service工具获得dumpsys信息。参考adb中介绍的dumpsys and dumpstate。获得无线连接信息 你可以通过Dalvik Debug Monitor Service工具获得无线连接信息。在Device菜单中选择Dump radio state,记录跟踪数据 你可以在activity中通过调用android.os.Debug.startMethodTracing()来记录函数的调用以及其它跟踪数据。详细的参

33、考Running the Traceview Debugging Program。记录无线数据 默认情况下系统不记录无线数据(数据很多)。然而,你可以用下面的命令记录无线数据:adb shell logcat-b radio 运行adb Android 有adb工具,他提供了许多功能,包括移动和同步文件到模拟器上,改变端口,在模拟器上运行 UNIX shell。详见Using adb。获得模拟器屏幕截图 Dalvik Debug Monitor Server(DDMS)可以抓取模拟器屏幕截图。使用调试帮助类 Android为方便使用提供了调试帮助类,例如util.Log 和 Debug,编译安

34、装Android应用程序,Android要求专门的编译工具可以正确的编译资源文件和应用程序的其他部分,因此,你必须为你的应用程序建立一个专门的编译环境。专门Android编译器编译步骤包括,编译XML和其他资源文件并创建合适的输出格式。编译好的Android应用程序是一个.apk压缩文件,它含有.dex文件,资源文件,原data文件,以及其他文件。你可以通过scratch,或者源文件构造一个合适的Android工程。Android目前不支持的在本地代码上开发第三方应用程序。比较推荐的Andriod应用程序开发方法是use Eclipse with the Android plugin,它支持编

35、译,运行,调试Android应用程序。,移出一个Android应用程序,移出一个安装在模拟器上的应用程序,你需要执行adb删除.apk文件。.apk文件是在安装的时候发送到模拟器上的。使用adb shell进入设备的shell,切换到data/app目录下,用rm命令删除apk文件:rm your_app.apk设备应用程序管理器,课程内容回顾,介绍在android上开发调试应用程序创建编译运行调试,课程目标,Android应用中的四种组件活动广播接收器服务内容提供器XML配置文件AndroidManifest.xml,Android应用程序构成,一般情况Android应用程序是由以下四种组件

36、构造而成的:活动广播接收器服务内容提供器并不是每个Andorid应用程序都必须构建这4个组件,有些可能由这些组件的组合而成。XML配置文件,它用于定义应用程序中需要的组件、组件的功能及必要条件等。这个文件是必须的。,活动,活动是最基本的Andorid应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多屏幕显示组成。例如,一个文本信息的应用也许有一个显示发送消息的联系人列表屏幕,第二个屏幕用来写文本消息和选择收件人,再来一个屏幕查看消息历史或者消息设置操作

37、等。这里每一个这样的屏幕就是一个活动,很容易实现从一个屏幕到一个新的屏幕并且完成新的活动。在某些情况下当前的屏幕也许需要向上一个屏幕动提供返回值-比如让用户从手机中挑选一张照片返回通讯录做为电话拨入者的头像。当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态并且压入历史堆栈中。用户可以通过回退操回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个从桌面打开的程序保留在堆栈中。,活动(Intent 和 Intent Filters),调用Android专有类 Intent 进行构屏幕之间的切换。Intent是描述应用想要做什么。Intent数据结构两最重要

38、的部分是动作和动作对应的数据。典型的动作类型有:MAIN(活动的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如:要查看某一个人的联系方式,你需要创建一个动作类型为VIEW的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。当intent被要求做某事的时候,intent filter用于描述一个活动(或者BroadcastReceiver,看下面)能够操作哪些intent。一个活动如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter要知道怎么去处理VIEW动作和表示一个人的U

39、RI。IntentFilter需要在AndroidManifest.xml中定义。通过解析各种intent,从一个屏幕切换到另一个屏幕是很简单的。当向前导航时,活动将会调用startActivity(myIntent)方法。然后,系统会在所有安装的应用程序定义的IntentFilter中查找,找到最匹配myIntent的Intent对应的活动。新的活动接收到myIntent的通知后,开始运行。当start活动方法被调用将触发解析myIntent的动作,这个机制提供了两个关键好处:活动能够重复利用从其它组件中以Intent的形式产生的一个请求 活动可以在任何时候被一个具有相同IntentFilt

40、er的新的活动取代,广播接收器,可以使用BroadcastReceiver来让你的应用对一个外部的事件做出响应。比如:当电话呼入时,数据网络可用时,或者到了晚上时。BroadcastReceivers不能显示UI,它只能通过 NotificationManager 来通知用户这些有趣的事情发生了。BroadcastReceivers既可以在AndroidManifest.xml中注册,也可以在代码中使用Context.registerReceiver()进行注册。但这些有趣的事情发生时,你的应用不必对请求调用BroadcastReceivers,系统会在需要的时候启动你的应用,并在必要情况下触

41、发BroadcastReceivers。各种应用还可以通过使用Context.sendBroadcast()将它们自己的intent broadcasts广播给其它应用程序。,服务,一个服务是具有一段较长生命周期且没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个活动,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的活动,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个活动会使用Context.startService()来启动一个服务,从而可以在后台保持音乐的播放。同

42、时,系统也将保持这个服务一直执行,直到这个service运行结束。(你可以通过阅读Life Cycle of an Android Application 获取更多关于服务的介绍).另外,我们还可以通过使用Context.bindService()方法,连接到一个服务上(如果这个服务还没有运行将启动它)。当连接到一个服务之后,我们还可以通过服务提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。,内容提供器,应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其它的应用共享时,内容提供其将会很有用。一个内容提供器

43、类实现了一组标准的方法,从而能够让其它的应用保存或读取此内容提供器处理的各种数据类型。更详细的内容提供器资料,可以参考附带文档中的 Accessing Content Providers。,课程内容回顾,Android应用中的四种组件活动广播接收器服务内容提供器XML配置文件AndroidManifest.xml,课程目标,利用Android框架和诸多工具建立自己的手机应用搭建工程、组织应用逻辑以及UI,乃至接下来的编译及运行可执行程序等等对Android应用开发中的一些极为重要的概念也会有更加深刻的理解,记事本应用程序范例,从一个预先配置好的工程文件开始,该教程通过一个简单记事本应用程序完整

44、的开发过程,并辅以贯穿始终的详尽例子,指导你如何搭建工程、组织应用逻辑以及UI,乃至接下来的编译及运行可执行程序等等。,练习前准备,熟悉了一些基本的Android应用概念和术语集成开发环境是预装Android插件的Eclipse训练所需的准备工作:下载 project exercises archive(.zip)解压至你本地的某一目录下打开 NotepadCodeLab 文件夹训练所需的准备工作:,练习,练习 1一个简单记事本应用程序的开发过程起始于此。构建一个可以添加新便笺,但不能编辑的简单便笺列表。演示ListActivity 的基本方面以及如何创建和控制菜单项,以及如何用一个SQLit

45、e数据库存储便笺内容。练习 2为 记事本应用程序添加第二个Activity。演示如何构造一个新Activity至Android 操作系统,在不同Activity之间传输数据,使用更多高级的屏幕布局,并演示如何通过调用startActivityForResult()这个 API来激活另一窗口并返回一个结果。练习 3为应用程序添加对Event生命周期的控制,以得到应用程序在整个生命周期中的状态。额外学习演示如何使用Eclipse的调试器及通过调试器查看Event产生后的整个生命周期。此节非必读,但仍极力推荐一读。,课程内容回顾,利用Android框架和诸多工具建立自己的手机应用搭建工程、组织应用逻

46、辑以及UI,乃至接下来的编译及运行可执行程序等等对Android应用开发中的一些极为重要的概念也会有更加深刻的理解,课程目标,Android Activity Class:类继承体系Activity生命周期及相应接口Activity启动及返回持久数据保存权限许可进程生命周期,Activity概述,activity是单独的,用于处理用户操作。几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以通过setContentView(View)接口把UI放到activity创建的窗口上,当activity指向全屏窗口时,也可以用其他方式实现:作为漂浮窗口(通过w

47、indowIsFloating的主题集合),或者嵌入到其他的activity(使用ActivityGroup)。大部分的Activity子类都需要实现以下两个接口:onCreate(Bundle)接口是初始化activity的地方.在这儿通常可以调用setContentView(int)设置在资源文件中定义的UI,使用findViewById(int)可以获得UI中定义的窗口.onPause()接口是使用者准备离开activity的地方,在这儿,任何的修改都应该被提交(通常用于ContentProvider保存数据).为了能够使用Context.startActivity(),所有的activ

48、ity类都必须在AndroidManifest.xml文件中定义有相关的“activity”项。activity类是Android 应用生命周期的重要部分。,Activity类继承体系,activity类处于android.app包中,继承体系如下:java.lang.Object android.content.Contextandroid.content.ContextWrapperandroid.view.ContextThemeWrapperandroid.app.Activity直接继承子类:ActivityGroup,AliasActivity,ExpandableListActi

49、vity,ListActivity 非直接继承子类:LauncherActivity,PreferenceActivity,TabActivity,Activity生命周期,在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。,Activity的四种状态,1.在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(active or running)2.如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Ac

50、tivity 或者一个透明的Activity 被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。3.如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。4.如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号