原文地址 http://developer.android.com/guide/components/fundamentals.html
(按照个人理解进行翻译,方便以后查找资料,水平有限,如有错误,还请谅解)
翻译:
Application Fundamentals
Android应用程序使用Java编程语言编写。Android SDK工具集将代码、所有数据和资源文件一起,编译到一个Android程序包中,一个以.apk为后缀的存档文件。一个单独的.apk文件中的所有的代码,被看作是一个应用程序,是Android设备用来安装应用的文件。
一旦安装到一个设备上,每个Android应用程序运行在它自己的安全沙箱中:
* Android操作系统是一个多用户Linux系统,其中每个应用程序都是不同的用户。
* 默认情况下,系统赋予每个应用程序一个唯一的Linux用户ID(这个ID仅被系统使用,应用程序不知道)。系统对一个应用程序的所有文件设置权限,只有使用这个用户ID的应用程序可以访问它们。
* 每个进程有它自己的虚拟机(VM),因此一个应用程序的代码运行在与其他应用程序隔离的内存中。
* 默认情况下,每个应用程序运行在它自己的Linux进程中。当应用程序的任意组件需要执行时,Android启动一个进程,当组件不需要执行时或系统必须回收内存给其他应用程序时,Android关闭这个进程。
这样,Android系统实现了最小特权原则。就是说,默认情况下,每个应用程序只能访问需要工作的组件,不会做其他事。这点创造了一个非常安全的环境,一个应用程序不能访问未获得权限的系统的其他部分。
然而,有一些方法,让一个应用程序与其他应用程序共享数据,或访问系统服务:
* 有可能安排两个应用程序共享同一个Linux用户ID,这时他们可以访问对方的文件。为了保存系统资源,使用相同用户ID的应用程序,可以运行在同一个的Linux进程中并共享同一个VM(这些应用程序必须相同的签名证书)。
* 一个应用程序可以请求访问设备数据的权限,例如用户的通讯录,SMS信息,挂载的存储设备(SD卡),相机,蓝牙等等。用户必须在安装时授予应用程序的所有权限。
那些涵盖一个应用程序如何存在于系统中的基本知识。这篇文档的下面部分将未我们介绍:
* 定义我们的应用程序的核心框架组件。
* manifest文件,其中我们声明应用程序的组件和需要的设备特性。
* 各种资源,它们独立于应用程序代码,并允许我们的应用程序根据不同的设备配置优化其行为。
Application Components
应用程序组件是一个Android应用程序的关键组成部分。每个组件都是系统可以进入我们应用程序的入口点。实际上,对用户来说不是所有组件都是入口点,其中一些组件依靠其他组件,但是每个组件存在它自己的实体并扮演一个特别的角色——每个组件都是特定的构建部分,帮助定义我们应用程序的整体行为。
有四种不同类型的应用程序组件。每种类型服务于不同的目的,并有不同的生命周期——定义了组件的创建和销毁。下面是四种类型的应用程序组件:
Activities:
一个activity代表一个用户接口的单独界面。例如,一个email应用程序