您的位置:首页 > 其它

应用程序基础之01序论

2013-11-01 22:50 204 查看
应用程序基础之01-序论

Android应用程序使用Java编程语言编写,Android SDK工具将代码连同所有数据、资源文件一起编译进一个Android包,也就是一个以.apk为后缀的压缩文件。在一个单独的.apk文件中的所有代码被称为一个应用程序,Android操作系统的设备也是用这样的文件来安装应用的。

每一个Android应用程序一旦被安装在一款设备上,那么它便存在与自己独立的安全沙箱中:

*Android操作系统是一个多用户的Linux操作系统,其中的每一个应用程序都是一个不同的用户。

*默认情况下,系统分配给每一个应用程序一个唯一的Linux用户ID(用户ID只能被系统使用,应用程序是不能识别的),系统为一个应用程序中的所有文件设置权限,从而仅使被分配了指定用户ID的应用程序才可以访问他们。

*每一个进程都有它自己的虚拟机(VM),因此每一个应用程序都和其他应用隔离运行。

*默认情况下,每一个应用都在自己的Linux进程中运行。当一个应用中任何组件需要被执行时,Android系统便启动进程,当它不再被使用或者系统必须要为其它应用程序恢复内存时便结束该进程。

这样,Android系统符合最小特权原则。也就是说,默认情况下,每个应用程序仅仅能够访问它所需要的组件来完成它的工作,而没有更多其它权利。这便创造了一个非常安全的环境,在此环境中,每个应用程序不能访问系统中其它没有赋予权限的部分。

然而,对于应用程序来说也有一些途径来和其它应用程序分享数据,或者使用系统的服务:

*安排两个应用程序分享同一个Linux用户ID也是可能的,在这种情况下他们能够互相访问各自的文件。为了节省系统资源,拥有相同用户ID的应用程序也可以安排在同一个Linux进程中运行,共用同一个虚拟机(应用程序也必须使用相同的证书签名)。

*一个应用程序也可以请求权限来访问设备数据,比如用户的联系人、短信服务、SD储存卡、相机、蓝牙等等。所有的应用程序权限必须在安装时被用户赋予。

以上内容包括了一个Android应用程序如何在系统中存在的基本要点。文档其余的部分将向您介绍以下内容:

*定义您应用程序的核心构架组件。

*声明组件以及声明应用程序所需设备特性的manifest文件。

*与应用程序代码分离并且使您的应用程序合理地优化各种各样的设备配置行为的资源。

转载请注明:大飞_Rflyee:/article/8669030.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: