【发布时间】:2012-11-02 19:31:16
【问题描述】:
我有一个需要创建多个 apk 的 android 项目。每个 apk 之间的唯一区别是包名称(例如 com.my.package.name)和应用字符串名称,因此我可以在一台设备上安装应用的多个实例。有没有更好的方法来做到这一点?我想过创建一个库项目,但我认为可能有更简单的方法。
【问题讨论】:
我有一个需要创建多个 apk 的 android 项目。每个 apk 之间的唯一区别是包名称(例如 com.my.package.name)和应用字符串名称,因此我可以在一台设备上安装应用的多个实例。有没有更好的方法来做到这一点?我想过创建一个库项目,但我认为可能有更简单的方法。
【问题讨论】:
您可以将您的主要代码放在一个库中并构建多个生成多个 APK 的同级项目:
我对此进行了测试,结果比我最初想象的要容易得多: https://stackoverflow.com/a/9971543/305135
【讨论】:
图书馆项目是这样做的正确方法。您创建并处理库项目,并且每个版本都有一个项目,这取决于库项目。请记住,您需要为每个项目提供正确的 Android 清单。
【讨论】:
您可以试用新的 Android 构建系统。这里有一些链接
您可以自定义以下属性:
【讨论】:
您可以在应用级别的 gradle 中使用 productFlavors。
flavorDimensions "tier"
productFlavors {
dev
{
dimension "tier"
buildConfigField "String", "URL", "\"http://glapp/demo.php\""
buildConfigField "boolean", "ENABLE_DEBUG", "false"
versionName = android.defaultConfig.versionName + " dev"
applicationId = "com.abc.glnewapp.dev"
resValue "string", "app_name", "GL Demo"
}
prod
{
dimension "tier"
buildConfigField "String", "URL", "\"http://glapp/live.php\""
buildConfigField "boolean", "ENABLE_DEBUG", "false"
applicationId = "com.abc.glnewapp.prod"
resValue "string", "app_name", "GL Live"
}
}
然后选择 build variant 以根据 varient 构建 apk 您可以根据需要放置许多面粉(不同的 apk)。
您可以通过在 src 目录下的 falour name 文件夹中添加相同的 res 结构来更改应用程序图标和其他可绘制对象。此外,如果您发现任何与 google json 相关的问题,那么只需将 google json 文件复制到 src->productflavor
欲了解更多信息,请访问at
【讨论】:
您不能以编程方式更改包名称。因此唯一的解决方案是手动更改它并创建 apk。
【讨论】:
要更改包名称,您可以这样做:
您需要复制该项目。右键单击一个,选择“Android工具->重命名应用程序包”
希望对您有所帮助。
【讨论】:
我实际上是使用apktool 来反编译apk,然后使用一些Perl 脚本编辑smali 文件来更改包名。
【讨论】: