1 前言
平时如果想要替换包名一般是在AS中右键Rename进行操作。但是如果遇到一份代码希望导出几种不同的包名(不是ApplicationId),并且代码还会持续更新,这时候就需要使用脚本在打包时自动导出成不同包名的apk。
有的人会说直接可以在build.gradle里面的productFlavors里面设置,然后用placeHolder填充包名就行啦。 注意,这时候就要区分ApplicationId和PackageName了。
ApplicationId,是在手机中标识唯一应用的id。(看起来就是包名)
defaultConfig {
applicationId "com.tsy.xxx"
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true // Enabling multidex support.
}
PackageName,AndroidManifest里面标明的package和每个java文件里面的package头的包名。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tsy.xxx">
package com.tsy.xxx.xxx;
import xxx
public class MainActivity {
...
}
平时使用productFlavors+PlaceHolder导出不同包只能导出ApplicationId不同的包,的确可以导出2个同时在手机安装的包,但是其实package并没有改变。当遇到以下情况时就会出现问题。

本文详细介绍了如何在Android开发中使用脚本来批量替换PackageName,以满足多包名导出的需求。区别于ApplicationId,PackageName在AndroidManifest.xml和Java文件中都需要修改。文章提供了脚本操作的步骤,包括复制临时代码、替换资源文件、使用Gradle脚本替换包名以及执行clean & rebuild。此方法适用于需要持续迭代并导出不同包名的应用场景。
最低0.47元/天 解锁文章
3034

被折叠的 条评论
为什么被折叠?



