AndroidManifest.xml 是 Android 应用的核心配置文件,位于 app/src/main/ 目录下,用于声明应用基本信息、四大组件、权限、设备兼容性及全局配置。它以 <manifest> 为根标签,包含 package(唯一包名)、versionCode 和 versionName 等属性。所有 Activity、Service、BroadcastReceiver 和 ContentProvider 必须在其中显式注册,例如通过 <activity> 标签声明启动页,并设置 intent-filter 实现应用入口。敏感权限如相机、位置需通过 <uses-permission> 声明,且从 Android 6.0 起部分权限还需运行时申请。通过 <uses-sdk> 定义 minSdkVersion 和 targetSdkVersion 控制兼容范围,<uses-feature> 可限制硬件要求,如摄像头。<application> 标签配置全局属性,如图标、名称、主题和是否支持备份。intent-filter 支持组件通信,可响应外部 Intent,如打开特定网页链接。正确配置该文件对应用行为、安全性和兼容性至关重要。

AndroidManifest.xml 是每个 Android 应用都必须具备的核心配置文件,它位于项目的 app/src/main/ 目录下。这个文件向系统声明了应用的基本信息,包括组件、权限、设备兼容性等。系统在安装和运行应用时,首先读取该文件以了解应用的结构与需求。
应用基本信息声明
在 <manifest> 根标签中,需指定包名(package)和命名空间(xmlns:android)。包名是应用的唯一标识,不可重复。
常用属性:
- package:应用的唯一包名,如 com.example.myapp
- android:versionCode:内部版本号,整数,用于升级判断
- android:versionName:对外显示的版本名称,如 "1.0.0"
示例:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0">
</manifest>
四大组件注册
所有 Activity、Service、BroadcastReceiver 和 ContentProvider 都必须在 Manifest 中显式声明,否则系统无法识别。
Activity 示例:
<activityandroid:name=".MainActivity"
android:exported="true"
android:label="主界面">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
说明:
- android:name:组件类名,. 开头表示当前包下
- android:exported:是否允许外部调用,启动页通常设为 true
- intent-filter:定义组件可响应的意图,MAIN + LAUNCHER 表示应用入口
Service 注册示例:
<service android:name=".MyBackgroundService" />权限声明与请求
应用若需访问敏感资源(如相机、位置、存储),必须在 Manifest 中声明权限。
示例:
<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
注意:从 Android 6.0(API 23)起,部分权限还需在运行时动态申请,仅在 Manifest 声明不够。
设备兼容性与功能支持
通过 <uses-sdk> 和 <uses-feature> 控制应用兼容范围。
uses-sdk 示例:
<uses-sdkandroid:minSdkVersion="21"
android:targetSdkVersion="34" />
- minSdkVersion:最低支持的 Android 版本
- targetSdkVersion:目标版本,影响系统对新特性的行为控制
限制硬件功能:
<uses-feature android:name="android.hardware.camera" android:required="true" />若 required 为 true,不具备摄像头的设备将无法安装此应用。
Application 全局配置
<application> 标签内定义应用全局属性及组件共用设置。
常见属性:
- android:icon:应用图标
- android:label:应用名称
- android:theme:全局主题样式
- android:allowBackup:是否允许备份数据(建议设为 false 保障安全)
- android:supportsRtl:是否支持从右到左语言布局
示例:
<applicationandroid:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:allowBackup="false">
...
</application>
Intent 过滤与组件通信
通过 <intent-filter> 设置组件可接收的 Intent 类型,实现组件间跳转或响应系统事件。
网页链接打开示例:
<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="https" android:host="www.example.com" />
</intent-filter>
此配置使应用能响应打开 https://www.example.com 的点击事件。
基本上就这些关键内容。掌握 AndroidManifest.xml 的结构和常用标签,能有效控制应用行为、提升兼容性和安全性。不复杂但容易忽略细节,比如 exported 属性默认值随版本变化,需特别留意。










