Android:如何知道Android设备中是否已经使用adb安装了任何应用程序?

时间:2014-01-03 19:25:45

标签: android shell adb

我要使用adb安装包含名称如“com.xyz.game”的Android应用。 我想使用shell脚本自动化该过程。这个过程就像是已经安装了app,卸载它(使用命令adb uninstall com.xyz.game)并使用“adb install game.apk”安装,否则简单的“adb install game.apk”。

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:16)

尝试grep pm list packages的结果。

adb shell pm list packages | grep com.xyz.game

如果已安装,您可能会看到结果。

package:com.xyz.game

答案 1 :(得分:15)

[更新2 ]

不使用grep

below回答

中提到的

adb shell pm list packages [your.package.name]

[<强>更新

根据下面的(也)正确答案,尝试从pm list packages中获取结果。

adb shell pm list packages | grep com.your.app.package


[<强>原始

如果已安装该应用程序,并且您尝试再次安装相同的应用程序,则adb将返回错误 - Failure [INSTALL_FAILED_ALREADY_EXISTS]。但是,如果要重新安装已安装的应用程序,请使用-r参数。

例如:

adb install -r game.apk

答案 2 :(得分:13)

无需使用grep。使用以下命令,您只需检查应用程序是否已存在。

运行ADB命令

adb shell pm list packages [your.package.name]

如果已经安装了app,则上面的命令将返回

<强>包:[your.package.name]

否则它不会返回任何内容,即空字符串。

答案 3 :(得分:0)

Android 7.0引入了cmd(基于新的本机代码)工具,该工具与PackageManager之类的Android服务进行交互的速度比pm等基于Java字节码的旧工具快得多。因此,对于最新的Android版本,您应该使用

而不是adb shell pm list packages <package.name.substring>
adb shell cmd package list packages <package.name.substring>