manifest文件有哪些用途是声明组件,并指定app的一些权限(permission)和instrumentation(安全控制和测试);manifest作为整个Android应用的入口,其Manifest.xml描述了package中暴露的组件,他们各自的达成类,各种能被处置的数据和启动地方。
AndroidManifest.xml文件有哪些用途
每个Android的APP都会有一个要紧的文件,那就是下面截图中的Manifest文件,这个文件有不少用途,是整个应用的入口,下面将详细解说一下

整体介绍:作为整个Android应用的入口,Manifest.xml 描述了package中暴露的组件,他们各自的达成类,各种能被处置的数据和启动地方。除去四大组件的声明,还指定了app的一些权限(permission)和instrumentation(安全控制和测试)。
1. Manifest属性

package:指定应用中java主程序的包名,这个也是整个应用程序默认的名字
还有一些常见的可以加进来
android:versionCode = 1 :版本号
android:versionName=first version :版本名字
android:installLocation=[auto | internalonly | preferExternal] :几个选项,分别是auto自动选择安装地方,internalOnly需要安装在ROM上,preferExternal优先安装到SD卡上面去
2. permission属性

uses-sdk: 这里是对最小版本sdk的需要
各种需要的permission权限都需要添加到文件中。
3. application属性:声明一个应用程序的组件及其属性(icon,label,permission等等)

基本上大部分在生成project的时候就会默认生成,普通的开发者也无需多管
android:allowBackup: 允许用户通过adb backup和adb restore来进行对应数据的备份和恢复。
android:label:project的工程名字
android:roundIcon: 目前android新建项目一般有两个图标,一个是icon(普通图标),一个是roundIcon(圆形图标)。
android:supportsRtl: 是不是支持right-to-left布局,API 17新添加的功能
android:theme: android应用的风格,可以自概念风格,上面的是默认风格
4. Activity属性

一个最简单的activity声明就是上图所示,一般activity的生命会自动添加
android:launchMode,Activity的加载模式,一共有四种,在我的另一篇文章中讲到过
android:multiprocess:是不是允很多进程,默认是false的
android:screenOrientation:显示模式,默认是unspecified(自动调整方向)
这里列举了几个常见的,当然还有不少不少activity属性,这里不再一一赘述
5. intent-filter属性

这个当时被问到这个问题,问我filter有哪些属性,容易见到的属性就这两种,结果应聘官说有三种,回来看了一下,真的有三种
action,只有android:name这个属性,容易见到的也就是上图所示,表示这个activity是程序的入口
category,也只有一个android:name属性,决定应用程序是不是显示在程序列表中
data,就是这个东西,貌似可以在这里存一下元数据,当在程序中需要的时候可以获得他的value值。就是下面这个结构

当然intent-filter本身也有一些属性
android:icon
android:label
android:priority=Integer 有序广播按声明的优先级来进行,取值范围是-1000到1000,数字越大优先级越高
6. 其他的三大组件,除去BroadcastReceiver可以动态注册外,都需要在manifest.xml中进行注册,这里不再一一赘述各自的属性,贴一张service的图






