AndroidManifest.xml文件结构说明

转载 2012年03月27日 19:44:21
作为一个在工作中使用Visual Studio工具的程序员,我对Manifest这个文件并不陌生,它是对应用程序的说明,包括运行权限、界面主题等。在VS中有可视化的设置界面,开发 人员只需要进行简单的操作,就会自动形成这个文件,所以在通常情况下,很多VS开发人员其实并不都知道Manifest.xml文件的存在,更不用说了解 它的作用了。

而在Eclipse开发工具中,似乎找不到类似的可视化的设置界面,而每个Android的application都必须包含一个 AndroidManifest.xml,且文件名是固定的,不能修改。应用程序需要通过它向Android系统提供一些必需的信息,且需要在 application运行前提供给系统,如下图所示:



AndroidManifest.xml的功能介绍

AndroidManifest.xml主要包含以下功能:
说明application的java 数据包,数据包名是application的唯一标识;
描述application的component;
说明application的component运行在哪个process下;
声明application所必须具备的权限,用以访问受保护的部分API,以及与其他application的交互;
声明application其他的必备权限,用以component之间的交互;
列举application运行时需要的环境配置信息,这些声明信息只在程序开发和测试时存在,发布前将被删除;
声明application所需要的Android API的最低版本级别,比如1.0,1.1,1.5;
列举application所需要链接的库;
AndroidManifest.xml的结构和规则

AndroidManifest.xml文件的结构、元素,以及元素的属性,可以在Android SDK文档中查看详细说明。而在看这些众多的元素以及元素的属性前,需要先了解一下这些元素在命名、结构等方面的规则:
元素:在所有的元素中只有<manifest>和<application>是必需的,且只能出现一次。如果一个元素包含有其他子元素,必须通过子元素的属性来设置其值。处于同一层次的元素,这些元素的说明是没有顺序的。
属性:按照常理,所有的属性都是可选的,但是有些属性是必须设置的。那些真正可选的属性,即使不存在,其也有默认的数值项说明。除了根元素<manifest>的属性,所有其他元素属性的名字都是以android:前缀的;
定义类名:所有的元素名都对应其在SDK中的类名,如果你自己定义类名,必须包含类的数据包名,如果类与application处于同一数据包中,可以直接简写为“.”;
多数值项:如果某个元素有超过一个数值,这个元素必须通过重复的方式来说明其某个属性具有多个数值项,且不能将多个数值项一次性说明在一个属性中;
资源项说明:当需要引用某个资源时,其采用如下格式:@[package:]type:name。例如 <activity android:icon=”@drawable/icon ” . . . >
字符串值:类似于其他语言,如果字符中包含有字符“\”,则必须使用转义字符“\\”;
实例说明

这里,结合我们的flashlight实例(详情请参阅《编写你的第一个Android应用程序》)中的AndroidManifest.xml文件来说明一下,原XML文件如下:

<?xml version=”1.0″ encoding=”utf-8″?>

<manifest xmlns:android=”http://schemas.android.com/apk/res/android”

package=”moandroid.flashlight”

android:versionCode=”1″

android:versionName=”1.0″>

<application android:icon=”@drawable/icon” android:label=”@string/app_name”>

<activity android:name=”.flashlight” android:label=”@string/app_name”>

<intent-filter>

<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

</application>

<uses-sdk android:minSdkVersion=”3″ />

</manifest>

除去头部XML信息说明,首先是manifest项—根节点,其属性包括:schemas URL地址、包名(moandroid.flashlight),以及程序的版本说明。其次是manifest的子节点application,其属性包 括:程序图标、程序名称。前面带有@表示引用资源,例如:@drawable/icon表示引用的是drawable资源中的icon,可以在其源工程的 res/drawable中找到。然后就是application的子节点activity,其属性包括:activity的名称、activity的标 签名,其子节点intent-filter则是对activity的说明。

