您的位置:首页 > 移动开发

1.1系统中的Android应用|1 Application的原理|Android Developer

2012-10-08 17:20 281 查看
API Guilds:Application Fundamentals

Android应用使用Java编程语言写成。Android SDK工具编译了java代码,将其与其他数据何资源文件一通打包为一个android包,存档为一个以.apk结尾的文件。在一个.apk包里的所有代码称为一个应用(application),这个文件被装有android驱动(android-powered)的设备使用来安装这个应用。

一旦安装到了设备上,每个android应用生存在自己的安全沙箱中(security sandbox) :

Android操作系统是一个多用户的Linux系统,每个应用对应一个不同的用户。

默认情况下,系统为每个应用费配一个独立的Linux用户ID(这个ID只被系统使用,应用自己也不知道)。系统为应用中所有的文件设置权限,只有应用对应的这个用户ID可以访问到它们。

每个进程拥有自己的虚拟机(VM),所以每个应用的代码的运行都独立于其他应用。

默认情况下,每个应用运行它自己的Linux进程。当需要运行应用的任何组件(components)时,任何Android启动进程,然后,当它(组件)不再被需要时或系统必须给其他应用恢复内存的时候,就把进程关闭。

这样,Android系统履行“最小权限原则”。即,对每个应用默认只能获取到组件正常工作所需的最少权限。这样就创建了一个非常安全的环境,其中一个应用不能使用它没有权限访问的系统资源。

然而,还是有办法使一个应用与其他应用分享数据,对一个使用系统服务的应用:

一个可行的方法是使两个应用分享同一个Linux用户ID,这样它们就可以互相使用彼此的文件了。为了保存系统资源,多个使用相同用户ID的ID也可以被安排运行再同一个Linux进程中,并且分享同一个VM(这多个应用必须也使用相同签名。)

一个应用可以请求访问设备数据的权限,例如用户联系方式,SMS信息,可装卸的存储设备(SD卡),相机,蓝牙,等等。所有的应用权限必须在用户安装应用时取得他的许可。

扩展:见《用户IDs与文件访问|权限|Android Developer》/article/5359574.html

扩展:什么是签名:/article/4733772.html

扩展:SMS 是一种存储和转发服务。也就是说,短消息并不是直接从发送人发送到接收人,而始终通过 SMS 中心进行转发。如果接收人处于未连接状态(可能电话已关闭),则消息将在接收人再次连接时发送。

That covers the basics regarding how an Android application exists within the system. The rest of this document introduces you to:

以上涵盖了一个安卓应用如何存在于系统中的基本要素。文档其余部分将为您介绍:

定义你的应用的核心体系结构组件

操作文件(manifest file),其中你可以为你的应用声明组件并对设备特征提出要求。

独立于应用代码的资源,以及透过一组设备变量配置来使得你的应用可以优雅地优化它的表现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: