AndroidManifest.xml中的关键词

  1. uses-permission和permission:<uses-permission> 用于声明应用程序需要的系统权限,而 <permission> 用于定义应用程序自定义的权限。 <permission> 元素定义的权限可以被其他应用程序请求并授予,而 <uses-permission> 元素则表明应用程序需要特定的系统权限才能正常运行。
  2. queries:在 AndroidManifest.xml 文件中,<queries> 元素用于声明应用程序需要查询的其他应用程序的特定信息。这个元素是在 Android 11 (API 级别 30) 中引入的,旨在增强应用程序的隐私和安全性。
  3. application:

声明了应用程序的图标、名称、主题和备份设置。android:allowBackup: 指定是否允许应用程序进行备份。android:icon: 指定应用程序的图标。android:label: 指定应用程序的名称。android:theme: 指定应用程序的默认主题。android:debuggable: 指定应用程序是否可以进行调试。除了这些属性之外,<application> 元素还可以包含其他组件的声明,如 Activity、Service、BroadcastReceiver 和 ContentProvider。这些组件在应用程序中定义了不同的功能,例如用户界面、后台任务、接收系统广播等。

4. <uses-library>

<uses-library> 是 AndroidManifest.xml 文件中的一个元素,用于声明应用程序需要使用的库(library)。这个元素用于指定应用程序依赖的系统库或者由其他应用程序提供的共享库。

当应用程序依赖于某个库时,可以在 AndroidManifest.xml 文件中使用 <uses-library> 元素来声明这种依赖关系。系统会在安装或者运行应用程序时检查这些库是否存在,如果不存在则会导致应用程序无法正常运行。<uses-library> 元素声明的库通常是系统库,而不是第三方库。如果应用程序依赖于第三方库,通常应该将这些依赖关系声明在 Gradle 构建文件中,而不是在 AndroidManifest.xml 中。

5. <meta-data>

<meta-data> 元素用于在 AndroidManifest.xml 文件中为组件(如 Activity、Service、BroadcastReceiver 或 ContentProvider)或应用程序本身提供附加的元数据信息。元数据可以是键值对形式的任何信息,用于在运行时读取和使用。

6. <intent-filter>

<intent-filter> 元素,你可以声明组件所能响应的各种 Intent 类型和条件,从而实现灵活的消息传递和组件交互。

7. action

在 Android 开发中,Intent 中的 “action” 是指代 Intent 的动作,它描述了要执行的操作。Action 通常是一个字符串,指示了发送 Intent 的意图。Android 系统使用 Intent 的 action 字段来确定要执行的操作类型,以便正确地将 Intent 分发到合适的组件。

Android 系统定义了许多标准的动作,开发人员也可以定义自己的自定义动作。常见的系统级动作包括:

  • android.intent.action.MAIN: 标识一个应用程序的主要入口点。
  • android.intent.action.VIEW: 用于请求查看指定数据。
  • android.intent.action.DIAL: 用于请求拨打电话。
  • android.intent.action.SEND: 用于请求发送数据。
  • android.intent.action.SENDTO: 用于请求发送数据到特定的地址。
  • android.intent.action.CALL: 用于直接拨打电话。
  • android.intent.action.SEND_MULTIPLE: 用于请求发送多个数据。

8. category

Android 系统定义了一些标准的类别,同时开发人员也可以定义自己的自定义类别。常见的系统级类别包括:

  • android.intent.category.DEFAULT: 默认的类别,通常用于表示一个普通的 Intent。
  • android.intent.category.BROWSABLE: 表示一个可以被浏览器打开的 Intent,用于处理 Web 地址。
  • android.intent.category.LAUNCHER: 表示一个可以被启动器(Launcher)显示为应用程序图标的 Intent,通常用于应用程序的入口点。
  • android.intent.category.ALTERNATIVE: 表示一个备用的 Intent 类别,用于提供备用的操作方式。

9. <activity-alias><activity>

  1. <activity>
  1. <activity> 元素用于声明一个标准的 Activity,它表示一个应用程序的基本用户界面组件。每个 <activity> 元素都代表着应用程序中的一个具体的界面,并且通常通过 Intent 进行启动。
  1. <activity-alias>
  1. <activity-alias> 元素用于定义 Activity 的别名。它允许为同一个 Activity 创建多个入口点,或者修改 Activity 的属性而不改变其代码或行为。Activity 别名与原始 Activity 共享相同的代码和行为,但可以通过别名的不同配置来实现不同的功能或行为。

10.<data xxxxx>

<data> 元素是 AndroidManifest.xml 文件中用于为 Intent 过滤器定义数据模式的元素。它用于指定组件可以处理的 Intent 中的数据类型和格式。

<data> 元素可以包含多个属性,常见的属性包括:

  • android:scheme: 指定 URI 的方案,例如 “http”、”https”、”file” 等。
  • android:host: 指定 URI 的主机部分。
  • android:path: 指定 URI 的路径部分。
  • android:mimeType: 指定 MIME 类型,用于描述数据的内容类型。

11.provider

<provider> 元素用于在 AndroidManifest.xml 文件中声明内容提供程序(Content Provider)。内容提供程序是 Android 平台上用于共享应用程序数据的一种机制,它允许应用程序在不同组件之间共享数据,并且提供了对数据的统一访问接口。通过 <provider> 元素,应用程序可以声明自己的内容提供程序,并指定提供的数据类型、访问权限等信息。其他应用程序可以通过 URI 访问内容提供程序的数据,以实现数据的共享和交互。

12.service

<service> 元素用于在 AndroidManifest.xml 文件中声明服务(Service)。服务是一种后台运行的组件,它可以在没有用户界面的情况下执行长时间运行的操作或处理异步任务。

通过 <service> 元素,应用程序可以声明自己的服务,并指定服务的名称、启动方式、权限等信息。服务通常用于执行那些不需要用户交互界面的任务,例如下载文件、播放音乐、处理网络请求等。

13.<receiver>

<receiver> 元素用于在 AndroidManifest.xml 文件中声明广播接收器(Broadcast Receiver)。广播接收器是一种 Android 组件,用于接收和响应系统广播消息或特定应用程序发送的广播消息。

通过 <receiver> 元素,应用程序可以声明自己的广播接收器,并指定接收的广播类型、权限、过滤条件等信息。广播接收器可以用于捕获系统事件、应用程序事件或者其他应用程序发送的广播消息,并执行相应的操作。

14.supports-screens

<supports-screens>元素用于在 AndroidManifest.xml 文件中声明应用程序所支持的屏幕尺寸和密度范围。通过使用 <supports-screens> 元素,开发人员可以指定应用程序所支持的最小和最大屏幕尺寸,以及所支持的屏幕密度范围. 通过使用 <supports-screens> 元素,开发人员可以确保应用程序能够在各种不同的设备上正确显示和运行,并提供良好的用户体验。

15. xmlns:android="http://schemas.android.com/apk/res/android"(不唯一)

xmlns:android="http://schemas.android.com/apk/res/android"是一个 XML 命名空间声明,用于指定 XML 文件中 <android> 前缀所对应的命名空间。在 Android 开发中,这个命名空间声明是非常常见的,它通常出现在 AndroidManifest.xml 文件的根元素中,以及其他 Android 布局文件、资源文件等中。