AndroidManifest.xml 是 Android 应用的必备配置文件,用于声明包名、版本、图标、组件、权限、硬件需求及安全兼容性设置;缺失或错误将导致应用无法安装或运行异常。

AndroidManifest.xml 是每个 Android 应用的“身份证”和“说明书”,系统靠它识别应用、启动组件、判断能做什么、以及是否允许访问敏感资源。没它,应用根本跑不起来。
声明基本信息和唯一身份
这是整个应用的起点,告诉系统“我是谁”“叫什么”“长什么样”:
-
package:全局唯一的包名,安装、升级、进程命名都靠它,比如
com.example.myapp - android:label:用户看到的应用名称(通常取自 strings.xml)
- android:icon 和 android:roundIcon:桌面图标和圆角图标资源路径
- android:versionCode 和 android:versionName:内部版本号(整数递增)和对外显示的版本字符串(如 “2.1.0”)
注册四大核心组件
所有 Activity、Service、BroadcastReceiver、ContentProvider 都必须在这里显式声明,否则系统完全看不见它们:
- 主界面 Activity 要加
,包含LAUNCHER类别才能出现在桌面 - 后台 Service 即使不暴露给其他应用,也得写进去,否则 startService() 会直接崩溃
- BroadcastReceiver 若是动态注册的可不写,但静态注册(如监听开机广播)必须声明
- ContentProvider 默认
exported="false",要共享数据才需设为 true 并配权限
申请运行所需权限
权限不是代码里调用就自动有的,必须先在清单里“报备”,系统才可能授予:
- 用
声明需要的权限 - 危险权限(如位置、通讯录、存储)在 Android 6.0+ 还需运行时二次申请,但清单声明是前提
- 普通权限(如 INTERNET、VIBRATE)只要声明,安装时就自动授予
- 想让应用在无摄像头的设备上也能安装?加上
控制安全与兼容性
除了功能,这个文件还管“能不能”和“怎么用”:
-
决定最低支持系统和行为适配目标 -
android:exported属性决定组件是否能被其他应用调用(Android 12+ 强制要求显式设置) -
android:sharedUserId可用于多个 APK 共享数据和进程(需签名一致) -
android:supportsRtl="true"表示支持从右到左语言布局
基本上就这些。它不复杂,但容易忽略细节——少写一个 permission 或漏掉 exported,轻则功能异常,重则安装失败或被系统拦截。










