在安卓系统中,从APK文件加载上下文

7

我正在为Android构建一个组件化的应用程序。简而言之,我希望在运行时加载APK文件并从中执行代码。

我已经成功使用了DexClassLoader来加载和实例化一些类,问题在于读取APK的资源。

我想创建一个自定义的Context对象,可以使用它来加载这些资源(例如LayoutInflater实例),类似于createPackageContext(),但此方法不适用于我的应用程序,因为它只查看已安装的包。


1
这是你可以尝试的内容(我自己没有尝试过,但这是我在查找文档时想到的):PackageManager.getPackageArchiveInfo将返回一个PackageInfo对象,它将允许您获取一个ApplicationInfo。通过该对象,您可以调用PackageManager.getResourcesForApplication来返回一个Resources对象。 - André Oriani
1个回答

1
            InputStream in = getResources()
                .openRawResource(R.raw.fileName);

然后只需从此流中读取。此示例将打开res/raw/fileName.html以进行读取。但是,我不明白为什么要以这种问题方式从自己的apk文件中加载执行类。如果我误解了,并且您需要从其他apk文件中加载,则谁会阻止打开该文件以进行输入并从中读取?它只是一个压缩的ZIP归档文件。我认为您可以构建覆盖数据访问方法的实现,并且您的实例可以包含从中读取数据的文件的引用。


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