适用范围:Android 5.0(API 21)~ Android 15(API 35) 参考来源:Android 官方文档
图例约定:
- 【常用】日常开发高频使用
- 【关键】配置错误会导致编译失败 / 运行崩溃 / 安全风险
- 【废弃】不建议在新项目中使用
- 【TV/VR/特殊】仅在特定设备类型才需要
使用建议:
- 写新项目 → 重点看 一、速查模板 + 三、高频核心属性详解
- 排查报错 → 看 十三、避坑指南与最佳实践
- 适配新版本 → 看 十二、版本里程碑速查
- 查找某个
android:xxx 属性 → 看 [附录 A:属性字母序索引](#附录 A:属性字母序索引 "#%E9%99%84%E5%BD%95-a%E5%B1%9E%E6%80%A7%E5%AD%97%E6%AF%8D%E5%BA%8F%E7%B4%A2%E5%BC%95")
目录
- 一、速查模板(常用场景复制即用)
- 二、文件结构概览
- 三、高频核心属性详解(必读)
- [四、根元素
<manifest>](#四、根元素 <manifest> "#%E5%9B%9B%E6%A0%B9%E5%85%83%E7%B4%A0-manifest")
- [五、
<application> 应用元素](#五、<application> 应用元素 "#%E4%BA%94application-%E5%BA%94%E7%94%A8%E5%85%83%E7%B4%A0")
- 六、四大组件
- 七、意图过滤器与系统常量
- 八、权限相关
- [九、功能与 SDK 声明](#九、功能与 SDK 声明 "#%E4%B9%9D%E5%8A%9F%E8%83%BD%E4%B8%8E-sdk-%E5%A3%B0%E6%98%8E")
- 十、辅助元素
- 十一、屏幕兼容(简化)
- 十二、版本里程碑速查
- 十三、避坑指南与最佳实践
- [附录 A:属性字母序索引](#附录 A:属性字母序索引 "#%E9%99%84%E5%BD%95-a%E5%B1%9E%E6%80%A7%E5%AD%97%E6%AF%8D%E5%BA%8F%E7%B4%A2%E5%BC%95")
一、速查模板(常用场景复制即用)
1.1 标准应用骨架
xml
复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:name=".MyApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true"
android:usesCleartextTraffic="false"
tools:targetApi="34">
<!-- 组件声明 -->
</application>
</manifest>
1.2 启动器 Activity(应用入口)
xml
复制代码
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTask"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboardHidden|uiMode|density"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
1.3 深链接 / App Links Activity
xml
复制代码
<activity android:name=".DeepLinkActivity" android:exported="true">
<!-- 自定义 scheme(如 myapp://product/123) -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="product" />
</intent-filter>
<!-- HTTPS App Links(autoVerify 触发系统域名校验) -->
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="www.example.com" />
<data android:scheme="https" android:host="example.com" />
</intent-filter>
</activity>
1.4 前台 Service(API 26+ 通知 / API 28+ 权限 / API 29+ type / API 34+ 强制三方一致)
xml
复制代码
<!--
版本节点:
- API 26+:startForegroundService() 必须 5 秒内调 startForeground 显示通知
- API 28+:必须申请 FOREGROUND_SERVICE 权限
- API 29+:引入 foregroundServiceType
- API 34+:foregroundServiceType + 同名子类型权限 + startForeground(type) 三方必须一致
-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<service
android:name=".MusicService"
android:exported="false"
android:foregroundServiceType="mediaPlayback"
android:stopWithTask="false" />
1.5 FileProvider(文件共享,替代 file://)
xml
复制代码
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
1.6 静态广播接收器(仅限系统/受保护广播)
xml
复制代码
<!-- 注意:API 26+ 已限制大量隐式广播,自定义广播请用 LocalBroadcastManager 或动态注册 -->
<receiver
android:name=".BootReceiver"
android:exported="true"
android:directBootAware="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
1.7 应用可见性查询(targetSdk ≥ 30 必加,否则 PackageManager 查不到目标应用)
xml
复制代码
<queries>
<!-- 1) 已知具体包名 -->
<package android:name="com.tencent.mm" />
<!-- 2) 通过 Intent 查询(如查询可分享图片的应用) -->
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/*" />
</intent>
<!-- 3) 通过 ContentProvider 查询 -->
<provider android:authorities="com.example.provider" />
</queries>
二、文件结构概览
xml
复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<!-- 1. 顶层声明(顺序无强制,但建议按此组织) -->
<uses-permission />
<permission />
<uses-sdk />
<uses-feature />
<uses-library />
<queries /> <!-- API 30+ -->
<attribution /> <!-- API 31+ -->
<!-- 2. 应用本体 -->
<application>
<!-- 2.1 四大组件 -->
<activity>
<intent-filter>
<action /> <category /> <data />
</intent-filter>
<meta-data />
</activity>
<activity-alias />
<service />
<receiver />
<provider>
<grant-uri-permission />
<path-permission />
</provider>
<!-- 2.2 应用级辅助声明 -->
<uses-library />
<uses-native-library /> <!-- API 30+ -->
<profileable /> <!-- API 30+ -->
<meta-data />
</application>
</manifest>
三、高频核心属性详解(必读)
以下属性是日常开发"踩坑率最高"的几个,单独深入讲解。其余属性见后续章节表格。
3.1 android:exported【关键 · API 31+ 强制】
作用 :声明组件能否被其他应用启动 / 绑定 / 触发。
为什么关键 :自 Android 12(API 31)起,所有含 <intent-filter> 的 Activity / Service / Receiver 必须显式声明 exported,否则 AGP/Lint 编译报错(提示 "Apps targeting Android 12 require attribute android:exported..."),运行时安装也会以 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 失败。
取值规则:
| 场景 |
推荐值 |
说明 |
| 启动器 Activity(含 LAUNCHER) |
true |
否则桌面无法启动 |
| 应用内部跳转的 Activity |
false |
防止被外部 deeplink / am start 唤起 |
| 深链接 / App Links Activity |
true |
必须对外开放 |
| 处理系统广播的 Receiver(如 BOOT_COMPLETED) |
true |
系统才能发送广播 |
| 应用内部 Service(如 IPC 绑定) |
false |
防止被恶意应用绑定 |
| FileProvider |
false |
必须 false,通过 grantUriPermissions 临时授权 |
安全建议 :默认值优先选 false,确实需要对外暴露时再加 permission 限制调用方。
3.2 android:launchMode【常用 · Activity 专用】
控制 Activity 实例在任务栈中的创建方式。决策表:
| 模式 |
行为简述 |
典型场景 |
standard(默认) |
每次启动都新建实例,可重复入栈 |
普通页面(详情页、列表项) |
singleTop |
栈顶已是同实例时复用,触发 onNewIntent() |
通知点击页、搜索结果页 |
singleTask |
全应用唯一实例,启动时清掉其之上所有 Activity |
主页 / Tab 容器 |
singleInstance |
独占一个任务栈,新启动的 Activity 进入其他栈 |
锁屏、悬浮窗、来电界面 |
singleInstancePerTask(API 31+) |
每个任务栈一个实例,支持多任务多窗口场景 |
文档型 / 多窗口应用 |
提示:能用 Intent flag(FLAG_ACTIVITY_*)解决的,优先用 flag,避免全局锁死启动模式。
3.3 android:foregroundServiceType【关键 · API 28+ / 34+ 强制】
作用 :声明前台 Service 的用途。API 34(Android 14)起,启动前台 Service 时必须 与运行时调用 startForeground(id, notification, type) 的 type 一致,否则抛 ForegroundServiceTypeException。
类型与权限对应关系:
| type |
用途 |
同时需要的权限 |
camera |
摄像头采集 |
CAMERA + FOREGROUND_SERVICE_CAMERA |
connectedDevice |
蓝牙 / USB / 投屏配件 |
对应连接权限 + FOREGROUND_SERVICE_CONNECTED_DEVICE |
dataSync |
数据上传 / 下载 / 同步 |
FOREGROUND_SERVICE_DATA_SYNC |
location |
定位(含后台) |
定位权限 + FOREGROUND_SERVICE_LOCATION |
mediaPlayback |
音视频播放 |
FOREGROUND_SERVICE_MEDIA_PLAYBACK |
mediaProjection |
录屏 / 投影 |
FOREGROUND_SERVICE_MEDIA_PROJECTION |
microphone |
录音 |
RECORD_AUDIO + FOREGROUND_SERVICE_MICROPHONE |
phoneCall |
电话通话(VoIP) |
FOREGROUND_SERVICE_PHONE_CALL |
health(34+) |
健身 / 健康数据 |
FOREGROUND_SERVICE_HEALTH |
remoteMessaging(34+) |
即时通讯消息 |
FOREGROUND_SERVICE_REMOTE_MESSAGING |
shortService(34+) |
≤ 3 分钟短任务(无需用户感知通知) |
无需额外权限 |
specialUse(34+) |
上述都不匹配时(需在 <meta-data> 中写明原因,且 Play 审核) |
FOREGROUND_SERVICE_SPECIAL_USE |
systemExempted(34+) |
系统豁免(仅 OEM / 系统应用) |
--- |
多类型组合 :android:foregroundServiceType="location|mediaPlayback"
⚠️ mediaProjection 额外要求:除声明 type 与权限外,每次启动 都必须先通过 MediaProjectionManager.createScreenCaptureIntent() 获取用户同意。API 34+ 起 token 不可复用,每次都要重新请求。
3.4 android:configChanges【常用 · Activity】
作用 :声明哪些配置变化由开发者自行处理,避免 Activity 被销毁重建。
推荐组合(覆盖屏幕旋转 / 折叠屏 / 分屏 / 字体缩放 / 深色模式切换):
xml
复制代码
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboardHidden|uiMode|density|fontScale|locale|layoutDirection"
所有可选值(按 API 版本):
| 值 |
引入 API |
含义 |
orientation keyboardHidden keyboard navigation touchscreen locale fontScale mcc mnc |
1 |
基础类型 |
uiMode |
8 |
夜间模式 / 车载 / TV 模式切换 |
screenLayout |
9 |
屏幕布局变化(如多屏切换) |
screenSize smallestScreenSize |
13 |
屏幕旋转必须包含 screenSize |
layoutDirection |
17 |
LTR/RTL 切换 |
density |
24 |
显示密度变化(如外接屏) |
colorMode |
26 |
HDR / 广色域切换 |
grammaticalGender |
34 |
语法性别(西语等语言) |
注意:configChanges 是"逃生口",不是性能优化。能用 ViewModel / onSaveInstanceState 处理重建则优先用,过度依赖会让多语言/深色模式切换出 bug。
3.5 protectionLevel(自定义权限保护级别)
基础值(四选一):
| 值 |
授予方式 |
说明 |
normal |
安装时自动授予 |
低风险(如修改震动、网络状态) |
dangerous |
运行时弹窗(API 23+) |
高风险(定位、通讯录、相机) |
signature |
签名一致才授予 |
同公司多应用 IPC 首选 |
signatureOrSystem |
签名一致或系统应用 |
【废弃】用 signature|privileged 替代 |
附加标志 (用 | 与基础值组合,按需了解,多数用不到): privileged 系统特权 / development 调试 / appop AppOps / installer 安装器 / preinstalled 预装 / vendorPrivileged(27+)/ textClassifier(28+)/ companion(31+)/ knownSigner(33+)等。
四、根元素 <manifest>
xml
复制代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="1"
android:versionName="1.0.0">
必需属性
| 属性 |
说明 |
xmlns:android |
固定 http://schemas.android.com/apk/res/android |
package |
应用包名。AGP 7.3+ 已迁移至 build.gradle 的 namespace,新项目可不写 |
可选属性
| 属性 |
默认值 |
用途 |
android:versionCode |
--- |
【常用】内部版本号(整型),用于版本比较 / 升级判断 |
android:versionName |
--- |
【常用】用户可见版本号字符串(如 1.2.3) |
android:installLocation |
internalOnly |
安装位置:internalOnly / auto / preferExternal(外置 SD 卡) |
android:sharedUserId |
--- |
【废弃 · API 29+】曾用于多应用共享 Linux UID,新项目禁用 |
android:sharedUserLabel |
--- |
【废弃】配合上者使用 |
提示:versionCode / versionName / compileSdkVersion 均推荐在 build.gradle 中配置,由 AGP 注入。
五、<application> 应用元素
5.1 基础信息
| 属性 |
用途 |
android:name |
【常用】自定义 Application 类(如 .MyApplication),用于全局初始化 |
android:label |
【常用】桌面显示名称 |
android:icon |
【常用】应用图标 |
android:roundIcon |
圆形启动图标(API 25+,部分启动器使用) |
android:theme |
【常用】全局默认主题,会被 Activity 的 theme 覆盖 |
android:description |
应用描述(用于无障碍 / 设置页面) |
android:logo |
ActionBar 等位置使用的 Logo |
android:banner |
【TV】Android TV 启动器横幅图 |
5.2 权限 & 安全
| 属性 |
默认值 |
用途 |
android:permission |
--- |
调用方需持有的权限(应用级默认值,可被组件覆盖) |
android:process |
包名 |
【常用】自定义进程名,: 开头表示私有进程(如 :remote) |
android:taskAffinity |
包名 |
任务栈亲和性,影响 Activity 归属的任务 |
android:allowBackup |
true |
【关键】是否允许 ADB / 云备份。默认值仍为 true,但含敏感数据时建议显式设为 false;API 31+ 推荐改用 dataExtractionRules 精细控制 |
android:fullBackupContent |
--- |
自动备份规则 XML(API 23+) |
android:dataExtractionRules |
--- |
【常用】备份与设备迁移规则(API 31+,取代 fullBackupContent) |
android:allowClearUserData |
true |
是否允许"清除数据" |
android:debuggable |
false |
【关键】Release 包必须 false,否则可被 jdb 附加调试 |
android:testOnly |
false |
仅用于测试(设置后无法通过 Play 发布) |
android:vmSafeMode |
false |
关闭 JIT,仅用于规避 JIT bug |
5.3 显示与行为
| 属性 |
默认值 |
用途 |
android:hardwareAccelerated |
true |
【常用】硬件加速;某些自绘场景需关闭后再单独开启 View |
android:largeHeap |
false |
申请更大堆内存(图片处理类应用),但不应作为内存泄漏的解决方案 |
android:supportsRtl |
false |
【常用】支持 RTL(阿拉伯语等右到左布局)。国际化应用建议设为 true |
android:uiOptions |
none |
none / splitActionBarWhenNarrow(旧 ActionBar 拆分) |
5.4 网络与安全
| 属性 |
默认值 |
用途 |
android:networkSecurityConfig |
--- |
【常用】网络安全配置 XML(API 24+),用于自签证书、明文白名单 |
android:usesCleartextTraffic |
API 28+ 默认 false |
【关键】是否允许 HTTP 明文流量。强烈建议 false,必要时通过 networkSecurityConfig 白名单 |
5.5 多窗口 & 现代特性
| 属性 |
默认值 |
API |
用途 |
android:resizeableActivity |
true |
24 |
是否支持分屏 / 自由窗口 |
android:localeConfig |
--- |
33 |
【新特性】指向 locales_config.xml,启用应用内语言切换 |
android:requestLegacyExternalStorage |
false |
29 |
临时绕过分区存储(仅 targetSdk≤29 有效,应尽快迁移 MediaStore/SAF) |
android:preserveLegacyExternalStorage |
false |
30 |
升级时一次性保留旧外部存储访问 |
5.6 内存安全调试(API 30+,需要时启用)
| 属性 |
用途 |
android:gwpAsanMode |
never/always,启用 GWP-ASan 检测 native 内存错误 |
android:memtagMode |
off/async/sync,ARMv9 MTE 内存标记 |
android:nativeHeapZeroInitialized |
native 堆零初始化 |
六、四大组件
1. <activity>
基础属性
| 属性 |
用途 |
android:name |
【必填】Activity 类名,可用 .MyActivity 相对写法 |
android:label |
标题栏 / 最近任务页显示名 |
android:icon |
任务栏 / 最近任务页图标 |
android:theme |
【常用】覆盖应用主题(如启动屏单独主题) |
启动 & 任务栈
| 属性 |
默认值 |
用途 |
android:launchMode |
standard |
【常用】见 [3.2 launchMode 详解](#属性 默认值 用途 android:launchMode standard 【常用】见 3.2 launchMode 详解 android:taskAffinity 包名 任务栈亲和性。空字符串 "" 表示无亲和(独立栈) android:allowTaskReparenting false 任务重归属(同 affinity 的应用启动时夺回该 Activity) android:clearTaskOnLaunch false 从启动器重新进入时清空栈中其上 Activity android:alwaysRetainTaskState false 长时间不用也不重置任务状态 android:finishOnTaskLaunch false 用户离开任务后下次返回时销毁 android:noHistory false 离开即销毁(不在回退栈中保留) android:excludeFromRecents false 不显示在"最近任务" android:autoRemoveFromRecents false finish 后自动从最近任务移除(API 21+) android:documentLaunchMode none 文档型应用启动模式:intoExisting / always / never / none android:maxRecents 16 同任务在最近列表的最大条目数(API 21+) android:relinquishTaskIdentity false 让出任务身份给上层 Activity "#32-androidlaunchmode%E5%B8%B8%E7%94%A8--activity-%E4%B8%93%E7%94%A8") |
android:taskAffinity |
包名 |
任务栈亲和性。空字符串 "" 表示无亲和(独立栈) |
android:allowTaskReparenting |
false |
任务重归属(同 affinity 的应用启动时夺回该 Activity) |
android:clearTaskOnLaunch |
false |
从启动器重新进入时清空栈中其上 Activity |
android:alwaysRetainTaskState |
false |
长时间不用也不重置任务状态 |
android:finishOnTaskLaunch |
false |
用户离开任务后下次返回时销毁 |
android:noHistory |
false |
离开即销毁(不在回退栈中保留) |
android:excludeFromRecents |
false |
不显示在"最近任务" |
android:autoRemoveFromRecents |
false |
finish 后自动从最近任务移除(API 21+) |
android:documentLaunchMode |
none |
文档型应用启动模式:intoExisting / always / never / none |
android:maxRecents |
16 |
同任务在最近列表的最大条目数(API 21+) |
android:relinquishTaskIdentity |
false |
让出任务身份给上层 Activity |
屏幕方向 screenOrientation
| 常用值 |
说明 |
unspecified(默认) |
系统决定 |
portrait / landscape |
锁定竖屏 / 横屏 |
sensor / sensorPortrait / sensorLandscape |
由传感器决定(含反向) |
user / fullUser |
跟随用户首选方向(推荐用于不强制方向的页面) |
locked |
锁定当前方向 |
nosensor |
忽略传感器 |
其他值(behind / reverseLandscape / reversePortrait / fullSensor 等)按需查阅,使用较少。
配置变更 configChanges
详见 [3.4 configChanges 详解](#3.4 configChanges 详解 "#34-androidconfigchanges%E5%B8%B8%E7%94%A8--activity")。
安全 & 权限
| 属性 |
默认值 |
用途 |
android:exported |
有 intent-filter 则 true |
【关键】见 [3.1 exported 详解](#属性 默认值 用途 android:exported 有 intent-filter 则 true 【关键】见 3.1 exported 详解 android:permission 继承 application 启动该 Activity 所需权限 "#31-androidexported%E5%85%B3%E9%94%AE--api-31-%E5%BC%BA%E5%88%B6") |
android:permission |
继承 application |
启动该 Activity 所需权限 |
由 state(键盘状态) + adjust(窗口调整方式) 各取一个组合:
| state |
含义 |
stateUnspecified(默认) |
系统决定 |
stateUnchanged |
进入时保持当前状态 |
stateHidden / stateAlwaysHidden |
进入时隐藏 / 始终隐藏 |
stateVisible / stateAlwaysVisible |
进入时显示 / 始终显示 |
| adjust |
含义 |
adjustUnspecified |
系统决定 |
adjustResize |
【推荐】调整窗口大小避免遮挡(聊天 / 评论页) |
adjustPan |
平移窗口使焦点可见(不改变布局) |
adjustNothing |
不调整(API 21+) |
多窗口 & 画中画
| 属性 |
默认值 |
API |
用途 |
android:resizeableActivity |
继承 |
24 |
支持分屏 / 自由窗口 |
android:supportsPictureInPicture |
false |
24 |
【常用】支持画中画(视频应用) |
android:maxAspectRatio / android:minAspectRatio |
--- |
26/29 |
最大 / 最小宽高比 |
android:preferMinimalPostProcessing |
false |
30 |
请求最小后处理(低延迟,游戏/云游戏) |
android:allowEmbedded |
false |
21 |
允许作为嵌入容器的子 Activity(如 Slice) |
锁屏与现代特性
| 属性 |
默认值 |
API |
用途 |
android:showWhenLocked |
false |
27 |
锁屏上显示(来电、闹钟) |
android:turnScreenOn |
false |
27 |
启动时点亮屏幕(配合上者) |
android:inheritShowWhenLocked |
false |
29 |
继承启动方的 showWhenLocked |
android:lockTaskMode |
normal |
21 |
锁定任务模式(Kiosk / MDM 场景) |
android:colorMode |
default |
26 |
default / hdr / wideColorGamut |
android:enableOnBackInvokedCallback |
false |
33 |
【新特性】启用预测返回手势(Android 14 默认行为变更) |
android:requireContentUriPermissionFromCaller |
--- |
35 |
调用方必须持有 Content URI 权限 |
android:immersive |
false |
18 |
沉浸模式(已较少使用,推荐 WindowInsetsController) |
其他
| 属性 |
默认值 |
用途 |
android:process |
应用进程名 |
自定义运行进程 |
android:multiprocess |
false |
允许在多进程实例化(少见) |
android:enabled |
true |
是否可被实例化(动态禁用入口) |
2. <activity-alias>
为同一个 Activity 创建多个入口(如多语言图标、可切换的 App 图标)。
xml
复制代码
<activity-alias
android:name=".MainActivityChinese"
android:targetActivity=".MainActivity"
android:label="@string/app_name_zh"
android:icon="@mipmap/ic_launcher_zh"
android:enabled="false"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
| 属性 |
必填 |
用途 |
android:name |
是 |
别名名称(在系统中作为入口标识) |
android:targetActivity |
是 |
真正承担逻辑的目标 Activity |
android:enabled |
否 |
默认 true。通过 PackageManager.setComponentEnabledSetting() 切换可换图标 |
android:exported |
否 |
同 Activity 规则 |
android:label / android:icon / android:roundIcon |
否 |
别名独立的显示属性 |
android:permission |
否 |
调用所需权限 |
3. <service>
| 属性 |
默认值 |
API |
用途 |
android:name |
--- |
--- |
【必填】Service 类名 |
android:exported |
有 intent-filter 则 true |
--- |
【关键】见 [3.1](#属性 默认值 API 用途 android:name — — 【必填】Service 类名 android:exported 有 intent-filter 则 true — 【关键】见 3.1 android:enabled true — 是否可被实例化 android:permission 继承 — 绑定 / 启动所需权限 android:process 应用进程 — 自定义运行进程(:remote 等) android:isolatedProcess false 16 隔离进程(无任何应用数据权限,用于沙箱化) android:foregroundServiceType — 29 【关键】见 3.3 android:stopWithTask false — 任务被移除时是否停止 android:directBootAware false 24 直接启动(首次解锁前)可用,用于闹钟、来电等核心服务 "#31-androidexported%E5%85%B3%E9%94%AE--api-31-%E5%BC%BA%E5%88%B6") |
android:enabled |
true |
--- |
是否可被实例化 |
android:permission |
继承 |
--- |
绑定 / 启动所需权限 |
android:process |
应用进程 |
--- |
自定义运行进程(:remote 等) |
android:isolatedProcess |
false |
16 |
隔离进程(无任何应用数据权限,用于沙箱化) |
android:foregroundServiceType |
--- |
29 |
【关键】见 [3.3](#属性 默认值 API 用途 android:name — — 【必填】Service 类名 android:exported 有 intent-filter 则 true — 【关键】见 3.1 android:enabled true — 是否可被实例化 android:permission 继承 — 绑定 / 启动所需权限 android:process 应用进程 — 自定义运行进程(:remote 等) android:isolatedProcess false 16 隔离进程(无任何应用数据权限,用于沙箱化) android:foregroundServiceType — 29 【关键】见 3.3 android:stopWithTask false — 任务被移除时是否停止 android:directBootAware false 24 直接启动(首次解锁前)可用,用于闹钟、来电等核心服务 "#33-androidforegroundservicetype%E5%85%B3%E9%94%AE--api-28--34-%E5%BC%BA%E5%88%B6") |
android:stopWithTask |
false |
--- |
任务被移除时是否停止 |
android:directBootAware |
false |
24 |
直接启动(首次解锁前)可用,用于闹钟、来电等核心服务 |
4. <receiver>
⚠️ API 26+ 已禁止大部分隐式广播静态注册。保留可静态注册的主要是:开机完成、时区/日期变化、相机拍摄、连接性变化(部分)等"受保护广播"。
| 属性 |
用途 |
android:name |
【必填】Receiver 类名 |
android:exported |
【关键】系统广播需要 true,应用内部建议 false 或动态注册 |
android:enabled |
是否启用 |
android:permission |
发送方需要持有的权限 |
android:process |
自定义进程 |
android:directBootAware |
直接启动场景(API 24+) |
5. <provider>
| 属性 |
默认值 |
用途 |
android:name |
--- |
【必填】Provider 类名 |
android:authorities |
--- |
【必填】URI authority(多个用 ; 分隔),推荐 ${applicationId}.xxx |
android:exported |
【关键】API 17+ 默认 false |
FileProvider 必须 false |
android:enabled |
true |
是否启用 |
android:permission |
--- |
读写所需权限 |
android:readPermission / android:writePermission |
--- |
分别覆盖读 / 写权限 |
android:grantUriPermissions |
false |
【常用】允许通过 Intent 临时授权(FileProvider 必须 true) |
android:multiprocess |
false |
允许在调用方进程中创建实例 |
android:initOrder |
--- |
同进程中初始化顺序,值大先初始化 |
android:directBootAware |
false |
直接启动可用(API 24+) |
android:visibleToInstantApps |
false |
对 Instant App 可见(API 26+) |
android:forceUriPermissions |
false |
强制使用 URI 权限(API 33+) |
android:syncable |
false |
【废弃】是否同步数据,现已少用 |
<provider> 的子元素
<grant-uri-permission> --- 允许临时授权的 URI 路径白名单:
| 属性 |
说明 |
android:path |
精确路径 |
android:pathPrefix |
前缀匹配 |
android:pathPattern |
通配模式(* 任意字符,. 任意单字符) |
<path-permission> --- 针对特定路径设置独立权限:
| 属性 |
说明 |
android:path / android:pathPrefix / android:pathPattern |
路径匹配(三选一) |
android:permission / android:readPermission / android:writePermission |
权限 |
七、意图过滤器与系统常量
7.1 <intent-filter>
| 属性 |
用途 |
android:label / android:icon |
在选择器(Chooser)中显示的标签和图标 |
android:priority |
优先级(-999 ~ 999,越大越优先)。仅对广播和 Chooser 排序有效 |
android:order |
同上但用于 Receiver 多注册排序(API 28+) |
android:autoVerify |
App Links 域名自动验证(API 23+),需配合 assetlinks.json |
7.2 <action> 常用系统 Action
| Action |
用途 |
android.intent.action.MAIN |
主入口(配合 LAUNCHER 类别) |
android.intent.action.VIEW |
查看数据(深链接 / URL / 文件) |
android.intent.action.SEND |
分享数据 |
android.intent.action.SENDTO |
发送到指定目标(如 mailto: / smsto:) |
android.intent.action.EDIT |
编辑数据 |
android.intent.action.PICK |
选取数据 |
android.intent.action.SEARCH |
搜索 |
android.intent.action.DIAL / CALL |
打开拨号界面 / 直接拨号 |
android.intent.action.DELETE |
删除数据 |
android.intent.action.BOOT_COMPLETED |
开机完成(广播) |
android.intent.action.PACKAGE_REPLACED |
应用升级广播 |
7.3 <category> 常用 Category
| Category |
用途 |
android.intent.category.DEFAULT |
【常用】隐式 Intent 必须包含 |
android.intent.category.LAUNCHER |
【常用】出现在桌面启动器 |
android.intent.category.BROWSABLE |
【常用】可从浏览器 / 链接调起(深链接必备) |
android.intent.category.LEANBACK_LAUNCHER |
【TV】Android TV 启动器入口 |
android.intent.category.APP_* |
应用类型分类(BROWSER / EMAIL / GALLERY / MAPS / MUSIC) |
7.4 <data>
| 属性 |
用途 |
android:scheme |
URI scheme(http / https / content / 自定义) |
android:host |
域名 / 主机 |
android:port |
端口 |
android:path / android:pathPrefix / android:pathPattern |
路径匹配 |
android:pathAdvancedPattern |
高级正则路径(API 31+) |
android:mimeType |
MIME 类型(如 image/*) |
android:mimeGroup |
动态 MIME 类型组(API 31+) |
匹配规则 :scheme → host → port → path → mimeType,从上到下逐级生效。仅有 mimeType 没有 scheme 时默认匹配 content: 和 file:。
八、权限相关
8.1 <uses-permission> 声明权限
xml
复制代码
<uses-permission android:name="android.permission.INTERNET" />
<!-- 仅在 API ≤ 28 时申请(如旧版本读外部存储) -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
| 属性 |
用途 |
android:name |
【必填】权限名称 |
android:maxSdkVersion |
【常用】仅在指定 API 及以下版本申请,用于规避新版本不再需要的权限 |
8.2 <uses-permission-sdk-23>
仅在 API 23+ 申请。用于支持库向后兼容旧 SDK 的场景,普通业务代码用不到。
8.3 <permission> 自定义权限
xml
复制代码
<permission
android:name="com.example.permission.MY_API"
android:label="@string/perm_label"
android:description="@string/perm_desc"
android:protectionLevel="signature" />
| 属性 |
用途 |
android:name |
【必填】权限唯一名 |
android:label |
用户可见名称 |
android:description |
用户可见描述(必须是字符串资源) |
android:permissionGroup |
所属权限组 |
android:protectionLevel |
【关键】见 [3.5 protectionLevel 详解](#属性 用途 android:name 【必填】权限唯一名 android:label 用户可见名称 android:description 用户可见描述(必须是字符串资源) android:permissionGroup 所属权限组 android:protectionLevel 【关键】见 3.5 protectionLevel 详解 "#35-protectionlevel%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9D%83%E9%99%90%E4%BF%9D%E6%8A%A4%E7%BA%A7%E5%88%AB") |
8.4 <permission-group> 权限分组
xml
复制代码
<permission-group
android:name="com.example.permission-group.MEDIA"
android:label="@string/group_label"
android:icon="@drawable/group_icon" />
仅在自定义大量权限并希望分组显示时使用,普通应用一般不需要。
8.5 <permission-tree>(极少用)
声明权限树根,配合 PackageManager.addPermission() 动态添加子权限。绝大多数应用用不到。
九、功能与 SDK 声明
9.1 <uses-feature> 硬件 / 软件功能依赖
xml
复制代码
<!-- 必需相机 -->
<uses-feature android:name="android.hardware.camera" android:required="true" />
<!-- 可选 NFC -->
<uses-feature android:name="android.hardware.nfc" android:required="false" />
<!-- OpenGL ES 3.0 -->
<uses-feature android:glEsVersion="0x00030000" android:required="true" />
| 属性 |
用途 |
android:name |
Feature 名称 |
android:required |
【关键】true 时 Play 商店会过滤不支持此功能的设备;可选功能必须显式设为 false |
android:glEsVersion |
OpenGL ES 版本(如 0x00020000 = 2.0) |
常用 Feature 速查:
| 类别 |
典型 Feature |
| 摄像头 |
android.hardware.camera / .front / .flash / .autofocus / .any / .level.full |
| 定位 |
android.hardware.location / .gps / .network |
| 蓝牙 |
android.hardware.bluetooth / .bluetooth_le(18+) |
| 网络 |
android.hardware.wifi / .wifi.direct(14+) |
| NFC |
android.hardware.nfc / .nfc.hce(19+) |
| 传感器 |
android.hardware.sensor.accelerometer / .gyroscope / .compass / .barometer / .heartrate(20+) / .fingerprint(23+) |
| 触屏 |
android.hardware.touchscreen / .multitouch / .faketouch |
| 电话 |
android.hardware.telephony / .gsm / .cdma / .euicc(28+ eSIM) |
| USB |
android.hardware.usb.host(12+) / .usb.accessory(12+) |
| 屏幕 |
android.hardware.screen.landscape / .portrait |
| 软件特性 |
android.software.webview / .print(19+) / .autofill(26+) / .picture_in_picture(26+) |
| TV / VR |
android.software.leanback(21+ TV)/ .vr.mode(24+)/ android.hardware.vr.headtracking(26+) |
| 游戏 |
android.hardware.gamepad(21+) |
| 音频 |
android.hardware.microphone / android.software.midi(23+) |
9.2 <uses-library> 共享库依赖
xml
复制代码
<uses-library android:name="org.apache.http.legacy" android:required="false" />
| 属性 |
用途 |
android:name |
【必填】共享库名 |
android:required |
默认 true,false 时即使设备无此库仍可安装 |
9.3 <uses-sdk> SDK 版本范围
| 属性 |
默认值 |
用途 |
android:minSdkVersion |
1 |
最低支持 API |
android:targetSdkVersion |
minSdk |
【关键】目标 API,决定行为兼容性 |
android:maxSdkVersion |
--- |
【不推荐】最高支持 API |
推荐写法 :不在 Manifest 写,全部在 build.gradle 中通过 minSdk / targetSdk 配置。
9.4 <uses-native-library>(API 30+)
声明依赖的厂商专属原生库(如 libOpenCL.so)。仅 NDK 开发涉及。
十、辅助元素
为组件 / 应用挂载任意键值对,被大量 SDK 用作配置载体。
xml
复制代码
<!-- 应用级(如 Firebase / 推送 SDK) -->
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="default" />
<!-- 引用资源 -->
<meta-data android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
| 属性 |
用途 |
android:name |
键 |
android:value |
直接值(字符串 / 整数 / 布尔等) |
android:resource |
资源引用(与 value 二选一) |
10.2 <queries>(API 30+)
声明本应用需要查询的其他应用,详见 [1.7 模板](#1.7 模板 "#17-%E5%BA%94%E7%94%A8%E5%8F%AF%E8%A7%81%E6%80%A7%E6%9F%A5%E8%AF%A2api-30-%E5%BF%85%E5%8A%A0%E5%90%A6%E5%88%99-packagemanager-%E6%9F%A5%E4%B8%8D%E5%88%B0%E7%9B%AE%E6%A0%87%E5%BA%94%E7%94%A8")。
| 子元素 |
用途 |
<package android:name="..."/> |
按包名声明 |
<intent>...</intent> |
按能响应的 Intent 声明(含 action/category/data) |
<provider android:authorities="..."/> |
按 ContentProvider authority 声明 |
也可以申请 QUERY_ALL_PACKAGES 权限,但 Google Play 会审核用途 ,能用 <queries> 就不要用全包查询。
10.3 <profileable>(API 30+)
xml
复制代码
<profileable android:shell="true" />
允许性能分析工具(Android Studio Profiler / simpleperf)分析 release 包。shell="true" 表示允许从 adb shell 分析。
10.4 <attribution>(API 31+)
为隐私审计日志打标,标记某次权限使用来自应用的哪个功能。
xml
复制代码
<attribution android:tag="sharePhotos" android:label="@string/share_photos_label" />
代码端配合 Context.createAttributionContext("sharePhotos") 使用。
10.5 <overlay>(API 28+,仅 RRO 资源覆盖包使用)
声明该 APK 是运行时资源覆盖(Runtime Resource Overlay)包。仅 OEM / 系统定制开发涉及。
| 属性 |
说明 |
android:targetPackage |
目标应用包名 |
android:targetName |
目标覆盖组(API 30+) |
android:isStatic |
是否静态覆盖(需预装) |
android:priority |
优先级 |
10.6 <instrumentation>(测试用)
声明测试仪器类,常被 AGP 自动生成。手写 Manifest 一般不接触。
| 属性 |
说明 |
android:name |
Instrumentation 子类名 |
android:targetPackage |
被测应用包名 |
android:targetProcesses |
目标进程(逗号分隔,* 全部,API 26+) |
android:handleProfiling / android:functionalTest |
测试配置 |
十一、屏幕兼容(简化)
现代项目通过资源限定符(-sw600dp / -w820dp 等)适配屏幕,以下元素基本已废弃,仅在维护老项目时关注。
<supports-screens>【大部分废弃】
历史用于声明支持的屏幕尺寸(small / normal / large / xlarge)和密度。API 13 起已被 <uses-sdk minSdkVersion="..."/> 与资源限定符取代,新项目不要写。
<compatible-screens>【已废弃】
精确白名单式声明兼容屏幕配置,会严重限制 Play 商店可见设备,不推荐使用。
<supports-gl-texture>
xml
复制代码
<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
声明支持的 OpenGL 纹理压缩格式,仅游戏 / 图形应用需要,Play 商店据此过滤设备。
十二、版本里程碑速查
| Android 版本 |
API |
关键 Manifest 变化 |
| 5.0 Lollipop |
21 |
documentLaunchMode、autoRemoveFromRecents、lockTaskMode、allowEmbedded |
| 6.0 Marshmallow |
23 |
【里程碑】运行时权限体系;usesCleartextTraffic;自动备份 fullBackupContent |
| 7.0 Nougat |
24 |
resizeableActivity、supportsPictureInPicture、directBootAware、networkSecurityConfig;FileProvider 必须用(不再允许 file://) |
| 7.1 Nougat |
25 |
roundIcon;静态快捷方式 <shortcuts> |
| 8.0 Oreo |
26 |
【里程碑】禁止大部分隐式广播静态注册;通知渠道;startForegroundService() 必须显示通知 ;colorMode、maxAspectRatio、visibleToInstantApps |
| 8.1 Oreo |
27 |
showWhenLocked、turnScreenOn |
| 9.0 Pie |
28 |
usesCleartextTraffic 默认 false;<overlay>;前台 Service 必须申请 FOREGROUND_SERVICE 权限 ;autoVerify 增强 |
| 10 Q |
29 |
【里程碑】分区存储;foregroundServiceType 引入;minAspectRatio;requestLegacyExternalStorage;sharedUserId 废弃 |
| 11 R |
30 |
【里程碑】Package Visibility(<queries> 必加);<profileable>、<uses-native-library>、preserveLegacyExternalStorage |
| 12 S |
31 |
【里程碑】exported 必填;<attribution>;singleInstancePerTask;启动画面 API;pathAdvancedPattern |
| 12L |
32 |
大屏 / 折叠屏增强 |
| 13 Tiramisu |
33 |
localeConfig 应用内语言;enableOnBackInvokedCallback 预测返回;POST_NOTIFICATIONS 运行时权限 |
| 14 UDC |
34 |
【里程碑】foregroundServiceType 必填 + 子权限拆分;新增 health/remoteMessaging/shortService/specialUse/systemExempted;grammaticalGender |
| 15 |
35 |
requireContentUriPermissionFromCaller、taskCloseBehavior;边到边显示默认开启 |
十三、避坑指南与最佳实践
13.1 编译期高频报错
-
Apps targeting Android 12 require attribute android:exported 含 <intent-filter> 的组件必须显式声明 exported。见 3.1。
-
Permission denied (FOREGROUND_SERVICE_xxx) API 34+ 启动前台 Service 时,foregroundServiceType + 同名 FOREGROUND_SERVICE_* 权限 + startForeground 的 type 必须三方一致。见 3.3。
-
SecurityException: Permission Denial: opening provider Provider 没设 exported="false" + grantUriPermissions="true",或调用方未通过 Intent.FLAG_GRANT_READ_URI_PERMISSION 拿到临时权限。
13.2 安全最佳实践
android:debuggable 永远不写(让 AGP 自动管理,release 包自动为 false)
android:allowBackup :含敏感数据时设为 false,或通过 dataExtractionRules 精细控制
android:usesCleartextTraffic="false" :默认禁用明文,必要时通过 networkSecurityConfig 白名单
- 自定义权限默认用
signature :避免 normal 被任意应用获取
- 对外组件最小暴露 :
exported="true" 必加 permission 约束调用方
13.3 性能与体验
configChanges 不要滥用 :能用 ViewModel / onSaveInstanceState 处理重建则优先
largeHeap 慎用:不是内存泄漏的解决方案,会延缓 GC
- 避免使用
singleInstance:除非真的需要独立任务栈(锁屏、悬浮窗)
- 入口 Activity 用
singleTask:避免重复创建主页实例
13.4 迁移与兼容
package 属性 :AGP 7.3+ 已迁至 build.gradle 的 namespace,新项目可移除
minSdk / targetSdk :写在 build.gradle,不要写在 Manifest
- 分区存储 :targetSdk≥30 必须迁移,
requestLegacyExternalStorage 是临时方案
- 包可见性 :targetSdk≥30 必须用
<queries>,否则 getInstalledApplications() 等 API 返回空
- 通知权限 :targetSdk≥33 需运行时申请
POST_NOTIFICATIONS
- 预测返回:targetSdk≥34 默认开启,未适配会出现返回手势异常
13.5 调试小技巧
xml
复制代码
<!--
tools:* 命名空间仅供 AGP 合并 Manifest 时使用,
打包发布前会被自动清理,不会出现在最终 APK 中。
-->
<application
xmlns:tools="http://schemas.android.com/tools"
android:allowBackup="false"
tools:replace="android:allowBackup"
tools:ignore="GoogleAppIndexingWarning">
<!-- 移除某 SDK 注入的 Provider -->
<provider
android:name="com.thirdparty.sdk.InitProvider"
android:authorities="${applicationId}.thirdparty-init"
tools:node="remove" />
</application>
tools:replace="xxx" 用于覆盖被库 Manifest 强加的属性,解决合并冲突
tools:node="remove" 可移除被依赖库注入的元素(如某 SDK 强加的 Provider / Service)
tools:node="merge" / "replace" / "removeAll" 等还有更多策略,详见 Manifest 合并指南
- 执行
./gradlew :app:processDebugManifest 后查看 app/build/intermediates/merged_manifests/ 可看到最终合并产物
附录 A:属性字母序索引
按 android:xxx 首字母排序。§ 后为正文所在小节。同一属性在多元素下出现时只列主要章节。
A
| 属性 |
章节 |
简述 |
allowBackup |
§5.2 |
是否允许 ADB / 云备份 |
allowClearUserData |
§5.2 |
是否允许"清除数据" |
allowEmbedded |
§6.1 |
Activity 可作为嵌入容器子项 |
allowTaskReparenting |
§6.1 |
任务重归属 |
alwaysRetainTaskState |
§6.1 |
长时间不重置任务状态 |
authorities |
§6.5 |
Provider 的 URI authority |
autoRemoveFromRecents |
§6.1 |
finish 后自动从最近任务移除 |
autoVerify |
§7.1 |
App Links 域名自动验证 |
B--C
| 属性 |
章节 |
简述 |
banner |
§5.1 |
Android TV 启动器横幅 |
clearTaskOnLaunch |
§6.1 |
重新进入时清空栈中其上 Activity |
colorMode |
§6.1 / §3.4 |
HDR / 广色域 |
configChanges |
§3.4 / §6.1 |
自行处理的配置变化 |
D
| 属性 |
章节 |
简述 |
dataExtractionRules |
§5.2 |
备份与设备迁移规则(API 31+) |
debuggable |
§5.2 |
是否可调试(Release 必须 false) |
description |
§5.1 / §8.3 |
应用 / 权限描述 |
directBootAware |
§6.3 / §6.4 / §6.5 |
直接启动可用 |
documentLaunchMode |
§6.1 |
文档型应用启动模式 |
E--F
| 属性 |
章节 |
简述 |
enabled |
§6 各组件 |
是否可被实例化 |
enableOnBackInvokedCallback |
§6.1 |
预测返回手势(API 33+) |
excludeFromRecents |
§6.1 |
不显示在最近任务 |
exported |
§3.1 |
**【关键】**组件是否可被外部启动 |
finishOnTaskLaunch |
§6.1 |
用户离开任务后销毁 |
forceUriPermissions |
§6.5 |
强制使用 URI 权限(API 33+) |
foregroundServiceType |
§3.3 / §6.3 |
**【关键】**前台 Service 用途 |
fullBackupContent |
§5.2 |
自动备份规则(API 23+) |
G--I
| 属性 |
章节 |
简述 |
glEsVersion |
§9.1 |
OpenGL ES 版本 |
grammaticalGender |
§3.4 |
语法性别(API 34+) |
grantUriPermissions |
§6.5 |
允许通过 Intent 临时授权 |
gwpAsanMode |
§5.6 |
GWP-ASan 内存检测 |
hardwareAccelerated |
§5.3 |
硬件加速 |
host |
§7.4 |
URI 主机 |
icon |
§5.1 / §6 |
图标 |
immersive |
§6.1 |
沉浸模式(已少用) |
inheritShowWhenLocked |
§6.1 |
继承启动方的 showWhenLocked |
initOrder |
§6.5 |
Provider 初始化顺序 |
installLocation |
§四 |
安装位置 |
isolatedProcess |
§6.3 |
隔离进程 |
L
| 属性 |
章节 |
简述 |
label |
§5.1 / §6 / §7.1 |
显示名 |
largeHeap |
§5.3 |
申请更大堆内存 |
launchMode |
§3.2 / §6.1 |
启动模式 |
localeConfig |
§5.5 |
应用内语言切换(API 33+) |
lockTaskMode |
§6.1 |
锁定任务(Kiosk) |
logo |
§5.1 |
ActionBar Logo |
M
| 属性 |
章节 |
简述 |
maxAspectRatio / minAspectRatio |
§6.1 |
宽高比 |
maxRecents |
§6.1 |
最近任务最大条目 |
maxSdkVersion |
§8.1 / §9.3 |
最高支持 API |
memtagMode |
§5.6 |
MTE 内存标记 |
mimeType / mimeGroup |
§7.4 |
MIME 类型 |
minSdkVersion |
§9.3 |
最低 API(建议放 gradle) |
multiprocess |
§6.1 / §6.5 |
多进程实例化 |
N--P
| 属性 |
章节 |
简述 |
name |
§五~§九 |
类名 / 资源名 |
nativeHeapZeroInitialized |
§5.6 |
native 堆零初始化 |
networkSecurityConfig |
§5.4 |
网络安全配置 |
noHistory |
§6.1 |
离开即销毁 |
path / pathPrefix / pathPattern / pathAdvancedPattern |
§6.5 / §7.4 |
路径匹配 |
permission |
§5.2 / §6 / §8.3 |
权限要求 |
permissionGroup |
§8.3 |
所属权限组 |
port |
§7.4 |
URI 端口 |
preferMinimalPostProcessing |
§6.1 |
低延迟显示 |
preserveLegacyExternalStorage |
§5.5 |
保留旧外部存储访问 |
priority |
§7.1 |
意图过滤器优先级 |
process |
§5.2 / §6 |
自定义进程 |
protectionLevel |
§3.5 / §8.3 |
权限保护级别 |
R
| 属性 |
章节 |
简述 |
readPermission / writePermission |
§6.5 |
读 / 写权限 |
relinquishTaskIdentity |
§6.1 |
让出任务身份 |
required |
§9.1 / §9.2 |
是否必需 |
requestLegacyExternalStorage |
§5.5 |
绕过分区存储(临时) |
requireContentUriPermissionFromCaller |
§6.1 |
调用方需持 URI 权限(API 35+) |
resizeableActivity |
§5.5 / §6.1 |
支持分屏 |
resource |
§10.1 |
meta-data 资源引用 |
roundIcon |
§5.1 |
圆形启动图标(API 25+) |
S
| 属性 |
章节 |
简述 |
scheme |
§7.4 |
URI scheme |
screenOrientation |
§6.1 |
屏幕方向 |
sharedUserId / sharedUserLabel |
§四 |
【废弃】共享 UID |
showWhenLocked |
§6.1 |
锁屏上显示(API 27+) |
stopWithTask |
§6.3 |
任务移除时停止 |
supportsPictureInPicture |
§6.1 |
支持画中画 |
supportsRtl |
§5.3 |
支持 RTL 布局 |
syncable |
§6.5 |
【废弃】同步数据 |
T
| 属性 |
章节 |
简述 |
targetActivity |
§6.2 |
activity-alias 目标 |
targetPackage |
§10.5 / §10.6 |
覆盖 / 测试目标包 |
targetSdkVersion |
§9.3 |
**【关键】**目标 API(建议放 gradle) |
taskAffinity |
§5.2 / §6.1 |
任务栈亲和性 |
testOnly |
§5.2 |
仅用于测试 |
theme |
§5.1 / §6.1 |
主题 |
turnScreenOn |
§6.1 |
启动时点亮屏幕(API 27+) |
U--W
| 属性 |
章节 |
简述 |
uiOptions |
§5.3 |
ActionBar 选项 |
usesCleartextTraffic |
§5.4 |
是否允许 HTTP 明文 |
value |
§10.1 |
meta-data 直接值 |
versionCode / versionName |
§四 |
版本号(建议放 gradle) |
visibleToInstantApps |
§6.5 |
对 Instant App 可见 |
vmSafeMode |
§5.2 |
关闭 JIT |
windowSoftInputMode |
§6.1 |
软键盘窗口模式 |