1、通過PackageManager:
try { PackageManager pm = getPackageManager(); ApplicationInfo ai = pm.getApplicationInfo("com.speedsoftware.rootexplorer", PackageManager.GET_ACTIVITIES); Log.d("!!", "!!" + ai.uid); Toast.makeText(MainActivity.this, Integer.toString(ai.uid,10), Toast.LENGTH_SHORT).show(); } catch (NameNotFoundException e) { e.printStackTrace(); }
效果:
還有2種辦法,不是通過編程,可以直接由adb shell查詢
2、cat /proc/<pid>/status
當我們確認需要查得進程的PID之后,讀取打印其status文件
效果圖:
不過這有一個缺點是,必須得進程啟動的時候才能看。
3、cat /data/system/packages.xml (或者package.list)
Android安裝的程序在這個列表下會顯示出來,輸入adb shell cat /proc/system/packages.xml (要過濾內容加findstr,或者重定向輸出,文件內容很多)可以讀取查詢。
效果圖: