我注意到有些应用程序可以扫描你的安卓手机并告诉你哪个应用程序正在使用什么库。例如:
Facebook 正在使用 Android NDK、Android 支持库、Google Cloud Messaging。
我的猜测是他们可能使用了PackageManager、ApplicationInfo、ActivityInfo等API。
但不知何故,我不确定他们使用哪个特定的 API 来获得结果。知道他们是怎么做到的吗?
我不知道应用程序是否使用“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
}