manifest文件有什么作用

manifest文件的作用是声明组件,并指定app的一些权限(permission)和instrumentation(安全控制和测试);manifest作为整个Android应用的入口,其Manifest.xml描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置。

Android——Manifest.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的图