Je dois installer une application Android avec un nom de paquet tel que "com.xyz.game" en utilisant adb. Je souhaite automatiser le processus à l'aide d'un script Shell. Le processus sera comme si l'app est déjà installée, désinstallez-la (avec la commande adb uninstall com.xyz.game) et installez-la à l'aide de "adb install game.apk", sinon "adb install game.apk".
Comment puis-je atteindre cet objectif?
[ Mettre à jour ]
Selon (également) la réponse correcte ci-dessous, essayez de grep le résultat des packages pm list.
adb Shell pm list packages | grep com.your.app.package
[ Original ]
Si l'application est déjà installée et si vous essayez d'installer à nouveau la même application, adb renverra avec une erreur - Failure [INSTALL_FAILED_ALREADY_EXISTS]
. Toutefois, si vous souhaitez réinstaller l'application déjà installée, utilisez le paramètre -r
.
Ex:
adb install -r game.apk
Essayez grep le résultat des packages pm list.
adb Shell pm list packages | grep com.xyz.game
Vous pouvez voir le résultat s'il est déjà installé.
package:com.xyz.game
Pas besoin d'utiliser grep. En utilisant les commandes suivantes, vous pouvez simplement vérifier si l’application existe déjà ou non.
Exécuter la commande ADB
Adb Shell pm pm packages [votre.package.name]
Si l'application est déjà installée, la commande ci-dessus reviendra,
package: [votre.package.name]
Sinon, il ne retournera rien, c'est-à-dire une chaîne vide.
Android 7.0 a introduit cmd
(un nouveau logiciel basé sur du code natif) qui permet d’interagir avec des services Android tels que PackageManager
beaucoup plus rapidement que les anciens outils basés sur le bytecode Java tels que pm
. Donc, pour les versions récentes d'Android au lieu de adb Shell pm list packages <package.name.substring>
, vous devriez utiliser
adb Shell cmd package list packages <package.name.substring>