每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误)。清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码。
AndroidManifest.xml的主要功能
- 为应用的 Java 软件包命名。软件包名称充当应用的唯一标识符。
- 描述应用中的组件,发布其功能。
- 确定托管应用的进程
- 声明应用必须具备哪些权限才能访问 API 中受保护的部分并与其他应用交互。还声明其他应用与该应用组件交互所需具备的权限
- 声明应用所需的最低 Android API 级别
- 列出应用必须链接到的库
文件约束
- 元素:只有 <manifest> 和 <application> 元素是必需的,它们都必须存在并且只能出现一次。其他大部分元素可以出现多次或者根本不出现。但清单文件中必须至少存在其中某些元素才有用。同一级别元素通常不分先后顺序。
- 属性:从某种意义上说,所有属性都是可选的。但是,必须指定某些属性,元素才可实现其目的。
- 声明类名:许多元素对应着Java对象,name必须包含着完整的路径,如果以“.”开头,则是在package属性指定的路径下面。当启动组件启动时,Android系统会创建已命名子类的实例,如果未指定的字类,则会创建基类的实例。
- 多个值:如果可以指定多个值,则几乎总是在重复此元素,而不是列出单个元素内的多个值。
- 资源值:某些属性的值可以显示给用户。
- 字符串值:如果属性值为字符串,则必须使用双反斜杠 (\\) 转义字符。
Intent过滤器
Intent 是一系列用于描述所需操作的信息(Intent 对象),其中包括要执行操作的数据、应执行操作的组件类别以及其他相关说明。Android 系统会查找合适的组件来响应 intent,根据需要启动组件的新实例,并将其传递到 Intent 对象。
图标和标签
对于可以显示给用户的小图标和文本标签,大量元素具有 icon 和 label 属性。
权限
权限是一种限制,用于限制对部分代码或设备上数据的访问。施加限制是为了保护可能被误用以致破坏或损害用户体验的关键数据和代码。每种权限均由一个唯一的标签标识。标签通常指示受限制的操作。
如果应用需要访问受权限保护的功能,则必须在清单中使用 <uses-permission> 元素声明应用需要该权限。将应用安装到设备上之后,安装程序会通过检查签署应用证书的颁发机构并(在某些情况下)询问用户,确定是否授予请求的权限。如果授予权限,则应用能够使用受保护的功能。否则,其访问这些功能的尝试将会失败,并且不会向用户发送任何通知。
库
每个应用均链接到默认的 Android 库,该库中包括用于开发应用(以及通用类,如 Activity、服务、intent、视图、按钮、应用、ContentProvider)的基本软件包。但是,某些软件包驻留在自己的库中。如果应用使用来自其中任一软件包的代码,则必须明确要求其链接到这些软件包。清单必须包含单独的 <uses-library> 元素来命名其中每个库。库名称可在软件包的文档中找到。
网友评论