详见: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个组件之间的关系如下图:

3. Android安全访问设置

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

            
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns: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.    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
  7.        <activity android:name=".welcomActivity" 
  8.                   android:label="@string/app_name"> 
  9.             <intent-filter> 
  10.                 <action android:name="android.intent.action.MAIN" /> 
  11.                 <category android:name="android.intent.category.LAUNCHER" /> 
  12.             intent-filter> 
  13.         activity> 
  14.    application> 
  15.   <uses-permission android:name="android.permission.SEND_SMS">uses-permission> 
  16. manifest> 

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

更多相关文章

  1. Android平台一日游
  2. Android中读写文件
  3. Android应用程序的默认最大内存值
  4. ( 转)关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi
  5. Android之Intent
  6. Android应用程序启动过程源代码分析
  7. android Intent机制详解
  8. Xamarin.Android使用教程之创建第一个Android应用程序
  9. Android(安卓)编程下 Managing Your App's Memory

随机推荐

  1. Android Verified Boot 2.0
  2. Android studio SDK6.0 不支持HttpClient
  3. android SQLite使用
  4. android获取指定路径下目录文件
  5. Android:EditText插入图片实现图文混排
  6. android 取消系统锁屏
  7. The Business of Android(安卓)Apps Deve
  8. Android Untold Stories
  9. Android基本数据存储方法
  10. Android 快速启动