我正在开发的项目要求可以构建N个独立应用程序,但也需要一个额外的大应用程序,其中包含一个将执行其中一个的选择菜单。
这些应用程序之间的区别主要是资源和XML,因此它们都使用公共库来响应资产和XML中提供的信息。
问题在于“母亲”应用程序。它必须能够使用其中一个独立资源集来使用公共库。我意识到我可以使用以下方法访问其他应用程序资源:
Resources R2 = getPackageManager().getResourcesForApplication("com.example.appa");
int id = R2.getIdentifier("image", "drawable", "com.example.appa");
Drawable myDrawable = R2.getDrawable(id);
这实际上解决了这个问题,我可以向库提供一个包字符串,以便知道在哪里查找资源。
问题是,为了实现这一点,我需要在设备上安装这些独立应用程序,而这是我无法做到的事情(将其视为测验应用程序,独立应用程序只有一个主题,而“母亲”应用程序允许访问所有不同的主题,据我所知,Android市场将不允许下载所有应用程序并安装它们,以便我可以访问他们的资源。)
从概念上讲,如果我可以将这些独立的应用程序作为库并将它们添加到母版应用程序中,则可以解决此问题。然后,母应用程序将根据用户选择使用包字符串,然后使用该库。到目前为止,我还没有能够解决这个问题,我无法找到有关这方面的信息,所以我担心这不可能做到。
例如,每个主题应用程序都有一个intro.png,其中包含有关应用主题的图像(例如罗马或希腊图像),其想法是访问package_string.intro.png以便它自动访问正确的一个取决于用户的选择。
答案 0 :(得分:2)
在努力做到这一点之后,我终于发现资源已编入索引,这意味着一个应用程序中只存在一个“intro.png”,无论您尝试链接多少个库,都无法创建对lib1.intro的引用.png或lib2.intro.png。我最终构建了一个资源管理器系统,可以根据需要使用“lib1_intro”或“lib2_intro”。不是最干净的解决方案,但是,我认为它有效......
在我阅读有关接受答案的内容时,将我的编辑移至答案,这就是它应该如何完成,而不仅仅是编辑我的第一篇文章