事件背景,在一次测试的时候,本身反复安装卸载同一个应用是,有时会安装失败并返回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});
}
复制代码