Android 合并AndroidManifest后修改内容

534 阅读1分钟

有时候我们需要修改AndroidManifest中的内容,但是我们在开发的时候如果去修改,可能会有多个AndroidManifest需要修改,比如说多Module的情况。

因为Android编译过程中会合并所有的AndroidManifest,所以我们在合并AndroidManifest之后再来修改就是最好的时机。

我们可以在项目的build.gradle中监听合并AndroidManifest的task,然后在task完成后对AndroidManifest操作。

下面举个例子,做一个去除AndroidManifest权限的操作:

android {
    ...
    android.applicationVariants.all { variant ->
        variant.outputs.all { output ->
            output.processManifest.doLast { pm ->
                String manifestPath = output.processResources.manifestFile
                def manifestContent = file(manifestPath).getText()

                // <!--修改wifi-->
                manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />', '')

                file(manifestPath).write(manifestContent)
            }
        }
    }
}

这里就是文件操作,大家可以自由发挥了。