java - 有没有办法在 Android 上对 java 进程的部分进行沙箱处理?

标签 java android appdomain

我想在 android 中使用 SDK,但我不希望该 SDK 能够访问我未明确授予它的权限。最重要的是,如果 SDK 抛出未捕获的异常,我不希望它导致我的整个应用程序崩溃。

在 C# 中有一个 AppDomain 的概念,您可以在其中像沙箱一样对待在其中运行的代码,授予(或限制)权限,并且只提供对您明确想要共享的数据的访问。

在 Android 平台的 Java 中有类似这样的东西吗?

最佳答案

这里有两个问题。第一个涉及处理一段不受信任的代码中的异常;只要不受信任的部分是纯 Java,精心编写的 try/catch block 就可以解决这个问题。如果允许 native 代码,那么进程级隔离将无济于事。要在单独的进程中运行代码,请阅读 Android 服务;您可以指定一个服务在指定的进程中运行。然后异常(非托管类型)不会关闭主应用程序。您只会收到“服务已终止”异常。

另一个问题是降低权限集。据我所知,没有办法降低应用程序中的权限集。即使是代理程序也无济于事。如果您发布一个完整的应用程序(在 Android 的意义上)来包装和运行自定义代码,那可能会有所帮助。但是应用程序安装的后勤工作会变得棘手。 Google Market 不支持应用相互依赖或先决条件的概念。

关于java - 有没有办法在 Android 上对 java 进程的部分进行沙箱处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999011/

相关文章:

java - 在 Java Android 应用程序中打开最后一个 fragment View

c# - 创建 AppDomain 并从子文件夹中的程序集调用方法

c# - 尝试在新的 AppDomain 中加载混合的 C# 和 C++/CLI dll 时,从错误的 AppplicationBase 加载 DLL

wpf - 在一个 UI 线程上跨多个 AppDomain 运行 WPF 有什么问题?

java - PST 时间换算

Java字符比较错误

java - ByteBuddy - 转换所有方法

android - 如何将我的数据库拆分为 1 MB 的 block ?

java - ESAPI 无法在 JSP 中工作

android - 用户交互能否在 OnResume 完成之前触发事件?