我想将我的应用程序的两个版本添加到Android Market,一个用于几美分,一个免费版本,包含广告。这是一种非常普遍的做法。
我目前正在将AdMod构建到我的应用中,似乎我必须更改相当多的文件,所以最好为我的应用制作单独的版本。
你是如何实现这一目标的?分店?不同的存储库?有没有人找到一种方法以合理的方式将两个应用程序保存在同一个存储库中?
标题没有拼写错误,我的意思是“实现”,即人们如何管理这两个版本,而不是他们如何将它们添加到市场。
答案 0 :(得分:8)
这种事情是一场彻头彻尾的噩梦 - 不幸的是,Android构建系统并没有真正支持它。
我们通过将99%的应用程序代码放在库项目中来实现。然后,我们为每个不同版本的应用程序创建一个应用程序项目,每个版本都使用该库。
如果我们需要不同版本的应用程序以不同的方式运行,我们目前通过在运行时查询不同的资源来实现这一目标。但是,我们正在通过RoboGuice转向使用依赖注入。
有些元素可以很好地工作,而其他元素则不然。例如,有必要复制AndroidManifest.xml文件,这可能容易出错(例如,很容易将新活动添加到一个清单而忘记在其他清单中执行此操作)。不幸的是,这是一个烂摊子,但是我们发现的最不好的解决方案。
就个人而言,我强烈建议不要使用分支来达到这个效果。它们最初可以很好地工作,但很快就会成为维护的噩梦。
使用库的一个好处是我们发现它使测试变得更加容易。有关如何进行此设置的示例,请参阅:
http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/
答案 1 :(得分:2)