Android 使用JAVA语言开发。它通过Android SDK 工具编译代码—将代码及相关资源打包进一个Android 包内(一个以“ .apk”为后缀的压缩文件,简单理解就是我们手机上下载应用程序的安装包)。 这样的“ .apk” 文件中的所有代码就是一个程序。这个 .apk”文件就用于在Android设备(包括但是不限于手机,平板)上安装这个程序。
一旦安装成功,这个Android程序就拥有了自己独立的运行沙盒(沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法限制了授予应用程序的代码访问权限。):
- Android操作系统是一个多用户的linux系统,其中的每一个应用程序都是一个独立的用户(注意:这里面的用户不是指某某人,而是某某应用程序)。
- 默认地,系统(比如手机系统)会为每一个应用程序分配一个唯一的Linux用户ID(这个ID只能被系统使用,并且对于应用程序来说,这个ID是未知的)。系统为每个应用程序的所有文件设置了权限并且只有通过这个应用程序的用户ID才可以去访问它们。
- 默认地,每一个应用程序在它自己的Linux进程中运行。Android会在一个应用程序的任何一个组件需要被调用的时候启动这个进程。然后,当没有任何组件被调用或者系统需要为其它应用程序回收内存的时候,就会关闭这个进程。
通过这种方式,Android 系统实现了最少特权原则(即每一个应用程序,默认地,都只能调用它所需要的工作组件)。 这就创造了一种非常安全的环境,使得应用程序不能去访问没有被授予其权限的系统部分。
当然,有很多途径可以让一个应用程序和其它的应用程序共享数据,或者是让一个应用程序去调用系统服务,就比如:
- 为两个应用程序分配同一个Linux用户ID,这样它们就能访问对方的文件。而为了节约系统资源,拥有相同用户ID的应用程序也可以被运行于相同的Linux进程并且共享VM(它们必须用相同的证书签名)。
- 应用程序可以通过请求权限来访问设备数据,例如联系人,SMS信息,可插拔存储(SD卡),相机,蓝牙,等等。所有的应用程序权限必须在安装的时候由用户授予。
最后的话
我也不知道为什么讲解下载软件的分类是其他,以后主介绍(包括但是不限于各种计算机语言,网络安全,Android开放,各种框架以及好用的软件和网站)。
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。