事件背景,在一次測試的時候,本身反覆安裝卸載同一個應用是,有時會安裝失敗並返回INSTALL_FAILED_INSUFFICIENT_STORAGE,以下圖: android
APK文件會保存在/ data / app / packageName - 1 . apk目錄下 ( 1 . apk )bash
更新後的APK文件保存爲: / data / app / packageName - 2 . apk ( 2 . apk )app
第一個版本( 1 . apk )被刪除。測試
新的APK被保存爲( 1 . APK )而且( 2 . APK )被刪除,而後這一直重複。ui
咱們大多數人遇到的問題發生在應用程序更新時,但刪除舊APK失敗。這自己並未致使更新失敗,但卻致使/ data / app中有兩個APK文件。 下次嘗試更新應用程序時,系統沒法移動其臨時文件,由於( 1 . apk )和( 2 . apk )都不是空的。spa
public static Process uninstall(String packageName) {
String cmd = "pm uninstall " + packageName;
String cmd1 = "rm -rf /data/app/" + packageName + "-*"; //清除卸載不乾淨的問題
return Shell.execShells("su", new String[]{cmd, cmd1});
}
複製代碼