Android 如何为已使用的权限获取负责任的API调用?
考虑Android 如何为已使用的权限获取负责任的API调用?,android,api,Android,Api,考虑 PackageInfo info1=pm.getPackageArchiveInfo(apkPath,PackageManager.GET_权限) 在此语句中,通过使用GET_PERMISSIONS我可以获得应用程序中使用的所有权限集 我可以用同样的方法获得API调用吗 多谢各位。如果这是一个简单的问题,请原谅,我对android编程是新手。不,你不能通过任何简单的方法获得API调用,甚至可以说,也不能通过硬方法获得API调用 如果您可以访问应用程序的installed.apk(至少在较旧
PackageInfo info1=pm.getPackageArchiveInfo(apkPath,PackageManager.GET_权限)代码>
在此语句中,通过使用GET_PERMISSIONS
我可以获得应用程序中使用的所有权限集
我可以用同样的方法获得API调用吗
多谢各位。如果这是一个简单的问题,请原谅,我对android编程是新手。不,你不能通过任何简单的方法获得API调用,甚至可以说,也不能通过硬方法获得API调用
如果您可以访问应用程序的installed.apk(至少在较旧的Android版本上是这样),那么您可以通读它,查看平台功能的明显调用。(这是一种“静态分析”)
然而,Java(以及Dalvik)支持一种称为“反射”的机制,该机制允许按名称查找和调用函数——可以在运行时通过迂回的方式或用户或网络输入构造名称
用于在系统进程中调用功能的许多实际功能最终也是按名称执行的,这使得在运行时可以在另一个地方添加静态文件中不存在的功能
最后,Android的本机底层(也可能是DVM)允许有决心的程序员动态地将任意“数据”指定为“代码”,然后执行它。定义“api调用”?如果你指的是其他不是的东西,那么我很确定答案是否定的。在一些在线静态分析器网站上,他们列出了api调用。这怎么可能?试试任何apk反编译器。但是不要忽视静态分析的严重的、基本的局限性,它不能只捕获运行时“构造”的调用。