应用程序基础
Android应用程序使用java编写,Android SDK 工具连同源代码、数据和资源文件编译成apk文件(an android package,以.apk结尾的存档文件),每一个android应用程序运行在自己的安全沙盒中。
- android操作系统 是一个多用户linux操作系统,每一个应用程序是一个不同的用户。
- 默认情况下,系统为每一个应用程序分配一个唯一的用户ID。用户ID仅仅用于操作系统,对应用程序而言,是不知道的。系统为应用程序的所有文件设置权限,仅拥有对应用户ID的应用程序能访问他们。
- 每一个进程拥有自己的虚拟空间。
- 默认情况下,每一个应用程序运行在自己的linux进程中。当应用程序的任何一个组件需要被执行的时候,系统开启应用进程。当应用程序不需要,或者系统需要回收内存的时候,系统结束应用进程。
通过这种方法,android系统实现了最小权限原则。那就是,每一个app,默认情况下,只对自己的组件有访问权限,每个组件只需要做自己的任务。这样创建了一个非常安全的环境,一个app在未授权的情况下,不能访问系统的其它部分。
但是,有一些方法能使一个app与其他app分享数据,以及一个app访问系统服务:
- 我们可以安排两个应用程序共享同一个linux用户id,用这种方法,它们可以互相访问彼此的文件。为了节省系统资源,拥有相同用户ID的app被安排运行在相同的linux进程中,共享相同的虚拟机(应用程序必须用相同的证书进行签名)
-
一个应用程序可以请求权限来访问设备数据,如用户的联系人,短信,可装载存储(sd卡),摄像头,蓝牙等等。所有的应用程序在安装时用户必须被授予的权限。

浙公网安备 33010602011771号