如何为已使用的权限获取负责任的API调用?

时间:2013-11-27 18:11:04

标签: android api

考虑

PackageInfo info1 = pm.getPackageArchiveInfo(apkPath,PackageManager.GET_PERMISSIONS);

在此声明中,通过使用GET_PERMISSIONS,我可以获得应用程序中使用的所有权限集。

以同样的方式我可以获得API调用吗?

谢谢。我是这个Android编程的新手,如果这是一个简单的问题,请原谅

1 个答案:

答案 0 :(得分:1)

不,你不能通过任何简单的方法获得API调用,甚至可能不是通过一种简单的方法。

如果您有权访问应用程序已安装的.apk(至少在您使用的旧版Android上),您可以通过它阅读明显的平台功能调用。 (这是“静态分析”的一种形式)

然而,Java(以及Dalvik)支持一种称为“反射”的机制,它允许按名称查找和调用函数 - 可以在运行时通过迂回方式或用户或网络输入构建的名称。

系统进程中用于调用功能的许多实际功能最终也是通过名称执行的,这使得在运行时可以添加静态文件中不存在的功能的另一个地方。

最后,Android的原生底层(也可能是DVM)允许一个坚定的程序员动态地将任意“数据”指定为“代码”然后执行它。