事件背景,在一次测试的时候,自己反复安装卸载同一个应用是,有时会安装失败并返回INSTALL_FAILED_INSUFFICIENT_STORAGE,如下图:
,这个是说我的手机内存空间不够导致的,但是当我查询手机空间时还很充足呢,看来并不是存储空间导致的问题。android APK 安装流程
- 首次安装应用程序时:
APK文件会保存在/ data / app / packageName - 1 . apk目录下 ( 1 . apk )
- 更新应用程序时:
更新后的APK文件保存为: / data / app / packageName - 2 . apk ( 2 . apk )
第一个版本( 1 . apk )被删除。
- 下一次更新:
新的APK被保存为( 1 . APK )并且( 2 . APK )被删除,然后这一直重复。
我们大多数人遇到的问题发生在应用程序更新时,但删除旧APK失败。这本身并未导致更新失败,但却导致/ data / app中有两个APK文件。 下次尝试更新应用程序时,系统无法移动其临时文件,因为( 1 . apk )和( 2 . apk )都不是空的。
解决方法
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});
}
复制代码