目录
应用程序基础 Application Fundamentals ........................................................... 4
关键类 ..................................................................................................................... 4
应用程序组件 .......................................................................................................... 5
激活组件:intent ............................................................................................ 7
关闭组件 .......................................................................................................... 7
manifest 文件................................................................................................. 8
Intent 过滤器.................................................................................................. 9
Activity 和任务 ..................................................................................................... 10
Affinity(吸引力)和新任务 ......................................................................... 11
加载模式 ........................................................................................................ 12
清理堆栈 ........................................................................................................ 13
启动任务 ........................................................................................................ 14
进程和线程 ............................................................................................................ 14
进程................................................................................................................ 14
线程................................................................................................................ 15
远程过程调用 ................................................................................................. 15
线程安全方法 ................................................................................................. 16
组件生命周期 ........................................................................................................ 17
Activity 生命周期.......................................................................................... 17
调用父类................................................................................................................ 17
服务生命周期 ................................................................................................. 20
广播接收器生命周期 ...................................................................................... 22
进程与生命周期 ............................................................................................. 22
用户界面 User Interface ...................................................................................... 23
视图层次 View Hierarchy .................................................................................... 24
布局 Layout .......................................................................................................... 24
部件 Widgets ........................................................................................................ 25
用户界面事件 UI Events....................................................................................... 26
菜单 Menus .......................................................................................................... 26
高级话题 Advanced Topics ............................................................................ 27
适配器 Adapter........................................................................................... 27
风格与主题 Styles and Themes .................................................................. 27
资源和资产 Resources and Assets.................................................................... 27
资源引用 Resource Reference.................................................................... 43
国际化和本地化 Internationalization and Localization ............................. 43
意图和意图过滤器 Intents and Intent Filters ..................................................... 43
意图过滤器 Intent filters ......................................................................... 47
通常情况 Common cases......................................................................... 51
使用意图匹配 Using intent matching .................................................. 52
数据存储 Data Storage ........................................................................................ 52
概览 Storage quickview .............................................................................. 52
系统偏好:快速,轻量级存储.................................................................. 52
文件:存储到设备内部或可移动闪存....................................................... 52
数据库:任意的结构化存储 ..................................................................... 52
支持基于网络的存储 ................................................................................ 52
系统偏好 Preferences .................................................................................. 53
文件 Files ...................................................................................................... 54
数据库 Databases......................................................................................... 54
网络 Network ................................................................................................ 55
内容提供器 Content Providers ........................................................................... 55
内容提供器的基础知识 Content Provider Basics....................................... 55
查询一个内容提供器 Querying a Content Provider ................................... 57
修改数据 Modifying Data ............................................................................. 61
创建一个内容提供器 Creating a Content Provider .................................... 64
Content URI 总结 ........................................................................................ 67
清单文件 The AndroidManifest.xml File............................................................ 68
清单文件结构 Structure of the Manifest File ............................................. 68
文件约定 File Conventions.......................................................................... 70
文件特性 File Features................................................................................. 73
应用程序基础 Application Fundamentals
关键类
1. Activity
2. Service
3. BroadcastReceiver
4. ContentProvider
5. Intent
Android 应用程序使用 Java 做为开发语言。aapt 工具把编译后的 Java 代码连同其它应用程序需要的数
据和资源文件一起打包到一个 Android 包文件中,这个文件使用.apk 做为扩展名,它是分发应用程序并
安装到移动设备的媒介,用户只需下载并安装此文件到他们的设备。单一.apk 文件中的所有代码被认为是
一个应用程序。
从很多方面来看,每个 Android 应用程序都存在于它自己的世界之中:
默认情况下,每个应用程序均运行于它自己的 Linux 进程中。当应用程序中的任意代码开始执行
时,Android 启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这
个进程。
每个进程都运行于自己的 Java 虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代
码是隔绝的。
默认情况下,每个应用程序均被赋予一个唯一的 Linux 用户 ID,并加以权限设置,使得应用程序
的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应
用程序所访问。
使两个应用程序共有同一个用户 ID 是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的
角度来看,拥有同一个 ID 的应用程序也将在运行时使用同一个 Linux 进程,以及同一个虚拟机。
应用程序组件
Android 的核心功能之一就是一个应用程序可以使用其它应用程序的元素(如果那个应用程序允许的话)。
比如说,如果你的应用程序需要一个图片卷动列表,而另一个应用程序已经开发了一个合用的而又允许别
人使用的话,你可以直接调用那个卷动列表来完成工作,而不用自己再开发一个。你的应用程序并没有吸
纳或链接其它应用程序的代码,它只是在有需求的时候启动了其它应用程序的那个功能部分。
为达到这个目的,系统必须在一个应用程序的一部分被需要时启动这个应用程序,并将那个部分的 Java
对象实例化。与在其它系统上的应用程序不同,Android 应用程序没有为应用准备一个单独的程序入口(比
如说,没有 main()方法), 而是为系统依照需求实例化提供了基本的组件。共有四种组件类型:
Activity
Activity
是为用户操作而展示的可视化用户界面。
比如说,一个 activity 可以展示一个菜单项列表供用户
选择,或者显示一些包含说明的照片。一个短消息应用程序可以包括一个用于显示做为发送对象的联系人
的列表的 activity,一个给选定的联系人写短信的 activity 以及翻阅以前的短信和改变设置的 activity。
尽管它们一起组成了一个内聚的用户界面,但其中每个 activity 都与其它的保持独立。每个都是以 Activity
类为基类的子类实现。
一个应用程序可以只有一个 activity,或者,如刚才提到的短信应用程序那样,包含很多个。每个 activity
的作用,以及其数目,自然取决于应用程序及其设计。一般情况下,总有一个应用程序被标记为用户在应
用程序启动的时候第一个看到的。从一个 activity 转向另一个的方式是靠当前的 activity 启动下一个。
每个 activity 都被给予一个默认的窗口以进行绘制。一般情况下,这个窗口是满屏的,但它也可以是一个
小的位于其它窗口之上的浮动窗口。一个 activity 也可以使用超过一个的窗口──比如,在 activity 运行
过程中弹出的一个供用户反应的小对话框,或是当用户选择了屏幕上特定项目后显示的必要信息。
窗口显示的可视内容是由一系列视图构成的,这些视图均继承自 View 基类。每个视图均控制着窗口中一
块特定的
矩形
空间。父级视图包含并组织它子视图的布局。叶节点视图(位于视图层次最底端)在它们控
制的矩形中进行绘制,并对用户对其直接操作做出响应。所以,视图是 activity 与用户进行交互的界面。