而在intent-filter中,action android:name=”android.intent.action.MAIN”和category android:name=”android.intent.category.LAUNCHER”用以说明程序启动时的入口activity是哪个。如 果这两个属性值中分别含有MAIN和LAUNCHER,则说明它就是启动程序时的入口活动。如果想完全了解application与activity项的 说明,就需要更为深入的了解和学习Android,这里因篇幅限制暂且不提。

uses-sdk android:minSdkVersion=”3″说明程序使用的Android SDK的最低版本,其中1表示Android 1.0,2表示Android 1.1,而3则表示Android 1.5。

在Eclipse中创建工程后,会自动生成一个AndroidManifest.xml文件。在代码编写的过程中,需要同时修改AndroidManifest.xml,如果配置出现错误会导致程序不能正常运行。

其他更为详细的元素、属性以及值的说明,可查阅Android SDK开发指南中的详细内容。

地址如下:

http://developer.android.com/guide/topics/manifest/manifest-intro.html

AndroidManifest.xml文件结构说明

每个Android的application都必须包含一个AndroidManifest.xml,且文件名是固定的,不能修改。应用程序需要通过它向Android系统提供一些必需的信息,且需要在appli...
  • alley_zhang
  • alley_zhang
  • 2010年07月08日 16:46
  • 2020

AndroidManifest.xml文件结构

先了解一下xml文件的结构,我们知道一个xml文件都会有xml标准文件头 根元素 子元素 我们每次创建项目会默认为我们创建这个文件,刚开始是这样的 ...
  • cloudynasky
  • cloudynasky
  • 2016年08月29日 18:03
  • 155

Solr简介(目录结构)-节选

原文地址:http://www.cnblogs.com/xia520pi/p/3625232.html 1、Solr简介   Solr是一个高性能,采用Java5开发,基于Lucene的全...
  • DangerousRoy
  • DangerousRoy
  • 2016年01月04日 16:59
  • 177

AndroidManifest.xml官方介绍

每个Android应用的根目录中都必须包含一个 AndroidManifest.xml 文件。 清单文件为 Android 系统提供有关您的应用的基本信息, 系统必须获得这些信息才能运行任意应用代码...
  • true100
  • true100
  • 2016年05月09日 15:44
  • 2038

MTK Projiectconfig.mk文件详细解释

AUTO_ADD_GLOBAL_DEFINE_BY_NAME_VALUE是编译系统开出的3个可以将ProjectConfig.mk中的宏(注意添加的宏必须大写)添加到C/C++源文件的接口 AUTO...
  • caotuo_csdn
  • caotuo_csdn
  • 2017年03月27日 14:45
  • 233

Android项目工程目录结构说明及作用

问题?Android项目工程目录结构说明及作用 一、序言 对于初学者来说,理解整个Android项目目录结构很重要,各自的作用,分别在什么时候用,那个资源,那个文件,那个配置放在什么地方需要很明白...
  • Mr_li13
  • Mr_li13
  • 2016年07月15日 20:13
  • 1886

Android中AndroidManifest.xml中<application>标签的常用元素

android:name 应用程序的包名; android:allowBackup 是否允许备份; android:label 应用程序的标签; android:icon 应用程序的图标; a...
  • FightFightFight
  • FightFightFight
  • 2016年04月29日 17:58
  • 776

Eclipse AndroidManifest.xml file missing

这个问题感觉是eclipse的bug。首先工程莫名其妙的不能运行,提示"your project contains errors",但除了工程名,各个文件夹下都没有错误,buildpath也没有错误。...
  • u010037124
  • u010037124
  • 2014年08月10日 14:37
  • 1111

PE文件详解(一)--数据结构字段

DOS MZ头IMAGE_DOS_HEADER STRUCT : IMAGE_DOS_HEADER STRUCT { +0hWORDe_magic //Magic DOS s...
  • lj94093
  • lj94093
  • 2016年01月12日 14:36
  • 266

ts文件结构

ts文件结构
  • forfuture3513
  • forfuture3513
  • 2016年09月16日 16:58
  • 308
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AndroidManifest.xml文件结构说明
举报原因:
原因补充:

(最多只允许输入30个字)