当前位置:编程学习 > XML/UML >>

AndroidManifest.xml文件详解(一)

每个应用程序在它的根目录中都必须要有一个AndroidManifest.xml文件。这个清单把应用程序的基本信息提交给Android系统,在应用程序的代码能够运行之前,这个信息系统必须建立。以下是清单文件要做的一些事情:

1. 用Java包给应用程序命名。这个包名是应用程序的唯一标识;

2. 描述应用程序的组件---组成应用程序的Activity、Service、Broadcast Receiver以及Content Provider。它要用每个组件的实现类来命名,并向外发布对应组件功能(例如,组件所能处理的Intent消息)。这些声明会让Android系统了解应用程序中组件,以及这些组件被加载的条件。

3. 判断哪些进程是主应用程序组件。

4. 声明应用程序所必须的权限,以便能够访问被保护的API,以及能够跟其他应用程序进行交互。

5. 为了跟应用程序组件进行交互,还声明了其他要求有的权限。

6. 列出了能够提供应用程序运行时的分析和其他信息的Instrumentation类。只有在开发和测试应用程序时才在清单文件中声明这些类,在应用程序被发布之前,要删除这些类。

7. 声明应用程序所要求的最小的Android API级别。

8. 列出应用程序必须链接的外部库。

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/>
        </provider>
        <uses-library/>
    </application>
</manifest>

以下按字母顺序列出了清单文件中的所有元素,这些元素时Android系统法定元素,不能添加自定义的元素或属性。

<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>

 

摘自 FireOfStar的专栏

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,