我注意到某些应用程序可以扫描你的Android手机并告诉你哪个应用程序正在使用什么库。例如:
Facebook正在使用Android NDK,Android支持库,Google云消息传递。
我的猜测是他们可能使用了 PackageManager , ApplicationInfo , ActivityInfo 等API。
但不知何故,我不确定他们使用哪种特定的API来获得结果。知道他们是怎么做到的吗?
答案 0 :(得分:0)
我不知道该应用程序是否使用“Android支持库”是如何获取信息,但其余部分......请查看PackageManager。获得经理的参考后,您可以获得有关已安装应用的信息:
PackageManager packageManager = getPackageManager();
List<PackageInfo> packages = packageManager.getInstalledPackages(0);
for(PackageInfo package : packages){
String[] permissions = packageInfo.requestedPermissions;
// knowing permission you can conclude, what does app uses:
// GCM - com.google.android.c2dm.permission.RECEIVE is required
// ...
ApplicationInfo app = package.applicationInfo;
String apth = app.nativeLibraryDir;
// based on this information you can conclude whether app uses NDK
}