2014-03-07 28 views
1

由于上this page为什么Android权限必须由开发人员明确声明?

指定,因为彼此,应用 的Android沙箱应用程序必须明确共享资源和数据。他们通过声明 他们需要的额外功能的权限未提供 由基本沙箱,包括访问设备功能,如 相机。

在我看来,在编译源代码时自动检测所需的权限会更有用。通过这种方式,根据应用程序源代码中使用的类和方法,编译器可以检测到所需的权限。那么,为什么Android的权限必须由开发者明确声明呢?

+0

也许是因为通过遍历数以千计的方法来尽量减少系统检测权限的努力 –

+0

@SahilMahajanMj,但无论如何它需要这样做(为了编译它)。我不相信这些开销会很大。 –

+0

@KonradMorawski是的,这是我的一个不好的猜测。 Alex的回答和评论提供了非常好的解释。 –

回答

6

因为开发人员知道他的应用程序拥有哪些权限。

请考虑一下:开发人员不希望他的应用程序访问联系人,但错误地,应用程序访问他们。

如果从代码中检测到权限,但没有明确说明,这样的错误会被忽视。

+1

对于您可能包含的图书馆而言,也可以这样说,并且不想对整个事物进行编码审查。 –

+0

你是对的......但是,如何处理相反的问题(已声明但未使用的权限)?所有显式声明的权限将在应用程序安装期间列出,包括在源代码中实际未使用的权限... – enzom83

+2

然后,如果用户不想安装您的应用程序是因为您请求的权限过多 – banzai86