我想将我的应用程序的两个版本添加到 Android 市场,一种只需几美分,另一种是带有广告的免费版本。这是一种非常常见的做法。
我目前正在将 AdMod 构建到我的应用程序中,看来我必须更改相当多的文件,因此最好为此制作一个单独的应用程序版本。
你如何实现这一目标?分店?不同的存储库?有没有人找到一种方法以合理的方式将两个应用程序保存在同一个存储库中?
标题没有拼写错误,我的意思是“实现”,即人们如何管理这两个版本,而不是他们如何将它们添加到市场。
这种事情完全是一场噩梦——不幸的是 Android 构建系统并没有真正以任何好的方式支持它。
我们通过将应用程序 99% 的代码放在库项目中来实现这一点。然后,我们为应用程序的每个不同版本创建一个应用程序项目,每个版本都使用该库。
当我们需要不同版本的应用程序有不同的行为时,我们目前通过在运行时查询不同的资源来实现这一点。然而,我们正在转向通过 RoboGuice 使用依赖注入。
其中有些元素工作得相当好,而另一些则不然。例如,有必要复制 AndroidManifest.xml 文件,这可能容易出错(例如,很容易将新活动添加到一个清单中,而忘记在其他清单中执行此操作)。不幸的是,这是一团糟,但这是我们找到的最不糟糕的解决方案。
就我个人而言,我强烈建议不要使用分支来实现这种效果。它们最初可以很好地工作,但很快就会成为维护的噩梦。
使用库的另一个好处是我们发现它使测试变得更加容易。有关如何设置的示例,请参阅:
http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/ http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)