每一个 Android 应用都有一个 AndroidManifest.xml 文件,用于告知 Android 系统应用程序运行需要的各种资源。作为Android开发的初学者,很多时候都是不经意间跟着教程使用Manifest文件,配置程序的各种功能。但是,对于Manifest文件本身的各个属性缺乏系统的了解。本文参照官方的API文档,将系统介绍Android中的Manifest文件的所有功能以及可以使用到的所有元素、标签。
在Android应用中,AndroidManifest.xml文件的所有功能如下:
- 指定应用的 Java 包,作为区分应用的标识
- 描述、定义应用Android组件——Activities,Services,Broadcast receivers,Content providers和它们的相关组件(比如:intent)。这是用于告诉 Android 系统应用程序有什么组建,以及何时启用这些组件
- 描述哪个进程将运载应用程序
- 描述应用运行需要的权限以及应用之间交互需要权限
- 描述访问应用组件需要的权限
- 程序测试时,可植入测试类(Instrumentation classes)来显示程序运行时的相关信息
- 描述应用程序需要的最低 API level
- 列出应用需要连接的所有库
Manifest文件的结构和所有元素标签如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<compatible-screens />
<supports-gl-texture />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
<path-permission />
</provider>
<uses-library />
这些元素标签内具体的方法,可以在一下对应的权限和类内找到。具体详情,见相应的文档即可。
</application>
</manifest>
<action>
<activity>
<activity-alias>
<application>
<category>
<data>
<grant-uri-permission>
<instrumentation>
<intent-filter>
<manifest>
<meta-data>
<permission>
<permission-group>
<permission-tree>
<provider>
<receiver>
<service>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-library>
<uses-permission>
<uses-sdk>