使用来自主应用APK的资源的附加APK模块

时间:2014-10-28 23:25:38

标签: android

我有一个应用程序,例如。 com.app。我还有一个可选模块com.app.module.m1。 可选模块使用主应用程序中已存在的大量资源,主要是字符串和drawable。

模块本身是没有意义的,不会运行(它只是一个只能由主应用程序启动的组件集合)。没有启动器图标,所有入口点都需要signature级权限。

如果可能的话,我宁愿不复制这些资源,只使用主应用程序中的资源。

我可以以某种方式访问​​com.appcom.app.module.m1中定义的资源吗?

1 个答案:

答案 0 :(得分:0)

使用这些方法:
public Resources getResourcesForApplication(String pkgName);中的PackageManager public int getIdentifier(String name, String defType, String defPackage);中的Resources

例如,如果要在包“com.app”中获取名为“app_name”的字符串资源。

try{
    Resources res = pm.getResourcesForApplication("com.app");
    int resId = res.getIdentifier("app_name", "string", "com.app");
    if(resId > 0)
        String mainAppName = getResources().getText(resId);
} catch (NameNotFoundException e) {
    e.printStackTrace();
}