Browsed by
Tag: framework

Android开发指导随译(2) — 应用程序基本原理(1)

Android开发指导随译(2) — 应用程序基本原理(1)

Android程序采用Java语音编写. 编译后的Java代码(包括资源文件和数据文件等)打包进一个Android package,以.apk为文件后缀. 一个.apk文件就是一个应用程序.

从各方面看, 每个Android应用程序都有”自己独立的世界”:
1. 缺省情况下, 每个应用程序都运行自己的linux进程.
2. 每个进程都有自己独立的VM, 因此应用程序之间是隔离的.
3. 缺省情况下, 每个程序都分配了一个唯一的linux user ID. 只有当前程序和当前用户(user)有权访问该程序的文件(?数据).

有可能两个程序共享同一个user ID, 这样他们就能互相看见对方的文件. 为了共享系统资源, 应用程序也可以采用同一个ID, 运行在同一个Linux进程中, 公用同一个VM.

应用程序组件
Android一个重要的特点就是: 应用程序可以使用其他应用程序的elements(?组件)(这些应用程序要开放这些elements).
程序不需要合并其他程序的代码或者将它们链接进来, 只需要根据需要启动其他程序的那部分代码即可. (笔注: 这个强啊! 是不是我理解错了? 直接启动其他程序的部分代码?)

为了支持上述特点, 需要利用应用程序任何一部分时, Android必须能够启动该应用程序, 并且实例化那一部分的Java对象. 因此, 与大多数其他系统应用程序不同, Android应用程序没有一个单独的程序入口(例如, 没有main()函数). 可以说, 应用程序由一些必要的components(组件)构成, 系统可以根据需要实例化并且运行这些组件.

有四类组件:

1. Activities (行为?)
2. Services (服务)
3. Broadcast receivers(广播接收者)
4. Content providers(内容提供者)