AndroidManifest.xml怎么配置 安卓清单文件作用与配置方法

AndroidManifest.xml 是 Android 应用强制存在的核心配置文件,声明包名、组件、权限、设备特性等,系统依赖其校验与调度;缺失或配置错误将导致安装失败、闪退、功能异常等问题。

AndroidManifest.xml 是每个 Android 应用的“身份证”和“总调度表”,它声明了应用的基本信息、组件(Activity、Service、BroadcastReceiver、ContentProvider)、权限需求、支持的设备特性等,系统在安装和运行时都依赖它做校验和调度。

核心作用:告诉系统“你是谁、能做什么、需要什么”

它不是可选配置,而是强制存在的 XML 文件,位于模块根目录(如 app/src/main/AndroidManifest.xml)。没有它,APK 无法安装;配错它,可能造成闪退、权限失效、页面打不开、后台服务不启动等问题。

基本结构与关键标签说明

一个最小可用的清单文件包含 根节点,并至少声明 package(应用唯一包名)和一个带 LAUNCHER 的 Activity:


    package="com.example.myapp">

       android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

           android:name=".MainActivity"
      android:exported="true">
      
        
        gory android:name="android.intent.category.LAUNCHER" />
      

    

  

常用配置项与注意事项

  • android:exported:Android 12+ 强制要求。值为 true 表示组件可被其他应用调用(如 Launcher Activity、公开 Service),false 则仅限本应用内访问。漏配或误配会导致启动失败或安全警告
  • 权限声明:用 声明运行时或安装时需要的权限,例如:


    注意:危险权限(如定位、存储、相机)还需在代码中动态申请
  • 适配属性:比如 android:targetSdkVersion 在 build.gradle 中定义,但清单中可通过 (已弃用)或间接影响行为;android:hardwareAcceleratedandroid:supportsRtl 等可在 或 中设置
  • Intent Filter 配置:决定组件如何被隐式 Intent 触发。除了 LAUNCHER,还可配置自定义 Scheme(如 myapp://open?param=1)或响应特定文件类型(如打开 PDF)

多模块/动态功能场景下的清单合并

使用 Android Gradle 插件后,清单文件支持自动合并。主 module 的 AndroidManifest.xml 是基础,library module 和 dynamic feature module 可各自提供清单片段,AGP 会按优先级(main > flavor > buildType > library)合并。冲突时可通过 tools:replacetools:removetools:node 等属性控制(需在 manifest 根节点声明 xmlns:tools="http://schemas.android.com/tools")。

例如合并时避免重复声明权限,或覆盖某个 activity 的 label:

  android:name=".SplashActivity"
  android:label="@string/splash_label"
  tools:replace="android:label" />

基本上就这些。它不复杂,但容易忽略细节——尤其是 exported、权限、intent-filter 和合并逻辑。改完记得 clean + rebuild,再真机验证是否能正常启动和跳转。