假设我接管了
Android应用程序的开发,我的老板问我为什么我们的应用程序需要向在Android Market上购买应用程序的用户显示某些权限.
是否有任何工具或技巧可用于确定哪些代码触发每个权限,因此我可以弄清楚为什么我们的应用程序在功能上需要这些权限?特别是,我对这些权限感兴趣:
>电话 – 阅读电话状态和身份
>系统工具 – 检索正在运行的应用程序 – 允许应用程序检索有关当前和最近运行的任务的信息,允许恶意应用程序发现有关其他应用程序的私人信息.
该应用程序是一个GPS跟踪应用程序,为什么可能需要此权限并不明显.
解决方法
这是我如何追踪这些.
步骤1 – 查找AndroidManifest.xml中声明的清单权限
基本上< uses-permission />内的所有内容标签例如:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
第2步 – 在developer.android.com上搜索使用这些权限的类
我们以READ_PHONE_STATE为例,目标是找出哪些包需要此权限.在开发者网站上搜索“READ_PHONE_STATE”的简单搜索开始我们的搜索,我们在这里寻找类,在前5个搜索结果中我看到以下类:
> TelephonyManager
> PhoneStateListener
> android.telephony.TelephonyManager
> android.telephony.PhoneStateListener
步骤3在项目中查找导入这些包的类
一个简单的grep会做,或者在eclipse中的Ctrl-H,文件搜索 – >包含文字
第4步注释导入,看看有什么中断