每一个应用在根目录下都有一个 AndroidManifest.xml文件,该文件描述了应用的基本信息, 主要包括以下内容:
命名应用的Java包名, 作为应用的唯一标识
描述应用的组件——Activities, Services, Receivers 和 Providers, 声明它们的能力
声明组件运行在哪个进程中
声明应用需要的许可权限
声明应用需要的 Android API 级别
声明应用需要的库
列出必要的 Instrumentation 类, 用于对应用进行运行时分析, 这些声明仅在开发和测试时使用,发布时要移除
1. Manifest 文件结构
. . .
. . .
. . .
Manifest 文件中只能出现以上元素, 开发者不能添加自定义的元素和属性。
该文件的书写有一定惯例和规则:
(1) 元素
只有
和 元素是必需的, 它们在文件中必须都出现,且只出现一次;其它元素都不是必需的, 而且可以出现多次。元素包含的东西都是通过属性进行设置的,而不是元素内容; 同一层次的元素没有顺序关系, 可以随意安排, 唯一的例外是
元素必须紧跟在相应的 后。(2) 属性
一般来讲, 所有的属性都是可选的, 但是为了达到某种目的, 有些属性必须设置, 具体参考本文档;对于真正可选属性, 会给出缺省值, 并说明缺省行为。
除了 元素外, 所有的属性名都以 android: 为前缀, 例如 android:alwaysRetainTaskState.
(3) 声明类名
很多元素都对应 Java 对象, 包括应用
以及应用的主要组件—— 、、和。 如果定义了这些组件的子类, 就要通过 name 属性声明, 声明时必须指名包的全限定名称。例如, Service 的子类 SecretService 可能声明如下:
. . .
. . .
也可以是
. . .
. . .
(4) 多值
如果需要指定多个值, 通常是重复声明多个元素, 而不是在一个元素里列出所有值, 例如:
. . .
(5) 资源值
有些属性的值是要显示给用户的, 例如Activity的标签和图标, 这些属性值应该进行本地化处理, 因此应该从资源或者主题中设置, 资源值以如下格式表示:
@[package:]type:name
如果资源与应用在同一个包则package可省略;type是资源类型,如string,drawable;name是资源标识名(id)。 如:
如果值来自主题, 则格式如下:
?[package:]type:name
(6) 字符串值
\\用于转义字符, 如 \\n, 表示换行
阅读(2986) | 评论(0) | 转发(0) |