android獲取安裝的應用程式

2021-08-26 19:37:15 字數 1761 閱讀 5291

在google上輸入以上的關鍵字+ android,可以搜到的**:?

1listpacks = getpackagemanager().getinstalledpackages(0);

雖然,有些**號稱可以過濾掉系統自身的應用程式,但是只要細看**就會發現,好像裡面的那個布林變數沒有起到什麼過濾的作用。

方法一:通過獲取的安裝包(包括安裝的與系統自身的應用程式),對其android.content.pm.packageinfo的packagename 進行過濾,

但是anrodi與google的包比較容易過濾掉,但需要對不同產商進行適配;

由於普通的程式是無法讀取這兩個資料夾的,需要root許可權吧,因此該方法也行不通(用file.listfiles() + android.permission.factory_test 許可權 還是不能列舉出檔案)?

12

3

4

5

6

7

8

9

10

packagemanager pckman = getpackagemanager();

listpacks = pckman.getinstalledpackages(0);

count = packs.size();

string name;

intinstallednum =0;

for(inti =0; i < count; i++)

方法三、可以通過uid來過濾系統系統的安裝包,因為android系統中的uid從 1000 ~ 9999 都是給系統程式保留的,所以只要判斷package的uid > 10000即可判定該程式是非系統程式。?

12

if10000)

//非系統程式

uid是程式在安裝的時候由系統分配的。

方法四:這個方法應該是最優的。?

12

3

4

5

6

7

8

9

/**

* device's system image.

*/

if0)

//系統程式

else

//不是系統程式

**:

Android 獲取應用簽名

android studio中獲取應用簽名通過在as的terminal中,keystore路徑下執行 1 debug版本 android studio會預設生成乙個debug.keystore簽名檔案,它的預設位置在 home android debug.keystore 2 release版本 首...

ADB獲取Android應用的APK包

詳細過程了解可以參照 2 可以通過先在手機中啟動相應的應用,使該應用位於前台。通過指令 adb shell dumpsys window findstr mcurrentfocus可以獲取到 3 通過packagemanager 獲取整個應用列表然後在自己選擇 adb shell pm list p...

Android實現獲取系統應用列表

android系統為我們提供了很多服務管理的類,包括activitymanager powermanager 電源管理 audiomanager 音訊管理 等。除此之外,還提供了乙個packagemanger管理類,它的主要職責是管理應用程式包。通過它,我們就可以獲取應用程式資訊。packagema...