可以使用(基于this link)将默认安装设置为SD卡:
对于API14之前的:
adb shell pm setInstallLocation 2
适用于API 14及更高版本:
adb shell pm set-install-location 2 (Android 4.x)
这仅适用于新安装的应用程序(或者您只是手动遍历每个应用程序并将其设置在那里),但我想知道如何将已安装的应用程序重新安装到SD卡中(并且还要回到内部存储。)
我尝试通过ADB读取可用的命令,并尝试运行下一个命令:
adb shell pm install -s -r -i com.example.test
但它不起作用
假设内部存储(或SD卡)上已安装了应用程序,我如何使用ADB将其重新安装到SD卡(或内部)?
答案 0 :(得分:7)
显然,需要提供APK的位置而不是包名。
我在Play Store上安装了VLC以后最终位于内部存储中的
$ adb shell pm install -s -r /data/app/org.videolan.vlc.betav7neon-1.apk
pkg: /data/app/org.videolan.vlc.betav7neon-1.apk
Success
$
然后回到内部存储:
$ adb shell pm install -f -r /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk
pkg: /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk
Success
$
以下是具有-i: specify the installer package name
选项的相应命令。
转到SD卡:
$ adb shell pm install -i "com.android.vending" -s -r /data/app/org.videolan.vlc.betav7neon-1.apk
pkg: /data/app/org.videolan.vlc.betav7neon-1.apk
Success
转到内部存储空间:
$ adb shell pm install -i "com.android.vending" -f -r /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk
pkg: /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk
Success
使用-i
是可选的,但如果不使用,则在移动过程中会丢失安装程序信息:
$ adb shell pm list packages -3 -i
package:org.videolan.vlc.betav7neon installer=com.android.vending
$ adb shell pm install -s -r /data/app/org.videolan.vlc.betav7neon-1.apk
pkg: /data/app/org.videolan.vlc.betav7neon-1.apk
Success
$ adb shell pm list packages -3 -i
package:org.videolan.vlc.betav7neon installer=null
希望这有帮助。