所以我的申请即将发布。我们计划发布两个版本,一个基于广告的免费播放解锁版本和一个付费完全解锁版本。我设置了代码,我可以简单地在启动时设置一个标志来启用/禁用广告并锁定/解锁所有功能。所以从字面上看,这些版本之间只有一行代码会以不同的方式执行。
为了发布两个独立的应用程序,它们需要不同的包名,所以我的问题是:有没有一种简单的方法来重构我的应用程序的包名? Eclipse 的重构工具不解析生成的 R 文件或布局和 list 文件中的任何 XML 引用。我尝试使用原始源作为源创建一个新项目,但我无法引用 Assets 和资源,并且我希望避免重复我的任何代码和 Assets 。手动重构它并不是一个巨大的痛苦,但我觉得必须有更好的方法来做到这一点。有人对此有一个优雅的解决方案吗?
编辑/回答:
对于我的情况,我发现只使用项目 -> Android 工具 -> 重命名应用程序包是完全可以接受的。我不知道这存在,我觉得现在发布这个是个白痴。感谢大家的回答和评论,请随时投票结束。
最佳答案
在 Android Studio 中使用 build.gradle 非常简单。阅读 productFlavors .这是一个非常有用的功能。只需在 build.gradle 中添加以下行:
productFlavors {
lite {
packageName = 'com.project.test.app'
versionCode 1
versionName '1.0.0'
}
pro {
packageName = 'com.project.testpro.app'
versionCode 1
versionName '1.0.0'
}
}
在这个例子中,我添加了两种产品风格:第一种是精简版,第二种是完整版。每个版本都有自己的 versionCode 和 versionName(用于 Google Play 发布)。
在代码中只需检查 BuildConfig.FLAVOR:
if (BuildConfig.FLAVOR == "lite") {
// add some ads or restrict functionallity
}
要在设备上运行和测试,请使用 Android Studio 中的“构建变体”选项卡在版本之间切换:
关于android - 从相同的代码创建应用程序的免费/付费版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590203/