详见:51CTO专家专栏 李洋谈Android安全框架

http://mobile.51cto.com/hot-280012.htm

1. Android具有哪些权限

根据用户的使用过程体验,可以将Android涉及的权限大致分为如下三类:

(1)Android手机所有者权限:自用户购买Android手机(如Samsung GT-i9000)后,用户不需要输入任何密码,就具有安装一般应用软件、使用应用程序等的权限;

(2)Android root权限:该权限为Android系统的最高权限,可以对所有系统中文件、数据进行任意操作。出厂时默认没有该权限,需要使用z4Root等软件进行获取,然而,并不鼓励进行此操作,因为可能由此使用户失去手机原厂保修的权益。同样,如果将Android手机进行root权限提升,则此后用户不需要输入任何密码,都将能以Android root权限来使用手机。

(3)Android应用程序权限:Android提供了丰富的SDK(Software development kit),开发人员可以根据其开发Android中的应用程序。而应用程序对Android系统资源的访问需要有相应的访问权限,这个权限就称为Android应用程序权限,它在应用程序设计时设定,在Android系统中初次安装时即生效。值得注意的是:如果应用程序设计的权限大于Android手机所有者权限,则该应用程序无法运行。如:没有获取Android root权限的手机无法运行Root Explorer,因为运行该应用程序需要Android root权限。

2. Android的组件模型(Component Model)

Android系统中包括4种组件

(1)Activity:Activity就是一个界面,这个界面里面可以放置各种控件。比如:Task Manager的界面、Root Explorer的界面等;

(2)Service:服务是运行在后台的功能模块。如文件下载、音乐播放程序等;

(3)Content Provider:它是Android平台应用程序间数据共享的一种标准接口,它以类似于URI(Universal Resources Identification)的方式来表示数据,如:content://contacts/people/1101;

(4)Broadcast Receiver:与此组件相关的概念是Intent,Intent是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递。而Broadcast Receiver组件则提供了一种把Intent作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。举个简单的例子,:为了实现一个系统启动后播放音乐的功能,则可以定义Intent为android.intent.action.BOOT_COMPLETED,由Broadcast Receiver组件将其进行广播,而系统中的Media Player接收到该信息后则进行播放。

如上所述,4个组件之间的关系如下图:

4个组件之间的关系如下图

3. Android安全访问设置

每个Android的apk(Android Package)包里面都包含有一个AndroidMainifest.xml文件,该文件除了罗列应用程序运行时库、运行依赖关系等之外,还会详细地罗列出该应用程序所需的系统访问。该文件的基本格式如下:

        
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="cn.com.fetion.android"
  4. android:versionCode="1"
  5. android:versionName="1.0.0">
  6. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  7. <activityandroid:name=".welcomActivity"
  8. android:label="@string/app_name">
  9. <intent-filter>
  10. <actionandroid:name="android.intent.action.MAIN"/>
  11. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  12. </intent-filter>
  13. </activity>
  14. </application>
  15. <uses-permissionandroid:name="android.permission.SEND_SMS"></uses-permission>
  16. </manifest>

如上述文件描述中斜体部分,该文件的作用是说明该软件具备发送短信的功能。Android定义了106种permission,可供开发人员使用,具体详见网址:http://developers.androidcn.com/reference/android/Manifest.permission.html。

本文出自 “卓越始于足下” 博客,谢绝转载!

更多相关文章

  1. 用git下载Android的某个应用程序
  2. Android应用程序启动过程源代码分析
  3. Android基本组件__文本框和编辑框
  4. Android设置权限问题
  5. Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedC
  6. Android应用程序与SurfaceFlinger服务的连接过程分析

随机推荐

  1. Android使用SharedPreferences实现登录帐
  2. DeskClock笔记
  3. Android自用----- 加载png图片时出错!
  4. android studio继续深入ndk打包so库和jar
  5. Android(安卓)TextView 字段设置监听事件
  6. 【android】只让本应用程序的webview加载
  7. Android 通过 Intent 传递类对象
  8. Android(安卓)Drawable 和String 相互转
  9. android 垂直拖动条seekbar
  10. Activity你需要知道的一切