我用android开发了三个应用程序,它们的主要功能是相同的,但UI看起来不同。图像和屏幕的背景颜色是不同的。
NOw,我想创建一个单一的代码库,从中我可以为3个应用程序生成多个.apk文件。
我尝试为这3个应用程序创建3个不同的src文件夹包。但我不知道如何为这些应用程序设置res文件夹。
需要指针来创建一个单一的代码库,我们可以从中生成多个.apk文件,其中只包括各自的src和res文件夹。
发布于 2011-11-15 20:58:49
我认为最好的选择是使用ant
,您需要为每个构建添加一个ant目标并更改资源文件夹。如果使用生成的build.xml,res文件夹的定义类似于此<property name="resource.absolute.dir" location="res" />
,因此您需要覆盖该‘ll
发布于 2011-11-15 21:25:21
你不能把你所有的公共代码放到一个库项目中,然后从包含相关资源的3个独特项目中引用该项目吗?
更新:使用Gradle构建系统时,这个答案现在已经过时了。
发布于 2011-11-15 21:23:07
为什么不使用一个单独的应用程序,它根据用户设置的SharedPreferences值或安装时的上下文执行三种不同的操作。如果你真的想分开,你可以有三个不同的活动,你可以决定从一个静默的主活动中启动哪一个,该活动重定向到任何一个不同的活动。
另一种选择是有一个独特的活动,它在onCreate
时从3个不同的布局动态地膨胀自己。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (...custom check for layout... equals(layout1)) {
setContentView(R.layout.main_layout1);
} else if (... equals(layout2)) {
setContentView(R.layout.main_layout2);
} else if (... equals(layout3)) {
setContentView(R.layout.main_layout3);
} else {
throw new IllegalStateException("Unknown layout!");
}
... your onCreate stuff....
}
它将使代码维护更容易(只需修改一个代码源,只需维护一个版本列表和变更集)
点击这里:How to use SharedPreferences in Android to store, fetch and edit values
https://stackoverflow.com/questions/8136506
复制相似问题