【问题标题】:Add-on APK module using resources from the main app APK使用来自主应用 APK 的资源的附加 APK 模块
【发布时间】:2014-10-28 23:25:38
【问题描述】:

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

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

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

我能否以某种方式从com.app.module.m1 访问com.app 中定义的资源?

【问题讨论】:

    标签: android


    【解决方案1】:

    使用这些方法:
    public Resources getResourcesForApplication(String pkgName); in PackageManager
    public int getIdentifier(String name, String defType, String defPackage); in 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();
    }
    

    【讨论】:

    • XML 怎么样?我期待使用@com.app:string/string_id,但它被突出显示为错误。
    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2022-10-04
    相关资源
    最近更新 更多