我想在android中使用SDK,但我不希望该SDK有任何访问权限的权限,这是我没有显式授予它的。最重要的是,如果SDK抛出一个未捕获的异常,我不希望它导致我的整个应用程序崩溃。
在C#中有AppDomain的概念,您可以将在其中运行的代码视为沙箱,授予(或限制)权限,并且只提供对您显式想要共享的数据的访问。
在Android平台上的Java中有这样的东西吗?
发布于 2012-04-04 02:36:01
这里有两个问题。第一个处理不受信任的代码中的异常;只要不受信任的代码是纯Java的,精心编写的try/catch块就应该负责这一点。如果本机代码是允许的,那么除了进程级隔离之外,没有什么是有帮助的。要在单独的进程中运行代码,请阅读Android服务;您可以指定一个服务在指定的进程中运行。那么异常(非托管类型)将不会关闭主应用程序。你只会得到一个“服务已死”的异常。
另一个问题是降低权限集。据我所知,没有办法降低应用程序中的权限集。即使是代理进程也无济于事。如果你发布了一个完整的应用程序(在Android的意义上)来包装和运行定制代码,这可能会有所帮助。但应用程序安装的后勤将变得棘手。Google Market并不支持应用程序相互依赖或先决条件的概念。
发布于 2012-04-04 02:20:59
你给你的应用程序的所有权限都是允许的权限,否则它几乎不会有任何权限。您可以在Manifest.xml中设置权限,但不能设置其他类型的权限。
https://stackoverflow.com/questions/9999011
复制相似问题