📜  我们合并了什么 mainfest (1)

📅  最后修改于: 2023-12-03 15:09:57.124000             🧑  作者: Mango

我们合并了什么 mainfest

在 Android 开发中,manifest 文件是应用程序的元数据资源,它描述了应用的基本信息,比如应用包名、应用图标、应用名称、应用版本等等。在开发过程中,可能会存在多个 manifest 文件,这时候就需要进行合并。

为什么要合并 manifest 文件

当项目中有多个 module 时,每个 module 都有自己的 manifest 文件,这时候就需要将它们合并,以确保最终 APK 包中只包含一个 manifest 文件。否则,如果存在多个 manifest 文件,会导致 APK 安装失败或者运行异常。

合并 manifest 文件的方式
1.手动合并

手动合并 manifest 文件是最传统的方式,但也是最容易出错的方式。手动合并 manifest 文件需要开发者自己去比对、修改,并确保修改没有错误,这需要花费很长时间,并且容易出现漏改的情况。

2.使用 Android Studio 中的 manifest 合并工具

Android Studio 提供了一种快速合并 manifest 文件的方式,即使用 manifest 合并工具。此工具会自动遍历工程目录下的所有 manifest 文件,并根据优先级合并成一个最终的 manifest 文件。可以在 app 模块下的 build.gradle 文件中添加如下代码来启用合并:

android {
    ...
    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            manifest.srcFile 'src/debug/AndroidManifest.xml'
            manifest.srcFile 'src/release/AndroidManifest.xml'
        }
    }
    ...
}
3.使用第三方插件

还有一些第三方插件可以帮忙合并 manifest 文件,比如 com.android.tools.build:gradle 中提供的 manifest-merger 工具,或者是 com.github.xavierlepretre.android-gradle-cb-plugin:cb 中提供的 cmbMergedmanifest 任务。

合并规则

在合并 manifest 文件时,通常会遵循如下规则:

  • 如果两个 manifest 文件中有相同的节点,则以优先级高的为准;
  • 如果两个 manifest 文件中一个有节点,而另一个没有,则以有节点的为准;
  • 如果两个 manifest 文件中有相同的属性,则以优先级高的为准;
  • 如果两个 manifest 文件中一个有属性,而另一个没有,则以有属性的为准。
总结

合并 manifest 文件可以帮助开发者减少错误,并确保最终 APK 包中只包含一个 manifest 文件,从而保证应用程序的正常运行。在 Android Studio 中有多种方式可以进行合并,而且也有第三方插件可以帮忙实现。需要开发者根据项目的实际情况,选择合适的合并方式。