相信接触了android编程的程序员都用过android项目中的manifest.xml文件,manifest的中文解释为清单,因此这个文件其实就相当于是该应用程序的清单,上面列出了该应用程序的各种信息,今天作为电脑小白的我在经过了学习后也来谈谈自己对于manifest文件的理解,主要分为以下两点:

先上图一张:

SYNTAX:
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="string"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
   . . .
</manifest>


CONTAINED IN:none



MUST CONTAIN:<application>

CAN CONTAIN:

<compatible-screens>

<instrumentation>

<permission>

<permission-group>

<permission-tree>

<supports-gl-texture>

<supports-screens>

<uses-configuration>

<uses-feature>

<uses-permission>

<uses-sdk>


1 manifest文件的作用。


我们注意到上图中的 CAN CONTAIN包含的内容,可以看出manifest文件具有以下作用

a 应用程序具备的权限

b 应用程序所需的最小API版本

c 定义instrumentation做自动化测试

另外还有

d 定义android的4个组件

e 指定程序的唯一包名(每个程序都由一个唯一的包名标志)


2 android系统如何解析manifest文件。


在android系统启动的时候,将会有一个系统级的服务 packagemanageservice启动,它将读取安装了的所有的应用程序的信息,并且会在某个系统级的共享的内存中建立一个manifest信息库

之后当应用程序启动时,launcher会在信息库中查询跟要启动的activity相关的那个manifest文件。且当四大组件需要被使用时就会去查询相关的信息,然后被实例化。


一起学习,有错误请指出