一句话说透Android里面的AndroidManifest的作用

402 阅读1分钟

一句话总结:
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>  

常见问题(避坑指南)

  1. 为什么我的 Activity 打不开?

    • 检查 AndroidManifest 是否注册了该 Activity。
  2. 为什么权限申请了但无效?

    • 某些权限(如 CAMERA)除了在 Manifest 声明,还需运行时动态申请。
  3. 应用安装失败提示冲突?

    • 包名和其他应用重复,修改包名即可。

总结口诀

“AndroidManifest 是总管,
包名版本它来管,
四大组件要注册,
权限需求别忘填,
硬件要求写清楚,
主题图标也靠它!”