我想在android中使用SDK,但我不希望该SDK有权限访问我没有明确给出的权限。最重要的是,如果SDK引发未捕获的异常,我不希望它将整个应用程序关闭。有没有办法在Android上对沙盒进行部分的java进程?
在C#中有一个AppDomain的概念,您可以在其中像运行沙箱一样处理在其中运行的代码,授予(或限制)权限,并且只提供对您明确想要共享的数据的访问。
在Java平台上有没有像Android平台一样的工作?
我想在android中使用SDK,但我不希望该SDK有权限访问我没有明确给出的权限。最重要的是,如果SDK引发未捕获的异常,我不希望它将整个应用程序关闭。有没有办法在Android上对沙盒进行部分的java进程?
在C#中有一个AppDomain的概念,您可以在其中像运行沙箱一样处理在其中运行的代码,授予(或限制)权限,并且只提供对您明确想要共享的数据的访问。
在Java平台上有没有像Android平台一样的工作?
这里有两个问题。第一个涉及处理一段不可信代码中的异常;一个精心编写的try/catch块应该注意这一点,只要不可信的部分是纯Java。如果允许使用本地代码,那么没有任何缺少进程级别隔离的帮助。要在单独的进程中运行代码,请阅读Android服务;你可以指定一个服务在指定的过程中运行。然后,异常(非托管类)不会降低主应用程序。你会得到一个“服务已经死亡”的例外。
另一个问题是降低权限集。就我所知,无法降低应用程序中的权限集。即使代理过程也无济于事。如果您运送整个应用程序(在Android的意义上来说)包装和运行自定义代码,这可能会有所帮助。但应用程序安装的后勤将变得棘手。谷歌市场并不支持应用程序相互依赖或先决条件的概念。
关于服务的好处,我认为这也会吸引图书馆带来单独线程(这是一个)的情况。虽然许可是不幸的。我打算把这个开放时间延长一些,也许有一些魔术调用没有被高度宣传,* *会起作用。 – Hounshell 2012-04-03 18:38:49
如果你没有高度宣传的东西,开始挖掘Android的来源。 – 2012-04-04 18:26:21
您赋予应用程序的所有权限都是允许的权限,否则它几乎不会拥有权限。 您在Manifest.xml
中设置了您的权限,否则您无法设置其他类型的权限。
是的,我希望我使用的SDK只能访问这些权限的子集。 – Hounshell 2012-04-03 18:22:12
为什么这个问题-1我已经投了票 – Monojit 2012-04-03 18:58:42
:-)谢谢。由于某种原因,它降至-2。仇恨者必须讨厌。 – Hounshell 2012-04-03 19:05:56