Android应用访问库资源

3

我正在处理的项目要求能够构建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 Market 不允许下载所有应用程序并安装它们,只是为了访问它们的资源)。
从概念上讲,如果我可以将那些独立应用程序制作成库,并将它们添加到母应用中,则可以解决此问题。然后,母应用将根据用户选择使用软件包字符串,然后使用该库。到目前为止,我还没有能够解决此问题,并且我找不到相关信息,因此恐怕无法完成。
例如,每个主题应用程序都有一个intro.png,其中包含与应用程序主题相关的图像(例如罗马或希腊图像),想法是访问package_string.intro.png,以便根据用户选择自动访问正确的内容。
1个回答

2
在努力尝试之后,我终于发现资源是被索引的,这意味着在一个应用程序中只存在一个“intro.png”,无论你尝试链接多少个库,你都不能创建对lib1.intro.png或lib2.intro.png的引用。最终,我建立了一个资源管理系统,它可以按需使用“lib1_intro”或“lib2_intro”。虽然不是最干净的解决方案,但是,嗯,我想它可以解决问题... 将我的编辑移动到答案中,因为我阅读了有关接受答案的内容,这是应该这样做的方式,而不仅仅是编辑我的第一个帖子。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接