权限是对Android设备上代码或数据的访问所施加的一种限制,以防止关键数据和代码被滥用而给用户带来不同程度的损害。

Android应用程序权限的设定应该从两种不同的角度来分析:如果一个应用程序需要使用到系统提供的API及其他服务,而这些API和服务受权限保护,需要在AndroidManifest.xml文件中定义所需访问API以及服务的权限,这时此应用程序是权限的需求方;从另一角度来说,如果一个应用里提供了其他应用需要访问的功能,为安全起见,防止不具备访问条件的应用程序非法访问,需要在代码中指定访问这些功能所需要的访问权限,这时,该应用程序是授权方。无论是需求方还是授权方都需要对应用程序的权限进行设置。

Android提供了大约有130多种内置的权限,都是android.Manifest.permission类的静态成员。Android权限有时也称之为Manifest 权限,它们控制着各种系统操作,如电话呼叫(CALL_PHONE)、照相(CAMERA)、网络(INTERNET)、键盘输入(READ_INPUT_STATE)、写短信(WRITE_SMS)等。除了内置的权限以外,任何一个应用程序可以自定义适当的权限,以供其他应用程序访问。Android权限主要有4种级别:Normal、 Dangerous、Signature和SignatureOrSystem,它们的功能和描述如表3-3所示。

表3-3 Android的4种权限级别

Android权限机制的实现贯穿应用层、框架层、系统层。应用层通过设置Android-Manifest.xml中<uses-permission>指定对应权限,再映射到底层的用户和组权限;框架层通过设置platform.xml中<permission>指定其对应权限,platform.xml文件位于frameworks/base/data/etc/;系统层的权限定义在system/core/include/private/android_filesystem_config.h文件中。Android权限机制的实现流程图如图3-6所示。

(1) Android应用程序的AndroidManifest.xml权限

Android应用程序所需权限需要在AndroidManifest.xml中声明,并且在应用程序安装时由用户决定是否允许安装此应用程序。在安装时,通过读取AndroidManifest.xml文件,安装程序将产生一个所有权限的列表呈现给用户,用户只有选择接收应用程序所需的权限才能安装应用程序,否则只有放弃安装。而且权限在安装时一经确认后就不能再更改,一旦允许安装,该应用程序就拥有了它所声明的操作权限。

AndroidManifest.xml文件包含了Android系统里应用程序的主要信息,这些信息是任何代码在运行之前都必须具备的,描述了组成应用程序的每一个组件(活动、服务、内容提供器和广播接收器)的信息以及功能。AndroidManifest.xml定义了应用程序访问系统API及其他服务的所需权限,也定义了访问当前应用程序的其他应用程序应具备的权限。


更多相关文章

  1. 降低android应用程序耗电量的解决方案
  2. 跟Google学习Android开发-起始篇-保存数据(2)
  3. Android下以root权限启动程序
  4. Android各版本适配之6.0
  5. Android(安卓)API Guides---Accessibility Developer Checklist
  6. 在Android中访问内置SE和基于SE的卡模拟(一)
  7. Android开发--身高体重指数(BIM)计算--访问标识符号(android:id属性/
  8. Android(安卓)运行时权限管理最佳实践
  9. Android系统篇之----Android中的run-as命令引出升降权限的安全问

随机推荐

  1. Android(安卓)ServiceManager注册自定义s
  2. android WebView登录状态session id 和co
  3. android的设备永不休眠(增加 Settings-->D
  4. android Supporting multiple screen翻译
  5. 情况控件Android(安卓)layout_weight用法
  6. Android自动化测试初探(四): 模拟键盘鼠标
  7. Android中欢迎界面背景图片放大效果
  8. Android(安卓)OnTouchListener OnGesture
  9. 在Ubuntu上下载、编译和安装Android最新
  10. android xml 分析1--- AndroidManifest.x