android应用基础--由官方帮助文件翻译

android应用基础

android 应用是由Java语言编写的。由androidd SDK编译和数据资源文件组合成一个APK:一个android包,后缀是.apk。用来安装在android设备上。

一旦安装在设备上,每个app都存在自己的安全沙箱。
- android操作系统是一个多用户的Linux系统,每个app都是一个不同的用户.
- 默认来说,系统分配给每个app一个独特的Linux用户ID(ID只被系统使用,app是不知道的).系统给app中的所有文件设置权限,因此只有拥有ID的app能够访问。
- 每个程序都有自己的虚拟机,因此app可以独立的运行。
- 默认而言,每个app运行在自己的进程中。当app任一个部件需要执行时,android 启动进程,当app不需要的时候或者系统必须为其他app恢复内存时就关闭进程
这样android 系统实现了最小特权原则,也就是每个app仅对需要工作的组件进行访问,不做其他的事情。这样就创建了一个很安全的环境,app不能访问到系统里它没有权限的部分。
然而,这有一些方法让app与其他app分享数据和app得到系统服务。
- 两个app分享相同的Linux用户ID是可以的。这样它们能够访问彼此的文件。为了保存系统资源,有相同的ID的app能够运行在相同的Linux进程中,分享相同的虚拟机(应用必须被签名成同样的认证).
- app 可以获取权限访问设备数据例如用户联系人,短信,SD卡,照相机,蓝牙等等。所有的用户请求必须在安装时获取
以上涉及了android应用是如何存在系统中的基本概念。这个文档上虞部分向你介绍:
- 定义在你的app中的核心框架组件
- 在manifest中,给你的应用声明组件及请求的设备特点
- 独立于应用代码的资源让你的应用极大的优化它在各种配置的设备上的表现。
应用组件
应用组件是Android应用的关键。每个组件是一个不同的入口,系统可以通过它进入到你的应用。对于用户来说,并不是每个组件都是实际的入点,但它们之间有一些依赖 ,但是每一个存在的组件都有它自己的一个入点,并扮演一个特定的角色–每一个都是独一无二的构建块,帮助你定义你的应用的整体行为 。有四个不同类型的应用组件,每个类型服务于一个不同的目的,并有不同的生命周期,生命周期定义了如何创建和销毁它. 下面是四种应用组件:
Activity 活动
一个activity提供一个用户接口的屏幕,比如一个邮箱应用可能会有一个活动展示新邮件的列表,另一个activity用于写邮件,还有一个用于读邮件,虽然在邮箱应用中activity一起工作组成一个完整的用户体验, 但又互相独立的。所以,不同的可以开启任何一个activity。例如:一个相机应用可以开启邮箱应用中的写邮件的活动,为了让用户分享一个照片。
一个activity被当作Activity的子类来实现的,在Activities开发指南中,你可以学到更多关于它的使用
Services 服务
一个service是长期运行在后台,执行操作的组件,甚至可以为远程进程工作。一个服务不提供用户界面。比如,当用户在其他应用中时,一个服务可能在后台播放音乐。或者在网络获取数据,这并不影响用户跟其他的活动进行交互操作。 其他的组件,比如一个activity,可以启动一个服务,并可以让它运行或者邦定到这个activity,以便与其进行交互操作。一个服务是作为Service子类来实现的,在Services开发南中你能学到更多关于它的使用。
Content providers 内容提供者
一个content provider管理共享的应用数据集。你可以把数据存在文件系统中,一个SQLite数据库中,网上,或你应用可以访问的永久存储器中,通过内容提供者,其他的应用可以查询甚至修改数据(如果内容提供者允许的话)。比如,Android系统提供一个内容提供者管理用户通信录信息。 因此,任何拥有适当权限的应用,可以查询内容提供者的部分来(比如ContactsContract.Data)读取和写入关于某个人的信息。内容提供者对于读取和写入属于你的应用的私有的非共享数据也是非常有用的,比如Note Pad样例应用程序,就使用内容提供者来保存笔记的。一个内容提供者被当作的子类实现,并且必须实现一套标准的APIs,以让其他的应用能执行交换操作。
Broadcast receivers 广播接收者
广播接收者是一个响应系统范围广播公告(通知)的组件。许多广播信息,都是来源于系统,比如,通知屏幕关闭的公告,电量低,或抓取了一张图片。应用也能发起广播,比如,让其他的应用知道一些数据已下载到设备了,并且他们可以使用了。虽然广播接收者,不能显示用户界面,但当一个广播事件发生时,它们可以创建一个状态通知器,去提醒用户。但更多情况下,一个广播接收者只是一个其他组件,想要做极小量事件的一个”gateway”(途径)。举例来说,它可能发起一个服务,去执行关于某个事件的一些工作。一个广播接收者,是当作BroadcastReceiver子类被实现的.每个广播接收者都是从Intent对象衍生出来的。更多信息,请参考BroadcastReceiver类。
本文档翻译到此结束。因为我发现已经有前人翻译好了,所以就不再费功夫。附加链接:http://www.cnblogs.com/activity-life/archive/2012/03/21/2409170.html

你可能感兴趣的:(android)