AndroidManifest.xml是Android应用的核心配置文件,位于app/src/main/目录下,用于声明应用基本信息、组件、权限及兼容性设置。1. 在<manifest>标签中指定包名作为唯一标识;在<application>中设置android:label(应用名称)、android:icon(图标)、android:theme(主题)等全局属性。2. 四大组件需显式声明:<activity>定义界面,启动页配置MAIN和LAUNCHER intent-filter;<service>用于后台服务;<receiver>接收广播;<provider>实现数据共享,通过android:exported控制组件是否可被外部访问。3. 权限管理方面,使用<uses-permission>申请敏感权限如相机、定位;可通过<permission>定义自定义权限并应用于组件以增强安全控制。4. 其他关键配置包括:<uses-sdk>设定minSdkVersion和targetSdkVersion以保证兼容性;<uses-feature>声明硬件依赖;通过android:name指定自定义Application类进行全局初始化。合理配置AndroidManifest.xml有助于提升应用安全性、兼容性和用户体验,避免权限滥用或组件暴露风险。

AndroidManifest.xml 是 Android 应用的核心配置文件,位于项目的 app/src/main/ 目录下。它向系统声明了应用的基本信息,是每个 Android 应用必不可少的组成部分。系统在安装、运行和管理应用时,都依赖此文件中的声明内容。
1. 声明应用基本信息
在 <manifest> 根标签中,必须指定应用的包名(package),它是应用的唯一标识:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapp">
在 <application> 标签内,可以设置应用的全局属性:
- android:label:应用显示名称
- android:icon:应用图标资源
- android:theme:应用默认主题
- android:allowBackup:是否允许备份数据
- android:supportsRtl:是否支持从右到左语言布局
示例:
<applicationandroid:name=".MyApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
</application>
2. 声明组件(四大组件)
Android 的四大组件必须在 Manifest 中显式声明,否则系统无法识别。
Activity 声明:每个 Activity 都需要一个 <activity> 标签。启动页需配置 Intent Filter:
<activity android:name=".MainActivity"><intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> Service 声明:
用于后台任务,如音乐播放、网络请求等:
<service android:name=".MyBackgroundService" /> Receiver 声明:接收系统广播,例如开机启动、电量变化:
<receiver android:name=".BootReceiver"><intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver> ContentProvider 声明:
用于应用间数据共享:
<providerandroid:name=".MyDataProvider"
android:authorities="com.example.myapp.provider"
android:exported="false" />
3. 权限管理
应用若需访问敏感功能(如相机、位置、存储等),必须声明权限。
请求权限: <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" /> 定义自定义权限:
供其他应用调用本应用组件时使用:
<permissionandroid:name="com.example.myapp.CUSTOM_PERMISSION"
android:protectionLevel="signature" />
然后在组件上应用该权限:
<activityandroid:name=".SecretActivity"
android:permission="com.example.myapp.CUSTOM_PERMISSION" />
4. 其他重要配置
指定最低和目标 SDK 版本:控制应用兼容性:
<uses-sdkandroid:minSdkVersion="21"
android:targetSdkVersion="34" /> 声明使用硬件或功能:
避免不支持设备下载应用:
<uses-feature android:name="android.hardware.camera" android:required="true" /> 配置应用入口或备用 Application 类:通过 android:name 指定自定义 Application 子类,用于全局初始化:
<applicationandroid:name=".MyApplication"
... >
</application> 设置应用是否可被其他应用启动:
通过 android:exported 控制组件的可访问性:
<activityandroid:name=".InternalActivity"
android:exported="false" />
当为 true 时,其他应用可通过 Intent 启动该组件;false 则仅限本应用内部使用。
基本上就这些。AndroidManifest.xml 虽然结构简单,但作用关键。合理配置能提升安全性、兼容性和用户体验。开发中应根据实际需求准确声明组件、权限和特性,避免过度申请或遗漏关键配置。









