2024-12-23
Android/Java
00

目录

应用清单
清单文件主要功能
清单文件结构
可包含的元素
文件约定
元素
属性
声明类名
多个值
资源值
文件功能
Intent 过滤器
权限
图标和标签
参考

应用清单

每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误)。清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码。

清单文件主要功能

此外,清单文件还可执行以下操作:

  • 为应用的 Java 软件包命名:软件包名称充当应用的唯一标识符。
  • 描述应用的各个组件:包括 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,如可以处理的 Intent 消息。
  • 确定托管应用组件的进程
  • 声明应用权限:访问 API 中受保护部分所需的权限和与其他应用交互所需的权限。
  • 列出 Instrumentation 类:提供分析和其他信息(仅在开发阶段)。
  • 声明应用所需的最低 Android API 级别
  • 列出应用必须链接到的库

:准备在 Chromebook 上运行的 Android 应用时,要考虑一些重要的硬件和软件功能限制。详见 Chromebook 的应用清单兼容性文档。

清单文件结构

下面的代码段显示了清单文件的通用结构及其可包含的每个元素:

xml
<?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission /> <permission /> ... <application> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> ... </application> </manifest>

可包含的元素

按字母顺序列出的所有合法元素:

xml
<action> <activity> <activity-alias> <application> <category> <data> <grant-uri-permission> <instrumentation> <intent-filter> <manifest> <meta-data> <permission> <permission-group> <permission-tree> <provider> <receiver> <service> <supports-screens> <uses-configuration> <uses-feature> <uses-library> <uses-permission> <uses-sdk>

:这些是仅有的合法元素 – 无法添加自定义元素或属性。

文件约定

元素

  • 必需元素<manifest><application>,每个只能出现一次。
  • 顺序<activity-alias> 必须在别名所指的 <activity> 之后。<application> 元素必须是 <manifest> 内最后一个元素。

属性

  • 所有属性名以 android: 前缀开头(除根 <manifest> 元素的某些属性外)。

声明类名

通过 name 属性声明子类:

xml
<manifest package="com.example.project"> <application> <service android:name=".SecretService" /> </application> </manifest>

多个值

通过重复元素指定多个值:

xml
<intent-filter> <action android:name="android.intent.action.EDIT" /> <action android:name="android.intent.action.INSERT" /> </intent-filter>

资源值

指定资源值:

xml
<activity android:icon="@drawable/smallPic" />

文件功能

Intent 过滤器

组件通过 intent 过滤器公布可响应的 intent 类型:

xml
<activity> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

权限

通过 <uses-permission> 声明应用需要的权限:

xml
<manifest> <uses-permission android:name="android.permission.CALL_EMERGENCY_NUMBERS" /> </manifest>

通过 <permission> 声明应用定义的权限:

xml
<manifest> <permission android:name="com.example.project.DEBIT_ACCT" /> <uses-permission android:name="com.example.project.DEBIT_ACCT" /> <application> <activity android:name="com.example.project.FreneticActivity" android:permission="com.example.project.DEBIT_ACCT" /> </application> </manifest>

图标和标签

可设置图标和标签属性:

xml
<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:label="@string/activity_name" /> </application>

通过 <uses-library> 声明应用使用的库:

xml
<application> <uses-library android:name="com.example.SomeLibrary" android:required="true" /> </application>

参考

Android 开发者文档

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!