web-dev-qa-db-ja.com

Android:Android adbを使用するデバイスにすでにアプリケーションがインストールされているかどうかを知る方法は?

Androidアプリを「com.xyz.game」のようなパッケージ名でadbを使用してインストールします。シェルスクリプトを使用してプロセスを自動化したいと思います。このプロセスは、アプリがすでにある場合のようになります。インストールされたら、それをアンインストールし(コマンドadb uninstall com.xyz.gameを使用)、「adb install game.apk」を使用してインストールします。それ以外の場合は、単純な「adb install game.apk」を使用します。

どうすればこれを達成できますか?

21
dg_no_9

[更新2]

grepを使用しない場合

adb Shell pm list packages [your.package.name] 回答で述べたとおり

[更新]

以下の(また)正解によると、pm listパッケージの結果をgrepしてみてください。

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


[元の]

アプリケーションがすでにインストールされている場合、同じアプリケーションを再度インストールしようとすると、adbはエラー-Failure [INSTALL_FAILED_ALREADY_EXISTS]を返します。ただし、すでにインストールされているアプリを再インストールする場合は、-rパラメータを使用します。

例:

adb install -r game.apk
20
Joel Fernandes

Pm listパッケージの結果をgrepしてみてください。

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

すでにインストールされている場合は、結果が表示される場合があります。

package:com.xyz.game
18
NTj

Grepを使用する必要はありません。次のコマンドを使用すると、アプリケーションがすでに存在するかどうかを簡単に確認できます。

ADBコマンドを実行する

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

アプリがすでにインストールされている場合、上記のコマンドが返されます、

package:[your.package.name]

それ以外の場合は何も返しません。つまり、空の文字列です。

14
Android

Android 7.0はcmd(新しいネイティブコードベース)ツールを導入しました。これにより、Android PackageManagerのようなサービスを以前よりもはるかに高速に操作できますJava pmのようなバイトコードベースのツール。したがって、最近のAndroidの代わりにadb Shell pm list packages <package.name.substring>使用する必要があります

adb Shell cmd package list packages <package.name.substring>
1
Alex P.