安卓開發之清理手機應用程式快取

2021-06-21 12:59:20 字數 1486 閱讀 4443

清理手機應用程式快取。

拿到模組後,先實現ui介面。介面實現後開始思考整個模組要實現的功能,然後是要使用的api。

第一步:先拿到包管理器

packagemanager pm=getpackagemanager();

第二步:利用包管理器拿到所有安裝在手機上的apk包資訊的集合

pm.getinstalledpackages(0);

第三步:遍歷包資訊  檢視每個包資訊的快取資訊。

第四步:查詢原始碼後我們知道了通過包管理的getpackagesizeinfo方法可以得到應用程式的快取大小。

getpackagesizeinfo(string packagename, ipackagestatsobserver observer)

第五步:由於這個方法加了這樣乙個註解「@hide」,所以被隱藏了,所以我們要用反射來使用這個方法。

method method=null;

method methods = packagemanager.class.getmethods();

for(method m:methods)

}第六步:得到這個方法後,我們知道使用這個方法需要乙個服務的介面物件,所以我們應該得到這個物件,

我們查詢原始檔得到aidl檔案複製到工程裡,然後建立介面物件。

ipackagestatsobserver.aidl    ipackagedataobserver.aidl

使用遠端服務需要aidl檔案,找到aidl檔案後建好相應的包名後,就可以開始使用這個方法了。

第七步:實現ipackagestatsobserver介面的實現類。

通過原始碼我們已經知道通過packagestats可以得到應用程式的大小,快取大小,**的大小。

class mydataobserver extends ipackagestatsobserver.stub

}第八步:開始實現邏輯,更新ui。

第九步:需要許可權。get_package_size

第十步:一鍵清理全部快取

利用反射得到清理快取的方法freestorageandnotify(long freestoragesize, ipackagedataobserver observer)

packagemanager pm = getpackagemanager();

listinstalledpackages = pm.getinstalledpackages(0);

method methods = packagemanager.class.getmethods();

method method = null;

for(method m:methods)

}for(packageinfo packageinfo:installedpackages) catch (exception e)

}class mydataobserver extends ipackagestatsobserver.stub

}

安卓應用程式部分

android 應用程式有鬆散耦合的元件組成,並使用程式manifest繫結在一起,應用程式manifest秒速了每乙個元件他們之間的互動方式,還用於指定應用陳旭資料來源 其硬體和平台要求 外部庫以及必須的許可權 activity應用程式表示層 service應用程式中不可見的工作這。被用於執行一些...

安卓應用程式混淆

應用程式混淆 防止程式被反編譯。步驟 1.將專案下的 project.properties 檔案的 proguard.config tools proguard proguard android.txt proguard project.txt 行取消注釋。並修改為 proguard.config ...

4 3 安卓應用程式簽名

11 本文主要講解android應用程式簽名相關的理論知識,包括 什麼是簽名 為什麼要給應用程式簽名 如何給應用程式簽名等。1 什麼是簽名?如果這個問題不是放在android開發中來問,如果是放在乙個普通的版塊,我想大家都知道簽名的含義。可往往就是將一些生活中常用的術語放在計算機這種專業領域,大家就...