首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android -来自单个代码库的多个.apk文件

Android -来自单个代码库的多个.apk文件
EN

Stack Overflow用户
提问于 2011-11-15 20:42:43
回答 4查看 7.1K关注 0票数 16

我用android开发了三个应用程序,它们的主要功能是相同的,但UI看起来不同。图像和屏幕的背景颜色是不同的。

NOw,我想创建一个单一的代码库,从中我可以为3个应用程序生成多个.apk文件。

我尝试为这3个应用程序创建3个不同的src文件夹包。但我不知道如何为这些应用程序设置res文件夹。

需要指针来创建一个单一的代码库,我们可以从中生成多个.apk文件,其中只包括各自的src和res文件夹。

EN

回答 4

Stack Overflow用户

发布于 2011-11-15 20:58:49

我认为最好的选择是使用ant,您需要为每个构建添加一个ant目标并更改资源文件夹。如果使用生成的build.xml,res文件夹的定义类似于此<property name="resource.absolute.dir" location="res" />,因此您需要覆盖该‘ll

票数 1
EN

Stack Overflow用户

发布于 2011-11-15 21:25:21

你不能把你所有的公共代码放到一个库项目中,然后从包含相关资源的3个独特项目中引用该项目吗?

更新:使用Gradle构建系统时,这个答案现在已经过时了。

票数 1
EN

Stack Overflow用户

发布于 2011-11-15 21:23:07

为什么不使用一个单独的应用程序,它根据用户设置的SharedPreferences值或安装时的上下文执行三种不同的操作。如果你真的想分开,你可以有三个不同的活动,你可以决定从一个静默的主活动中启动哪一个,该活动重定向到任何一个不同的活动。

另一种选择是有一个独特的活动,它在onCreate时从3个不同的布局动态地膨胀自己。

代码语言:javascript
复制
@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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8136506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档