Android: как узнать, установлено ли какое-либо приложение в устройстве Android с помощью adb?

Я должен установить приложение для Android с именем пакета, например "com.xyz.game", используя adb. Я хочу автоматизировать процесс с помощью оболочки script. Процесс будет похож, если приложение уже установлено, удалите его (с помощью команды adb uninstall com.xyz.game) и установите с помощью "adb install game.apk" в противном случае просто "adb install game.apk".

Как я могу это достичь?

Ответ 1

[ Обновить]

Согласно (также) правильному ответу ниже, попробуйте grep получить результат из пакетов списка PM.

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


[ Оригинал]

Если приложение уже установлено, и если вы попытаетесь снова установить такое же приложение, adb вернется с ошибкой - Failure [INSTALL_FAILED_ALREADY_EXISTS]. Однако, если вы хотите переустановить уже установленное приложение, используйте параметр -r.

Пример:

adb install -r game.apk

Ответ 2

Попробуйте выполнить grep результат из пакетов списка PM.

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

Вы можете увидеть результат, если он уже установлен.

package:com.xyz.game

Ответ 3

Не нужно использовать grep. Используя следующие команды, вы можете просто проверить, существует ли приложение или нет.

Запустить команду ADB

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

Если приложение уже установлено, то команда вернется,

пакет: [your.package.name]

Иначе он ничего не вернет, т.е. пустую строку.