Android 如何从一个项目创建多个APK?
我有一个android项目,需要创建多个APK。每个apk之间的唯一区别是程序包名称(例如com.my.package.name)和应用程序字符串名称,这样我就可以在一台设备上安装多个应用程序实例。有更好的方法吗?我曾考虑过创建一个库项目,但我认为可能有一种更简单的方法可以做到这一点。您不能通过编程方式更改包名。因此,唯一的解决方案是手动更改它并创建apklibrary项目是正确的方法。创建并处理库项目,每个版本都有一个项目,这取决于库项目。请记住,每个项目都需要正确的Androidmanifest。要更改包名,可以执行以下操作: 你需要复制这个项目。右键单击其中一个,选择“Android工具->重命名应用程序包”Android 如何从一个项目创建多个APK?,android,apk,Android,Apk,我有一个android项目,需要创建多个APK。每个apk之间的唯一区别是程序包名称(例如com.my.package.name)和应用程序字符串名称,这样我就可以在一台设备上安装多个应用程序实例。有更好的方法吗?我曾考虑过创建一个库项目,但我认为可能有一种更简单的方法可以做到这一点。您不能通过编程方式更改包名。因此,唯一的解决方案是手动更改它并创建apklibrary项目是正确的方法。创建并处理库项目,每个版本都有一个项目,这取决于库项目。请记住,每个项目都需要正确的Androidmanife
希望对您有所帮助。您可以试用新的Android构建系统。这里有一些链接
- 明斯克版本
- targetSdkVersion
- 版本代码
- 版本名
- 包名称(覆盖清单中的值)
- 等等
您可以在应用程序级别的渐变中使用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以根据as variant构建apk
你可以根据需要放很多面粉(不同的APK)
您可以通过在src目录下的falour name文件夹中添加相同的res结构来更改应用程序图标和其他Drawable。此外,如果您发现任何与google json相关的问题,只需在src->productFlavor中复制google json文件即可
有关更多信息,请访问我已经在eclipse中完成了这项工作。我宁愿做一些自动化的事情,而不是改变包名30次,然后构建另一个apk。因此,如果我在库项目上进行Ant构建,它会自动为其他依赖项目生成apk吗?您可以为所有项目创建一个Ant构建,但我不知道有什么工具可以做到这一点自动为您“反向依赖项构建”。但是,项目的构建几乎完全相同,因此这不会产生太多额外的工作。为每个项目提供正确的Androidmanifest是什么意思?嗯,您可能认为这是合乎逻辑的(在我看来也是合乎逻辑的)项目从其库项目的清单文件中继承权限、活动、服务、接收者等定义,但事实并非如此。这意味着您必须具有“完整”权限为每个项目定义的清单文件,如果需要进行更改,应在每个文件中进行更改。另外,请注意活动、服务的限定名称,因为清单文件的默认样式是将它们放在包项目包中(以“.”开头)。您好!我想知道,如果我想从同一个源代码(测试版)生成不同的APK,我应该编辑哪些文件。我无法重命名packagename,因为我使用guice,它变得很疯狂:\