一句话总结:
AndroidManifest 是 Android 应用的“身份证 + 说明书”,告诉系统这个应用是谁、能干什么、需要什么权限,以及各个功能模块怎么用。
具体作用拆解(现实比喻)
1. 声明应用的基本信息(身份证)
-
包名:相当于应用的“身份证号”,全网唯一。
<manifest package="com.example.myapp" ...> -
版本号:告诉用户和系统当前版本(比如 1.0.0)。
<manifest ...> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" /> </manifest>
2. 注册四大组件(功能说明书)
Android 的四大组件(Activity、Service、BroadcastReceiver、ContentProvider)必须在这里声明,否则系统不认!
-
Activity(页面) :
<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=".MyService" /> -
BroadcastReceiver(广播接收器) :
<receiver android:name=".MyReceiver"> <intent-filter> <!-- 监听开机完成广播 --> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> -
ContentProvider(数据共享) :
<provider android:name=".MyProvider" android:authorities="com.example.provider" />运行 HTML
3. 申请权限(通行证)
告诉系统应用需要哪些权限,比如访问网络、摄像头、位置等。
-
摄像头权限:
<uses-permission android:name="android.permission.CAMERA" /> -
网络权限:
<uses-permission android:name="android.permission.INTERNET" />
4. 定义硬件/软件要求(使用条件)
声明应用需要哪些硬件支持或系统版本,避免安装到不兼容的设备。
-
需要摄像头:
<uses-feature android:name="android.hardware.camera" /> -
最低 Android 版本:
<uses-sdk android:minSdkVersion="21" />运行 HTML
5. 配置应用主题和图标(外观设定)
设置应用的图标、名称、主题样式等。
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
</application>
常见问题(避坑指南)
-
为什么我的 Activity 打不开?
- 检查 AndroidManifest 是否注册了该 Activity。
-
为什么权限申请了但无效?
- 某些权限(如
CAMERA)除了在 Manifest 声明,还需运行时动态申请。
- 某些权限(如
-
应用安装失败提示冲突?
- 包名和其他应用重复,修改包名即可。
总结口诀
“AndroidManifest 是总管,
包名版本它来管,
四大组件要注册,
权限需求别忘填,
硬件要求写清楚,
主题图标也靠它!”