Android中級篇之區分系統程式和安裝程式

2021-06-13 01:33:42 字數 1607 閱讀 7401

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

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

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

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

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

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

? 1 23

4567

89

10packagemanager 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

3456

78

9/**

* device's system image.

*/

if0)

//系統程式

else

//不是系統程式

------iphone------------

1.最近在研究iphone,發現在iphone上要達到這樣的功能還挺麻煩的啊:

Android中區分系統程式和安裝程式

在google上輸入以上的關鍵字 android,可以搜到的 listpacks getpackagemanager getinstalledpackages 0 雖然,有些 號稱可以過濾掉系統自身的應用程式,但是只要細看 就會發現,好像裡面的那個布林變數沒有起到什麼過濾的作用。方法一 通過獲取的安...

Android電話系統之概述篇

android 系統之概述篇 首先拋開android 的一切概念來研究一下 系統的最基本的描述。我們的手機首先用來打 的,隨後是需要乙個 本,隨後是 pim,隨後是網路應用,隨後是雲計算,隨後是想我們的手機無所不能,替代 pc。但是作為乙個 的基本功能如下 0 撥叫 接聽 結束通話 傳送簡訊,網路連...

log4j配置,區分系統日誌和業務日誌

最近專案中遇到乙個場景,要把具體業務資料打成日誌,故想到用log4j來配置,將系統日誌和業務日誌列印到不同的檔案裡,具體配置示例如下 配置系統日誌,與正常配置一樣 log4j.rootlogger info,info log4j.logger info info,info info org.apac...