Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用回滚功能安装多个APK_Android_Adb - Fatal编程技术网

Android 使用回滚功能安装多个APK

Android 使用回滚功能安装多个APK,android,adb,Android,Adb,我正在尝试在一个命令中安装多个APK,我可以做到这一点,但如果其中一个失败,我需要回滚所有应用程序 adb安装-r app1.apk和adb安装-r app2.apk和adb安装-r app3.apk 目标是:全部安装或不安装 有可能吗 非常感谢我建议您阅读每个adb install命令的输出,并查找“Success”一词。当安装失败(缺少“Success”一词)时,继续执行uninstall all命令(您需要通过创建一系列adb uninstall命令来定义该命令)使用monkeyrunne

我正在尝试在一个命令中安装多个APK,我可以做到这一点,但如果其中一个失败,我需要回滚所有应用程序

adb安装-r app1.apk和adb安装-r app2.apk和adb安装-r app3.apk

目标是:全部安装或不安装

有可能吗


非常感谢

我建议您阅读每个
adb install
命令的输出,并查找“Success”一词。当安装失败(缺少“Success”一词)时,继续执行uninstall all命令(您需要通过创建一系列
adb uninstall
命令来定义该命令)

使用
monkeyrunner
(与Android SDK捆绑)怎么样。它将为您处理安装、检测故障以及类似以下内容的python脚本:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()

apks = ['app1.apk', 'app2.apk', 'app3.apk']

#installPackage will return false if it fails
#use a generator to short circuit on failure
generator = (device.installPackage(apk) for apk in apks)

if not all(generator):
    device.removePackage(apk) for apk in apks
我没有检查它是否编译/运行,它可以改进为只卸载已成功安装的,但希望您能理解这一点


您可以查看此github页面。您可以自动安装多个应用。

您的应用程序的
回滚
是什么意思?当然有可能。这只是一个编写脚本的问题。您希望使用哪种脚本语言执行此操作?@JaredBurrows Rollback意味着,如果我有apk1 v1.0,我将尝试安装apk1。v2.0,如果失败,那么我必须安装apk1 v1.0。如果你使用-r,它会在android中自动运行。这里的问题是,我有一个以前的版本,我将删除所有,我想保留原始版本。我有两个应用程序(apk1.apk和apk2.apk)。apk1.apk v1与apk2.apk v1配合良好,apk1.apk v2与apk2.apk v2配合良好。为此,我需要全部更新或不更新任何内容。