android permission
###1. android permision android 采用了和Linux类型的权限隔离机制,每个应用使用独立的系统标识(uid 和)来运行,从而使得不同应用之间以及应用和系统之间隔离开来, 每一个Android 应用都是在一个进程沙箱中运行的,缺省情况下,应用无权执行可能对其它应用,操作系统或是用户造成影响的任何操作,这些操作可能包括读写用户个人数据(比如通讯录或是电子邮件),读写其它应用的文件,访问网络,拨打电话,发送短信, 录音, 拍照, 读取定位信息等 如有需要,应用必须明确指明需要和其它应用共享的资源或数据。这需要通过申明缺省“沙箱”未支持的“Permissions”来获得这些额外的功能, 应用在 AndroidManifest.xml 文件中静态声明所需permission,Android系统在安装应用时会询问用户是否赋予该应用所需权限。为避免用户决定安全问题的复杂性,Android系统不支持在运行时动态赋予应用所需permission(android M开始, 已经支持 runtime permission) 例如: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission.RECEIVE_SMS" /> ... </manifest> ###2. PermissionInfo / PermissionGroupInfo android framework 中使用 class PermissionInfo 来存储permission 相关的信息, 其中几个主要的成员如下: public int protectionLevel; 该permission的保护级别, 即获取该permission需要的条件 public...