我正在处理的项目要求能够构建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,以便根据用户选择自动访问正确的内容。