一、关于AndroidManifest.xml
AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)
二、AndroidManifest.xml结构
三、各个节点的详细介绍
上面就是整个am(androidManifest).xml的结构,下面以外向内开始阐述~~
1、第一层(
A、xmlns:android
定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。
B、package
指定本应用内java主程序包的包名,它也是一个应用进程的默认名称
C、sharedUserId
表明数据权限,因为默认情况下,Android给每个APK分配一个唯一的UserID,所以是默认禁止不同APK访问共享数据的。若要共享数据,第一可以采用Share Preference方法,第二种就可以采用sharedUserId了,将不同APK的sharedUserId都设为一样,则这些APK之间就可以互相共享数据了。详见:http://wallage.blog.163.com/blog/static/17389624201011010539408/
D、sharedUserLabel
一个共享的用户名,它只有在设置了sharedUserId属性的前提下才会有意义
E、versionCode
是给设备程序识别版本(升级)用的必须是一个interger值代表app更新过多少次,比如第一版一般为1,之后若要更新版本就设置为2,3等等。。。
F、versionName
这个名称是给用户看的,你可以将你的APP版本号设置为1.1版,后续更新版本设置为1.2、2.0版本等等。。。
G、installLocation
安装参数,是Android2.2中的一个新特性,installLocation有三个值可以选择:internalOnly、auto、preferExternal
选择preferExternal,系统会优先考虑将APK安装到SD卡上(当然最终用户可以选择为内部ROM存储上,如果SD存储已满,也会安装到内部存储上)
选择auto,系统将会根据存储空间自己去适应
选择internalOnly是指必须安装到内部才能运行
(注:需要进行后台类监控的APP最好安装在内部,而一些较大的游戏APP最好安装在SD卡上。现默认为安装在内部,如果把APP安装在SD卡上,首先得设置你的level为8,并且要配置android:installLocation这个参数的属性为preferExternal)
2、第二层(
一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon,label,permission等)
A、android:allowClearUserData('true' or 'false')
用户是否能选择自行清除数据,默认为true,程序管理器包含一个选择允许用户清除数据。当为true时,用户可自己清理用户数据,反之亦然
B、android:allowTaskReparenting('true' or 'false')
是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务
C、android:backupAgent
这也是Android2.2中的一个新特性,设置该APP的备份,属性值应该是一个完整的类名,如com.project.TestCase,此属性并没有默认值,并且类名必须得指定(就是个备份工具,将数据备份到云端的操作)
D、android:debuggable
这个从字面上就可以看出是什么作用的,当设置为true时,表明该APP在手机上可以被调试。默认为false,在false的情况下调试该APP,就会报以下错误:
Device XXX requires that applications explicitely declare themselves as debuggable in their manifest.
Application XXX does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged.
E、android:description/android:label
此两个属性都是为许可提供的,均为字符串资源,当用户去看许可列表(android:label)或者某个许可的详细信息(android:description)时,这些字符串资源就可以显示给用户。label应当尽量简短,之需要告知用户该许可是在保护什么功能就行。而description可以用于具体描述获取该许可的程序可以做哪些事情,实际上让用户可以知道如果他们同意程序获取该权限的话,该程序可以做什么。我们通常用两句话来描述许可,第一句描述该许可,第二句警告用户如果批准该权限会可能有什么不好的事情发生
F、android:enabled
Android系统是否能够实例化该应用程序的组件,如果为true,每个组件的enabled属性决定那个组件是否可以被 enabled。如果为false,它覆盖组件指定的值;所有组件都是disabled。
G、android:hasCode('true' or 'false')
表示此APP是否包含任何的代码,默认为true,若为false,则系统在运行组件时,不会去尝试加载任何的APP代码
一个应用程序自身不会含有任何的代码,除非内置组件类,比如Activity类,此类使用了AliasActivity类,当然这是个罕见的现象
(在Android2.3可以用标准C来开发应用程序,可在androidManifest.xml中将此属性设置为false,因为这个APP本身已经不含有任何的JAVA代码了)
H、android:icon
这个很简单,就是声明整个APP的图标,图片一般都放在drawable文件夹下
I、android:killAfterRestore
J、android:manageSpaceActivity
K、android:name
为应用程序所实现的Application子类的全名。当应用程序进程开始时,该类在所有应用程序组件之前被实例化。
若该类(比方androidMain类)是在声明的package下,则可以直接声明android:name="androidMain",但此类是在package下面的子包的话,就必须声明为全路径或android:name="package名称.子包名成.androidMain"
L、android:permission
设置许可名,这个属性若在
M、android:presistent
该应用程序是否应该在任何时候都保持运行状态,默认为false。因为应用程序通常不应该设置本标识,持续模式仅仅应该设置给某些系统应用程序才是有意义的。
N、android:process
应用程序运行的进程名,它的默认值为
O、android:restoreAnyVersion
同样也是android2.2的一个新特性,用来表明应用是否准备尝试恢复所有的备份,甚至该备份是比当前设备上更要新的版本,默认是false
P、android:taskAffinity
拥有相同的affinity的Activity理论上属于相同的Task,应用程序默认的affinity的名字是
Q、android:theme
是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style。
3、第三层(
(注:有些在application中重复的就不多阐述了)
1、android:alwaysRetainTaskState
是否保留状态不变, 比如切换回home, 再从新打开,activity处于最后的状态。比如一个浏览器拥有很多状态(当打开了多个TAB的时候),用户并不希望丢失这些状态时,此时可将此属性设置为true
2、android:clearTaskOnLaunch
比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 重新启动 P,是否显示 Q
3、android:configChanges
当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
这个我用过,主要用来看手机方向改变的. android手机在旋转后,layout会重新布局, 如何做到呢?
正常情况下. 如果手机旋转了.当前Activity后杀掉,然后根据方向重新加载这个Activity. 就会从onCreate开始重新加载.
如果你设置了 这个选项, 当手机旋转后,当前Activity之后调用onConfigurationChanged() 方法. 而不跑onCreate方法等.
4、android:excludeFromRecents
是否可被显示在最近打开的activity列表里,默认是false
5、android:finishOnTaskLaunch
当用户重新启动这个任务的时候,是否关闭已打开的activity,默认是false
如果这个属性和allowTaskReparenting都是true,这个属性就是王牌。Activity的亲和力将被忽略。该Activity已经被摧毁并非re-parented
6、android:launchMode(Activity加载模式)
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式
Activity有四种加载模式:
standard、singleTop、singleTask、singleInstance(其中前两个是一组、后两个是一组),默认为standard
standard:就是intent将发送给新的实例,所以每次跳转都会生成新的activity。
singleTop:也是发送新的实例,但不同standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTop的Activity),不会构造新的实例
singleTask:和后面的singleInstance都只创建一个实例,当intent到来,需要创建设置为singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。
singleInstance:
首先说明一下task这个概念,Task可以认为是一个栈,可放入多个Activity。比如启动一个应用,那么Android就创建了一个Task,然后启动这个应用的入口Activity,那在它的界面上调用其他的Activity也只是在这个task里面。那如果在多个task中共享一个Activity的话怎么办呢。举个例来说,如果开启一个导游服务类的应用程序,里面有个Activity是开启GOOGLE地图的,当按下home键退回到主菜单又启动GOOGLE地图的应用时,显示的就是刚才的地图,实际上是同一个Activity,实际上这就引入了singleInstance。singleInstance模式就是将该Activity单独放入一个栈中,这样这个栈中只有这一个Activity,不同应用的intent都由这个Activity接收和展示,这样就做到了共享。当然前提是这些应用都没有被销毁,所以刚才是按下的HOME键,如果按下了返回键,则无效
7、android:multiprocess
是否允许多进程,默认是false
具体可看该篇文章:http://www.bangchui.org/simple/?t3181.html
8、android:noHistory
当用户从Activity上离开并且它在屏幕上不再可见时,Activity是否从Activity stack中清除并结束。默认是false。Activity不会留下历史痕迹
9、android:screenOrientation
activity显示的模式
默认为unspecified:由系统自动判断显示方向
landscape横屏模式,宽度比高度大
portrait竖屏模式, 高度比宽度大
user模式,用户当前首选的方向
behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
sensor模式:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换
nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了
10、android:stateNotNeeded
activity被销毁或者成功重启时是否保存状态
11、android:windowSoftInputMode
activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【A】当有焦点产生时,软键盘是隐藏还是显示
【B】是否减少活动主窗口大小以便腾出空间放软键盘
各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
4、第四层(
结构图:
android:priority="integer" >
intent-filter属性
android:priority(解释:有序广播主要是按照声明的优先级别,如A的级别高于B,那么,广播先传给A,再传给B。优先级别就是用设置priority属性来确定,范围是从-1000~1000,数越大优先级别越高)
Intent filter内会设定的资料包括action,data与category三种。也就是说filter只会与intent里的这三种资料作对比动作
action属性
action很简单,只有android:name这个属性。常见的android:name值为android.intent.action.MAIN,表明此activity是作为应用程序的入口。有关android:name具体有哪些值,可参照这个网址:http://hi.baidu.com/linghtway/blog/item/83713cc1c2d053170ff477a7.html
category属性
category也只有android:name属性。常见的android:name值为android.intent.category.LAUNCHER(决定应用程序是否显示在程序列表里)
有关android:name具体有哪些值,可参照这个网址:http://chroya.javaeye.com/blog/685871
data属性
android:mimeType="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:port="string"
android:scheme="string"/>
【1】每个元素指定一个URI和数据类型(MIME类型)。它有四个属性scheme、host、port、path对应于URI的每个部分:
scheme://host:port/path
scheme的值一般为"http",host为包名,port为端口号,path为具体地址。如:http://com.test.project:200/folder/etc
其中host和port合起来构成URI的凭据(authority),如果host没有指定,则port也会被忽略
要让authority有意义,scheme也必须要指定。要让path有意义,scheme+authority也必须要指定
【2】mimeType(指定数据类型),若mimeType为'Image',则会从content Provider的指定地址中获取image类型的数据。还有'video'啥的,若设置为video/mp4,则表示在指定地址中获取mp4格式的video文件
【3】而pathPattern和PathPrefix主要是为了格式化path所使用的
5、第四层
android:value="string"/>
这是该元素的基本结构.可以包含在
android:name(解释:元数据项的名字,为了保证这个名字是唯一的,采用java风格的命名规范,如com.woody.project.fried)
android:resource(解释:资源的一个引用,指定给这个项的值是该资源的id。该id可以通过方法Bundle.getInt()来从meta-data中找到。)
android:value(解释:指定给这一项的值。可以作为值来指定的数据类型并且组件用来找回那些值的Bundle方法:[getString],[getInt],[getFloat],[getString],[getBoolean])
6、第三层
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permission="string"
android:targetActivity="string">
其中android.targetActivity是指向对应快捷方式的activity,如上述的shortcut(此Activity名)
android:label是指快捷方式的名称,而快捷方式的图标默认是给定的application图标
7、第三层
【1】service与activity同级,与activity不同的是,它不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行。比如听音乐,网络下载数据等,都是由service运行的
【2】service生命周期:Service只继承了onCreate(),onStart(),onDestroy()三个方法,第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法
【3】service与activity间的通信
Service后端的数据最终还是要呈现在前端Activity之上的,因为启动Service时,系统会重新开启一个新的进程,这就涉及到不同进程间通信的问题了(AIDL),Activity与service间的通信主要用IBinder负责。具体可参照:http://zhangyan1158.blog.51cto.com/2487362/491358
【4】
android:exported[="true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string">
service标签内的属性之前已有描述,在此不重复了~
8、第三层
receiver的属性与service一样,这里就不显示了
BroadcastReceiver:用于发送广播,broadcast是在应用程序之间传输信息的一种机制,而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件,具体参照http://kevin2562.javaeye.com/blog/686787
9、第三层
android:enabled=["true" | "false"] android:exported=["true" | "false"] android:grantUriPermissions=["true" | "false"] android:icon="drawable resource" android:initOrder="integer" android:label="string resource" android:multiprocess=["true" | "false"] android:name="string" android:permission="string" android:process="string" android:readPermission="string" android:syncable=["true" | "false"] android:writePermission="string">
contentProvider(数据存储)
【1】android:authorities:
标识这个ContentProvider,调用者可以根据这个标识来找到它
【2】android:grantUriPermission:
对某个URI授予的权限
【3】android:initOrder
10、第三层
用户库,可自定义。所有android的包都可以引用
11、第一层
android:largeScreens=["true" | "false"]
android:anyDensity=["true" | "false"] />
这是在android1.6以后的新特性,支持多屏幕机制
各属性含义:这四个属性,是否支持大屏,是否支持中屏,是否支持小屏,是否支持多种不同密度
12、第二层
android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />
android:required=["true" | "false"] />
这两者都是在描述应用所需要的硬件和软件特性,以便防止应用在没有这些特性的设备上安装。
13、第二层
android:maxSdkVersion="integer"/>
描述应用所需的api level,就是版本,目前是android 2.2 = 8,android2.1 = 7,android1.6 = 4,android1.5=3
在此属性中可以指定支持的最小版本,目标版本以及最大版本
14、第二层
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:targetPackage="string"/>
定义一些用于探测和分析应用性能等等相关的类,可以监控程序。在各个应用程序的组件之前instrumentation类被实例化
android:functionalTest(解释:instrumentation类是否能运行一个功能测试,默认为false)
15、
最常用的当属
通常情况下我们不需要为自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用
那么在activity中就可以声明该自定义权限了,如:
android:permission="com.teleca.project.MY_SECURITY">
当然自己声明的permission也不能随意的使用,还是需要使用
程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下:
1. android.permission.ACCESS_CHECKIN_PROPERTIES
允许读写访问”properties”表在 checkin数据库中,改值可以修改上传( Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded)
2. android.permission.ACCESS_COARSE_LOCATION
允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi) location)
3. android.permission.ACCESS_FINE_LOCATION
允许一个程序访问精良位置(如GPS) (Allows an application to access fine (e.g., GPS) location)
4. android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
允许应用程序访问额外的位置提供命令(Allows an application to access extra location provider commands)
5. android.permission.ACCESS_MOCK_LOCATION
允许程序创建模拟位置提供用于测试(Allows an application to create mock location providers for testing)
6. android.permission.ACCESS_NETWORK_STATE
允许程序访问有关GSM网络信息(Allows applications to access information about networks)
7. android.permission.ACCESS_SURFACE_FLINGER
允许程序使用SurfaceFlinger底层特性 (Allows an application to use SurfaceFlinger’s low level features)
8. android.permission.ACCESS_WIFI_STATE
允许程序访问Wi-Fi网络状态信息(Allows applications to access information about Wi-Fi networks)
9. android.permission.ADD_SYSTEM_SERVICE
允许程序发布系统级服务(Allows an application to publish system-level services).
10. android.permission.BATTERY_STATS
允许程序更新手机电池统计信息(Allows an application to update the collected battery statistics)
11. android.permission.BLUETOOTH
允许程序连接到已配对的蓝牙设备(Allows applications to connect to paired bluetooth devices)
12. android.permission.BLUETOOTH_ADMIN
允许程序发现和配对蓝牙设备(Allows applications to discover and pair bluetooth devices)
13. android.permission.BRICK
请求能够禁用设备(非常危险)(Required to be able to disable the device (very *erous!).)
14. android.permission.BROADCAST_PACKAGE_REMOVED
允许程序广播一个提示消息在一个应用程序包已经移除后(Allows an application to broadcast a notification that an application package has been removed)
15. android.permission.BROADCAST_STICKY
允许一个程序广播常用intents(Allows an application to broadcast sticky intents)
16. android.permission.CALL_PHONE
允许一个程序初始化一个电话拨号不需通过拨号用户界面需 要用户确认 (Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed.)
17. android.permission.CALL_PRIVILEGED
允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认 (Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed)
18. android.permission.CAMERA
请求访问使用照相设备(Required to be able to access the camera device. )
19. android.permission.CHANGE_COMPONENT_ENABLED_STATE
允许一个程序是否改变一个组件或其他的启用或禁用(Allows an application to change whether an application component (other than its own) is enabled or not. )
20. android.permission.CHANGE_CONFIGURATION
允许一个程序修改当前设置,如本地化(Allows an application to modify the current configuration, such as locale. )
21. android.permission.CHANGE_NETWORK_STATE
允许程序改变网络连接状态(Allows applications to change network connectivity state)
22. android.permission.CHANGE_WIFI_STATE
允许程序改变Wi-Fi连接状态(Allows applications to change Wi-Fi connectivity state)
23. android.permission.CLEAR_APP_CACHE
允许一个程序清楚缓存从所有安装的程序在设备中(Allows an application to clear the caches of all installed applications on the device. )
24. android.permission.CLEAR_APP_USER_DATA
允许一个程序清除用户设置(Allows an application to clear user data)
25. android.permission.CONTROL_LOCATION_UPDATES
允许启用禁止位置更新提示从无线模块 (Allows enabling/disabling location update notifications from the radio. )
26. android.permission.DELETE_CACHE_FILES
允许程序删除缓存文件(Allows an application to delete cache files)
27. android.permission.DELETE_PACKAGES
允许一个程序删除包(Allows an application to delete packages)
28. android.permission.DEVICE_POWER
允许访问底层电源管理(Allows low-level access to power management)
29. android.permission.DIAGNOSTIC
允许程序RW诊断资源(Allows applications to RW to diagnostic resources. )
30. android.permission.DISABLE_KEYGUARD
允许程序禁用键盘锁(Allows applications to disable the keyguard )
31. android.permission.DUMP
允许程序返回状态抓取信息从系统服务(Allows an application to retrieve state dump information from system services.)
32. android.permission.EXPAND_STATUS_BAR
允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序(Allows an application to expand or collapse the status bar. )
33. android.permission.FACTORY_TEST
作为一个工厂测试程序,运行在root用户(Run as a manufacturer test application, running as the root user. )
34. android.permission.FLASHLIGHT
访问闪光灯,android开发网提示HTC Dream不包含闪光灯(Allows access to the flashlight )
35. android.permission.FORCE_BACK
允许程序强行一个后退操作是否在顶层activities(Allows an application to force a BACK operation on whatever is the top activity. )
36. android.permission.FOTA_UPDATE
暂时不了解这是做什么使用的,android开发网分析可能是一个预留权限.
37. android.permission.GET_ACCOUNTS
访问一个帐户列表在Accounts Service中(Allows access to the list of accounts in the Accounts Service)
38. android.permission.GET_PACKAGE_SIZE
允许一个程序获取任何package占用空间容量(Allows an application to find out the space used by any package. )
39. android.permission.GET_TASKS
允许一个程序获取信息有关当前或最近运行的任务, 一个缩略的任务状态,是否活动等等(Allows an application to get information about the currently or recently running tasks: a thumbnail representation of the tasks, what activities are running in it, etc.)
40. android.permission.HARDWARE_TEST
允许访问硬件(Allows access to hardware peripherals. )
41. android.permission.INJECT_EVENTS
允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,android 开发网提醒算是hook技术吧(Allows an application to inject user events (keys, touch, trackball) into the event stream and deliver them to ANY window.)
42. android.permission.INSTALL_PACKAGES
允许一个程序安装packages(Allows an application to install packages. )
43. android.permission.INTERNAL_SYSTEM_WINDOW
允许打开窗口使用系统用户界面(Allows an application to open windows that are for use by parts of the system user interface. )
44. android.permission.INTERNET
允许程序打开网络套接字(Allows applications to open network sockets)
45. android.permission.MANAGE_APP_TOKENS
允许程序管理(创建、催后、 z- order默认向z轴推移)程序引用在窗口管理器中(Allows an application to manage (create, destroy, Z-order) application tokens in the window manager. )
46. android.permission.MASTER_CLEAR
目前还没有明确的解释,android开发网分析可能是清除一切数据,类似硬格机
47. android.permission.MODIFY_AUDIO_SETTINGS
允许程序修改全局音频设置(Allows an application to modify global audio settings)
48. android.permission.MODIFY_PHONE_STATE
允许修改话机状态,如电源,人机接口等(Allows modification of the telephony state ? power on, mmi, etc. )
49. android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允许挂载和反挂载文件系统可移动存储 (Allows mounting and unmounting file systems for removable storage. )
50. android.permission.PERSISTENT_ACTIVITY
允许一个程序设置他的activities显示 (Allow an application to make its activities persistent. )
51. android.permission.PROCESS_OUTGOING_CALLS
允许程序监视、修改有关播出电话(Allows an application to monitor, modify, or abort outgoing calls)
52. android.permission.READ_CALENDAR
允许程序读取用户日历数据(Allows an application to read the user’s calendar data.)
53. android.permission.READ_CONTACTS
允许程序读取用户联系人数据(Allows an application to read the user’s contacts data.)
54. android.permission.READ_FRAME_BUFFER
允许程序屏幕波或和更多常规的访问帧缓冲数据(Allows an application to take screen shots and more generally get access to the frame buffer data)
55. android.permission.READ_INPUT_STATE
允许程序返回当前按键状态(Allows an application to retrieve the current state of keys and switches. )
56. android.permission.READ_LOGS
允许程序读取底层系统日志文件(Allows an application to read the low-level system log files. )
57. android.permission.READ_OWNER_DATA
允许程序读取所有者数据(Allows an application to read the owner’s data)
58. android.permission.READ_SMS
允许程序读取短信息(Allows an application to read SMS messages.)
59. android.permission.READ_SYNC_SETTINGS
允许程序读取同步设置(Allows applications to read the sync settings)
60. android.permission.READ_SYNC_STATS
允许程序读取同步状态(Allows applications to read the sync stats)
61. android.permission.REBOOT
请求能够重新启动设备(Required to be able to reboot the device. )
62. android.permission.RECEIVE_BOOT_COMPLETED
允许一个程序接收到 ACTION_BOOT_COMPLETED广播在系统完成启动(Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. )
63. android.permission.RECEIVE_MMS
允许一个程序监控将收到MMS彩信,记录或处理(Allows an application to monitor incoming MMS messages, to record or perform processing on them. )
64. android.permission.RECEIVE_SMS
允许程序监控一个将收到短信息,记录或处理(Allows an application to monitor incoming SMS messages, to record or perform processing on them.)
65. android.permission.RECEIVE_WAP_PUSH
允许程序监控将收到WAP PUSH信息(Allows an application to monitor incoming WAP push messages. )
66. android.permission.RECORD_AUDIO
允许程序录制音频(Allows an application to record audio)
67. android.permission.REORDER_TASKS
允许程序改变Z轴排列任务(Allows an application to change the Z-order of tasks)
68. android.permission.RESTART_PACKAGES
允许程序重新启动其他程序(Allows an application to restart other applications)
69. android.permission.SEND_SMS
允许程序发送SMS短信(Allows an application to send SMS messages)
70. android.permission.SET_ACTIVITY_WATCHER
允许程序监控或控制activities已经启动全局系统中Allows an application to watch and control how activities are started globally in the system.
71. android.permission.SET_ALWAYS_FINISH
允许程序控制是否活动间接完成在处于后台时Allows an application to control whether activities are immediately finished when put in the background.
72. android.permission.SET_ANIMATION_SCALE
修改全局信息比例(Modify the global animation scaling factor.)
73. android.permission.SET_DEBUG_APP
配置一个程序用于调试(Configure an application for debugging.)
74. android.permission.SET_ORIENTATION
允许底层访问设置屏幕方向和实际旋转(Allows low-level access to setting the orientation(actually rotation) of the screen.)
75. android.permission.SET_PREFERRED_APPLICATIONS
允许一个程序修改列表参数 PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法(Allows an application to modify the list of preferred applications with the PackageManager.addPackageToPreferred() and PackageManager.removePackageFromPreferred() methods.)
76. android.permission.SET_PROCESS_FOREGROUND
允许程序当前运行程序强行到前台(Allows an application to force any currently running process to be in the foreground.)
77. android.permission.SET_PROCESS_LIMIT
允许设置最大的运行进程数量(Allows an application to set the maximum number of (not needed) application processes that can be running. )
78. android.permission.SET_TIME_ZONE
允许程序设置时间区域(Allows applications to set the system time zone)
79. android.permission.SET_WALLPAPER
允许程序设置壁纸(Allows applications to set the wallpaper )
80. android.permission.SET_WALLPAPER_HINTS
允许程序设置壁纸hits(Allows applications to set the wallpaper hints)
81. android.permission.SIGNAL_PERSISTENT_PROCESSES
允许程序请求发送信号到所有显示的进程中 (Allow an application to request that a signal be sent to all persistent processes)
82. android.permission.STATUS_BAR
允许程序打开、关闭或禁用状态栏及图标Allows an application to open, close, or disable the status bar and its icons.
83. android.permission.SUBSCRIBED_FEEDS_READ
允许一个程序访问订阅RSS Feed内容提供(Allows an application to allow access the subscribed feeds ContentProvider. )
84. android.permission.SUBSCRIBED_FEEDS_WRITE
系统暂时保留改设置,android开发网认为未来版本会加入该功能。
85. android.permission.SYSTEM_ALERT_WINDOW
允许一个程序打开窗口使用 TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层(Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. )
86. android.permission.VIBRATE
允许访问振动设备(Allows access to the vibrator)
87. android.permission.WAKE_LOCK
允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失( Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming)
88. android.permission.WRITE_APN_SETTINGS
允许程序写入API设置(Allows applications to write the apn settings)
89. android.permission.WRITE_CALENDAR
允许一个程序写入但不读取用户日历数据(Allows an application to write (but not read) the user’s calendar data. )
90. android.permission.WRITE_CONTACTS
允许程序写入但不读取用户联系人数据(Allows an application to write (but not read) the user’s contacts data. )
91. android.permission.WRITE_GSERVICES
允许程序修改Google服务地图(Allows an application to modify the Google service map. )
92. android.permission.WRITE_OWNER_DATA
允许一个程序写入但不读取所有者数据(Allows an application to write (but not read) the owner’s data.)
93. android.permission.WRITE_SETTINGS
允许程序读取或写入系统设置(Allows an application to read or write the system settings. )
94. android.permission.WRITE_SMS
允许程序写短信(Allows an application to write SMS messages)
95. android.permission.WRITE_SYNC_SETTINGS
允许程序写入同步设置(Allows applications to write the sync settings)
android平台上的权限许可分得很细,如果软件无法正常执行时看看是不是缺少相关的permission声明,最终我们还需要使用 android sign tools签名生成的apk文件。