Команды ADB, о которых должен знать каждый опытный пользователь!

В Android есть удобный инструмент, доступный разработчикам, который называется Android Debug Bridge или сокращенно ADB. Он используется в Android Studio и вручную разработчиками Android для установки и тестирования приложений на смартфонах Android и эмулируемых устройствах Android.

Но ADB может многое сделать, и большая часть этого полезна не только для разработчиков. Даже если вы не разработчик и читаете эту статью, есть большая вероятность, что вы использовали ADB один или два раза для установки приложения или настройки разрешения. Но это еще не все, для чего можно использовать ADB. Продолжайте читать, чтобы узнать о некоторых советах и ​​рекомендациях по использованию ADB, о которых вы, возможно, не знали.

Примечание: на вашем компьютере должен быть запущен и запущен ADB. Обязательно ознакомьтесь с нашей статьей о том, как установить ADB, если вам нужна помощь.


Доступ к оболочке

Если вы раньше использовали ADB, возможно, вы привыкли запускать команды в одной строке. Но вы также можете использовать ADB, чтобы открыть оболочку терминала на вашем устройстве и напрямую запускать команды. И это легко!

В вашем терминале или окне командной строки:

adb shell

Затем вас поприветствует $ символ, где вы можете запускать команды прямо на вашем устройстве.

Оболочка ADB


Список установленных приложений через ADB

Чтобы увидеть установленные приложения на вашем устройстве, вы можете использовать следующую команду:

adb shell pm list packages

Это вернет список имен пакетов установленных приложений, каждое из которых находится в отдельной строке с добавлением package:.

Список установленных пакетов ADB Shell

Опции

Есть также некоторые параметры, которые вы можете использовать для получения более конкретных списков.

  • -f будет включать путь к базовому APK для каждого приложения вместе с именем его пакета.
  • гарантирует возврат всех известных пакетов, отличных от APEX.
  • заставит команду возвращать только отключенные пакеты.
  • заставит команду возвращать только включенные пакеты.
  • заставит команду возвращать только системные пакеты.
  • -3 заставит команду возвращать только сторонние пакеты.
  • будет включать имя пакета установщика для каждого пакета.
  • будет включать UID пакета для каждого пакета.
  • будут включать удаленные пакеты.
  • -показать код версии будет включать код версии для каждого пакета.
  • –только вершина будет возвращать только пакеты APEX.
  • –uid будут показывать только пакеты с заданным UID.
  • –пользователь будут отображаться только пакеты, принадлежащие данному идентификатору пользователя.


Установка и удаление приложений через ADB

Это относительно распространенное использование ADB, но о нем все равно стоит упомянуть. Помимо прочего, вы также можете использовать ADB для установки и удаления приложений Android на вашем устройстве Android.

Установка APK

Если у вас есть APK на вашем компьютере, вы можете установить его на свое устройство следующим образом:

adb install -r someapk.apk

Не забудьте заменить someapk.apk с полным путем к APK, который вы хотите установить.

Опции

Есть куча вариантов установки APK через ADB.

  • опция позволяет установить ADB поверх существующего приложения (т. е. обновить). В Android Pie и более поздних версиях этот параметр указывать не нужно.
  • для Android Pie и более поздних версий приведет к сбою установки, если приложение уже установлено.
  • Параметр позволяет указать имя пакета установщика. Это то, что возвращается, если Android хочет знать, что установило APK.
  • вариант позволяет APK с Android: testOnly = «истина» в его манифесте для установки.
  • Параметр позволяет указанному APK быть понижением до уже установленного приложения. Это работает только в том случае, если обе версии приложения являются отлаживаемыми.
  • -грамм Опция для Android Marshmallow и более поздних версий автоматически предоставляет все разрешения во время выполнения установленному приложению.

Это не все из них. Если вам нужен полный список, вы можете ознакомиться со встроенной документацией.

Несколько APK и пакетов

Если у вас есть несколько APK, которые вы хотите установить одновременно, либо из нескольких приложений, либо из-за того, что вы устанавливаете пакет приложений, вы можете использовать ADB. install-multiple а также install-multi-package Особенности.

Если все ваши APK предназначены для одного приложения, используйте install-multiple:

adb install-multiple apk1.apk apk2.apk ...

В противном случае используйте install-multi-package:

adb install-multi-package app1.apk app2.apk ...

Параметры этих команд аналогичны install, но с некоторыми ограничениями. Ознакомьтесь со встроенной документацией ADB для доступных опций.

Удаление приложения

Чтобы удалить с помощью ADB, вам понадобится имя пакета приложения, которое вы хотите удалить. Загляните в раздел для Список установленных приложений если вы еще этого не сделали.

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

adb uninstall <packagename>

Примечание: Обычно вы не можете удалить систему или предустановленные приложения с помощью этой команды. Однако вы можете отключить их с помощью ADB. Загляните в раздел Отключение и включение практически любого приложения для деталей.


Извлечение APK с помощью ADB

Существует множество причин, по которым вы можете захотеть извлечь APK-файлы для приложения. Может быть, вы хотите создать резервную копию для будущего использования, или, может быть, оно больше недоступно в Интернете, и вы хотите перенести его на другое устройство.

Извлечь приложение с помощью ADB довольно просто. Во-первых, вам нужно найти имя пакета приложения, которое вы хотите извлечь. Есть несколько способов сделать это, но обычно проще всего использовать приложение «Настройки» вашего устройства, чтобы просмотреть список всех установленных приложений, выбрать нужное и прокрутить вниз, пока не найдете имя пакета или идентификатор приложения.

