我正在为 Android 构建一个基于组件的应用程序。简而言之,我想在运行时加载一个 APK 文件并从中执行代码。
我使用 DexClassLoader
成功地加载和实例化了一些类,问题在于读取 APK 的资源。
我想创建一个自定义的 Context
对象,我可以用它来加载这些资源(例如使用 LayoutInflater
实例),类似于 createPackageContext ()
,它不适用于我的应用程序,因为它只查看已安装的包。
最佳答案
InputStream in = getResources()
.openRawResource(R.raw.fileName);
然后就从这个流中读取。此示例将打开 res/raw/fileName.html 以供阅读。但是,我不明白为什么要以这种有问题的方式从您自己的 apk 文件中加载要执行的类。如果我误解了你需要从其他一些 apk 文件加载,那么 - 谁会阻止打开该文件进行输入并从中读取?它只是一个压缩 ZIP 存档。我认为您可以构建覆盖数据访问方法的实现,并且您的实例可以包含对从中读取数据的文件的引用。
关于android - 从 Android 中的 APK 文件加载上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293114/