如何从一个项目创建多个apks?

时间:2012-11-02 19:31:16

标签: android apk

我有一个Android项目,我需要创建多个apks。每个apk之间的唯一区别是包名称(例如com.my.package.name)和应用程序字符串名称,因此我可以在一个设备上安装该应用程序的多个实例。有没有更好的方法呢?我考虑过创建一个库项目,但我认为可能有一种更简单的方法。

7 个答案:

答案 0 :(得分:2)

您可以将主代码放入库中,并构建多个生成多个APK的兄弟项目:

我测试了这个并且比我想象的要容易得多https://stackoverflow.com/a/9971543/305135

答案 1 :(得分:1)

图书馆项目是这样做的正确方法。您可以创建和处理库项目,并为每个版本创建一个项目,该项目取决于库项目。请记住,您需要为每个项目都拥有正确的Androidmanifest。

答案 2 :(得分:1)

您可以试用新的Android构建系统。这是一些链接

您可以自定义以下属性:

  • 的minSdkVersion
  • targetSdkVersion
  • 的versionCode
  • 的versionName
  • 包名称(覆盖清单中的值)
  • 等。

答案 3 :(得分:1)

您可以在app level的gradle中使用productFlavor。

 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"
                }

    } 

然后选择构建变体来构建apk作为varient 您可以根据需要添加多种面粉(不同的面包)。

enter image description here

您可以通过在src目录下的falour name文件夹中添加相同的res结构来更改app图标和其他drawable。此外,如果您发现任何与谷歌json相关的问题,那么只需在src-> productflavour中复制google json文件

有关详细信息,请访问at

答案 4 :(得分:0)

您无法以编程方式更改包名称。因此,唯一的解决方案是手动更改并创建 apk

答案 5 :(得分:0)

要更改包名称,您可以执行以下操作:

您需要复制该项目。右键单击其中一个,选择“Android工具 - >重命名应用程序包”

希望得到这个帮助。

答案 6 :(得分:0)

我实际上使用apktool来反编译apk,然后使用一些Perl脚本编辑smali文件来更改包名称。