Androidアプリを「com.xyz.game」のようなパッケージ名でadbを使用してインストールします。シェルスクリプトを使用してプロセスを自動化したいと思います。このプロセスは、アプリがすでにある場合のようになります。インストールされたら、それをアンインストールし(コマンドadb uninstall com.xyz.gameを使用)、「adb install game.apk」を使用してインストールします。それ以外の場合は、単純な「adb install game.apk」を使用します。
どうすればこれを達成できますか?
[更新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
Pm listパッケージの結果をgrepしてみてください。
adb Shell pm list packages | grep com.xyz.game
すでにインストールされている場合は、結果が表示される場合があります。
package:com.xyz.game
Grepを使用する必要はありません。次のコマンドを使用すると、アプリケーションがすでに存在するかどうかを簡単に確認できます。
ADBコマンドを実行する
adb Shell pm list packages [your.package.name]
アプリがすでにインストールされている場合、上記のコマンドが返されます、
package:[your.package.name]
それ以外の場合は何も返しません。つまり、空の文字列です。
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>