Android中的每个项目都包含一个清单文件 AndroidManifest。xml ,存储在其项目层次结构的根目录中。清单文件是我们应用程序的重要组成部分,因为它定义了我们应用程序的结构和元数据、组件及其需求。该文件包括每个节点的节点 活动 , 服务 , 内容提供商 和 广播接收机 使应用程序和使用 意图过滤器 权限决定了它们如何协调彼此和其他应用程序。
清单文件还指定应用程序元数据,其中包括其图标、版本号、主题等,其他顶级节点可以指定任何所需的权限、单元测试,并定义硬件、屏幕或平台要求。清单包含一个根清单标记,其包属性设置为项目的包。它还应该包括一个xmls:android属性,该属性将提供文件中使用的几个系统属性。我们使用versionCode属性以整数的形式定义当前应用程序版本,该整数会随着版本的更新而不断增加。此外,versionName属性用于指定将向用户显示的公共版本。
我们还可以使用installLocation属性指定应用程序是否应该安装在内存的SD卡上。典型的清单节点如下所示:
XML
package = "com.paad.myapp" android:versionCode = "1" android:versionName = "0.9 Beta" android:installLocation = "preferExternal" > [....manifest nodes....] </ manifest > |
清单文件包括定义构成应用程序的应用程序组件、安全设置、测试类和需求的节点。主要使用的一些清单子节点标记有:
1.使用sdk
它用于定义设备上必须可用的最低和最高SDK版本,以便我们的应用程序正常运行,以及分别使用minSdkVersion、maxSdkVersion和targetSdkVersion属性组合设计的目标SDK。
XML
< uses-sdk android:minSdkVersion=”6” android:targetSdkVersion=”15”/> |
2.使用配置
使用配置节点用于指定应用程序支持的输入机制的组合。对于需要特定输入控件的游戏,它很有用。
XML
< uses-configuration android:reqTouchScreen=”finger” android:reqNavigation=”trackball” android:reqHardKeyboard=”true” android:reqKeyboardType=”qwerty”/> < uses-configuration android:reqTouchScreen=”finger” android:reqNavigation=”trackball” android:reqHardKeyboard=”true” android:reqKeyboardType=”twelvekey”/> |
3.使用功能
它用于指定应用程序要求的硬件功能。这将阻止我们的应用程序安装在不包含所需硬件(如NFC硬件)的设备上,如下所示:
XML
< uses-feature android:name=”android.hardware.nfc”/> |
4.支持屏幕
它用于描述我们的应用程序的屏幕支持:
XML
< supports-screens android:smallScreens=”false” android:normalScreens=”true” android:largeScreens=”true” android:xlargeScreens=”true”/> |
5.许可
它用于创建权限,以限制对共享应用程序组件的访问。我们也可以使用现有的平台权限来实现这一目的,或者在清单中定义您自己的权限。
XML
< permission android: name=”com.paad.DETONATE_DEVICE” android:protectionLevel=“dangerous” android:label=”Self Destruct” android:description=”@string/detonate_description”> </ permission > |
6.申请
清单只能包含一个应用程序节点。它使用属性指定应用程序的元数据(包括其标题、图标和主题)。在开发过程中,我们应该将可调试属性设置为true以启用调试,然后确保在发布版本中禁用它。应用程序节点还充当指定应用程序组件的活动、服务、内容提供者和广播接收器节点的容器。可以使用android:name属性指定自定义应用程序类的名称。
XML
< application android:icon = "@drawable/icon" android:logo-"@drawable/logo" android:theme = "@android:style/Theme.Light" android:name = ".MyApplicationClass" android:debuggable = "true" > [....application nodes.....] </ application > |
参考资料: https://developer.android.com/guide/topics/manifest/manifest-intro.html