1、 1 中文 6000 字 附录 A 译文 安卓应用基础 在 Java 编程语言编写的 Android 应用程序的 Android 的 SDK 工具编译代码以及与任何数据和到一个 Android 的包 , 一个归档文件档案资源的 .apk 后缀,所有的在一个单一的代码 .apk 文件被认为是一个应用程序,是 Android 的文件,供电设备来安装应用程序。 一旦安装在设备上,每个 Android 应用程序的生命在它自己的安全沙箱: 而 Android 操作系统是一个多用户 Linux 系统中,每个应用程序是一个不同的用户。 默认情况下,每个应用程序的系统分配一个 唯一的 Linux 用户 ID(
2、该 ID 仅用于由系统是未知的应用程序),系统设置所有的应用程序中的文件权限,以便只有用户 ID 分配给该应用程序可以访问它们。 每个进程都有它自己的虚拟机( VM),因此应用程序的代码在从其他应用程序隔离运行。 默认情况下,每个应用程序运行在它自己的 Linux 进程。 Android 的启动过程时,应用程序的任何组件需要被执行,然后关闭该进程时,它不再需要或恢复时,系统必须为其他应用程序的内存。 这样一来, Android 系统实现了 最小特权原则 , 也就是说,每个应用程序,默认情况下,只能访问的组件 ,它需要做的工作,没有更多,这将创建一个非常安全的环境,使应用程序无法访问的,这就是它
3、没有给予许可制度的部分。 但是,有一个应用程序的方法与其他应用程序和应用程序访问系统服务的数据: 这有可能为两个应用程序安排共享相同的 Linux 用户 ID,在这种情况下,它们能够相互访问的文件。为了节约使用相同的用户 ID 系统资源,应用程序还可以安排运行在相同的 Linux 进程和共享同一个 VM(应用也必须使用相同的证书签名)。 2 应用程序可以请求访问权限,如用户的联系人,短信,可安装存储( SD 卡),摄像头,蓝牙等设备的数据,所有 应用程序的权限必须由用户在安装时授予。 这涵盖了基本就如何 Android 应用程序在系统中存在这个文件的其余部分向您介绍: 1、 框架的核心组件定义
4、应用程序。 2、 清单文件中声明组件和应用程序所需的设备功能。 3、 资源是从应用程序代码分开,并允许您的应用程序正常优化的设备配置各种其行为。 应用程序组件 (Application Components) Android 的核心功能之一就是一个应用程序可以使用其它应用程序的元素(如果那个应用程序允许的话)。比如说,如果你的应用程序需要一个图 片卷动列 表,而另一个应用程序已经开发了一个合用的而又允许别人使用的话,你可以直接调用那个卷动列表来完成工作,而不用自己再开发一个。你的应用程序并没有吸纳 或链接其它应用程序的代码,它只是在有需求的时候启动了其它应用程序的那个功能部分。 为达到这个目的
5、,系统必须在一个应用程序的一部分被需要时启动这个应用程序,并将那个部分的 Java 对象实例化。与在其它系统上的应用程序不同,Android 应用程序没有为应用准备一个单独的程序入口(比如说,没有 main()方法), 而是为系统依照需求实例化提供了基 本的组件。共有四种组件类型: 活动 (Activities) 一个 activity 代表用户界面的一个独立屏幕。例如,一个邮件应用程序应该有一个 activity 用于显示新邮件列表,另一个 activity 用于撰写一封邮件,还有一个 activity 用于读取邮件。尽管所有 activitie 协同工作以构成邮件应用程序的用户体验,但彼此
6、之间相对独立。应次,不同的应用程序能够从任何一个 activity 启动 (只要邮件应用程序允许 )。例如,用户需要分享一张照片,一个拍照应用程序能够启动邮件应用程序的 activity 。 3 activity 是一个实现了 Activity 的子类,你可以在 Activities 开发者指导部分了解更多。 服务 (Services) service 是在后台运行,执行长时间操作或者执行远程操作。 service 不提供用户界面。例如,当用户在另一个应用程序时,一个 service 可在后台播放音乐,或者是从网络上获取数据,而不阻断用户与当前 activity 的交互。其他组件,比如一个 a
7、ctivity ,为了与该 service 互动,可以启动或者 绑定它。 service 是一个实现 了 Service 的子类,你可以在 Services 开发者指导部分了解更多。 广播接收器 (Broadcast receivers) 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的 比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播 比如说,通知其它应用程序一些数据下载完成并处于可用状态。 应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自 BroadcastRec
8、eiver 基类。 广播接收器没有用户界面。然而,它们可以启动一个 activity 来响应它们收到的信息,或者用 NotificationManager 来通知用户。通知可以用很多种方式 来吸引用户的注意力 闪动背灯、震动、播放声音等等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。 内容提供者 (Content providers) 内容提供者将一些特定的应用程序数据供给其它应用程序使用。数据可以存储于文件系统、 SQLite 数据库或其它方式。内容提供者继承于 ContentProvider 基类,为其它应用程序取用和存储它管理的数据实现了一套标准方法。然而,应用程序并不直接调用这些方法,而是使用一个 ContentResolver 对象,调用它的方