我想从不受信任的来源加载动态类。
我发现本教程使用DexClassLoader加载动态类。如何防止加载的类侵入我的数据库或对我的应用程序造成任何损害?可能吗?
我想从不受信任的来源加载动态类。
我发现本教程使用DexClassLoader加载动态类。如何防止加载的类侵入我的数据库或对我的应用程序造成任何损害?可能吗?
你引用的文章有点过时了。SDK 的 build-tools 目录中的dx
脚本是一种更简单的添加classes.dex
文件的方法;只需将代码导出到 .jar 文件,然后运行dx --dex --output result.jar exported.jar
.
但这并不能回答你的问题!这是我自己看过的东西。我还没有我认为的明确答案,但我肯定还没有看到任何方法来沙盒你的应用程序的一部分:你加载的任何插件都将使用你的应用程序的权限运行。到目前为止,我提出的最佳解决方案是在单独的进程中运行您的插件,权限有限,但这当然有其自身的问题:
View
来自子进程的 a添加到ViewGroup
来自主机进程的 a。