Получив имя пакета, выполните следующую команду:

adb shell pm path <packagename>

Эта команда вернет путь ко всем APK для этого имени пакета.

Изображение, показывающее результаты получения путей APK для установленного пакета.

Затем вы можете использовать следующую команду, чтобы загрузить каждый APK на свой компьютер:

adb pull /path/to/apk.apk


Список компонентов приложения

Компоненты приложения — это его Activity, BroadcastReceivers, Services и так далее. Иногда полезно знать названия этих компонентов в конкретном приложении, особенно если вы хотите запустить скрытые действия или отправить рассылку с конкретными данными.

К сожалению, у ADB нет очень четкого способа перечисления компонентов приложения. Но это возможно. Выполните следующую команду:

adb shell dumpsys package <packagename>

Целая куча текста будет возвращена.

  • Прокручивайте, пока не найдете Таблица распознавателя активности название, чтобы увидеть действия.
  • Смотрите под Таблица разрешения приемника для широковещательных приемников.
  • Проверить Таблица распознавателя служб за услуги.
  • И так далее.

Каждый компонент покажет действие, необходимое для его запуска, имя компонента и, возможно, некоторую дополнительную информацию.

Таблица разрешения действий для пакета dumpsys

В качестве альтернативы, если вам нужен более простой способ просмотра действий, служб и получателей, вы можете использовать мой Приложение для запуска корневой активности. Он покажет вам эти компоненты для каждого приложения, а также множество других полезных функций.


Запуск Activity, Services и BroadcastReceivers

ADB также можно использовать для запуска действий, запуска служб и уведомления BroadcastReceivers. Вы даже можете указать URI данных и дополнительные намерения, если это необходимо.

Для запуска компонентов вам понадобится имя компонента того, что вы хотите запустить. Вы можете увидеть, как получить это из Список компонентов приложения раздел.

Синтаксис команды для запуска Activity примерно такой:

am start -a <action> -n <component>

Синтаксис команды для запуска службы примерно такой:

am startservice -a <action> -n <component>

Синтаксис команды для уведомления BroadcastReceiver примерно такой:

am broadcast -a <action> -n <component>

В большинстве случаев для действий и служб вам не нужно явно указывать действие. Обычно он вам понадобится только в том случае, если компонент использует один, отличный от android.intent.action.MAIN.

Помимо основного синтаксиса, вот как указать дополнительные данные для передачи. Как правило, все значения данных должны быть заключены в двойные кавычки.

  • позволяет указать URI данных.
  • -e <ключ> <значение> или же –es <ключ> <значение> позволяет указать дополнительную строку.
  • –esn <ключ> позволяет указать дополнительную нулевую строку.
  • –ez <ключ> <значение> используется для указания логического дополнения.
  • –эй <ключ> <значение> используется для указания целого числа.
  • –el <ключ> <значение> для указания длинного доп.
  • –ef <ключ> <значение> будет передавать поплавок дополнительно.
  • –eu <ключ> <значение> передает дополнительный URI.
  • –ecn <ключ> <значение> может использоваться для указания дополнительного имени компонента.
  • –eia <ключ> <значение1>,<значение2>,… будет передавать значения как целое число[] дополнительный.
  • –eial <ключ> <значение1>,<значение2>,… будет передавать значения как List.
  • Те же аргументы массива и списка также работают для длинных чисел, чисел с плавающей запятой и строк. Просто замените я с соответствующей буквой.
  • -f позволяет указать флаг.

Есть еще больше вариантов поведения, которые вы можете использовать, поэтому ознакомьтесь с документацией по сборке для получения подробной информации.


Отключение и включение практически любого приложения

Системные приложения в Android нельзя удалить, и многие из них также нельзя отключить в настройках. Хотя ADB не позволит вам удалить их, он может помочь вам отключить их.

Во-первых, убедитесь, что вы получили имя пакета приложения, которое хотите отключить. Затем попробуйте эти команды. Если один из них не работает, попробуйте следующий вариант.

  • pm отключить <пакет>
    • Чтобы снова включить, используйте pm включить <пакет>
  • pm disable-user –пользователь 0 <пакет>
    • Чтобы снова включить, используйте pm включить <пакет>
  • pm скрыть <пакет>
    • Чтобы снова включить, используйте pm показать <пакет>
  • pm приостановить <пакет>
    • Чтобы снова включить, используйте pm разблокировать <пакет>
  • pm uninstall -k –user 0 <пакет>
    • Чтобы снова включить, используйте pm install-existing <пакет>
    • Примечание. Это эффективно удаляет приложение из вашего профиля пользователя. В то время как команда для повторного включения должен работать, нет никакой гарантии, что это будет. Возможно, вам потребуется выполнить сброс до заводских настроек, чтобы восстановить приложение.

Если вы используете несколько профилей пользователей на своем устройстве, обязательно замените 0 в приведенных выше командах с фактическим идентификатором пользователя, который у вас есть.


ADB — невероятно мощный инструмент, и он может делать гораздо больше, чем то, что описано выше. Команды в этой статье — всего лишь полезная отправная точка. Для более продвинутого использования ознакомьтесь с такими командами, как cmd-л чтобы увидеть различные службы, с которыми вы можете взаимодействовать, или лс -л /система/бен чтобы увидеть различные доступные исполняемые файлы команд.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *