Android,使用外部jar资源

时间:2011-12-12 02:57:47

标签: android resources jar external

我正在开发一个Android应用程序并使用这个很好的类来加载位于应用程序res / raw文件夹中的资源文件,作为Java String:

public class ResourceReader {
    public static String resourceToString(Context context, int id) {
        try {
            Resources res = context.getResources();
            InputStream in_s = res.openRawResource(id);
            byte[] b = new byte[in_s.available()];
            in_s.read(b);
            return new String(b);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

上下文是基于活动的应用程序类,使用R.raw.mytext找到id。资源是在上述文件夹中创建的文件。 在应用程序中使用时,使用此行将文件的内容作为字符串获取是没有问题的: String content = ResourceReader.resourceToString(this,R.raw.mytext);

由于我阅读的资源可能会在其他应用程序中使用,我不仅要将类,还要将资源放入外部JAR文件中。

在eclipse中我可以创建一个android jar文件,包含资源和相关的R类。可以按预期访问与名称关联的整数值,但如何阅读内容?

我需要获取库的资源,而不是应用程序的资源。

resourceToString方法需要一个上下文:

Resources res = context.getResources();

问题是:是否有图书馆背景?我如何获得这种背景? - 或者访问库资源内容的任何其他方法?

1 个答案:

答案 0 :(得分:0)

您可以创建一个Android库。输出应为arr文件,其中包括类和资源。

您可以查看Create an Android library了解详情。

以下是该页面的摘录:

Android库在结构上与Android应用程序模块相同。它可以包含构建应用程序所需的所有内容,包括源代码,资源文件和Android清单。但是,Android库不是编译为在设备上运行的APK,而是编译为Android存档(AAR)文件,您可以将其用作Android应用程序模块的依赖项。与JAR文件不同,AAR文件可以包含Android资源和清单文件,除了Java类和方法外,清单文件还允许您捆绑诸如布局和可绘制对象之类的共享资源。

库模块在以下情况下很有用:

  • 在构建使用某些相同组件(例如活动,服务或UI布局)的多个应用程序时。

  • 在构建具有多个APK变体(例如免费和付费版本)的应用程序时,两者都需要相同的核心组件。

在任何一种情况下,只需将要重用的文件移动到库模块中,然后将库添加为每个应用程序模块的依赖项即可。