Получить запущенную активность имя пакета из adb
Есть ли способ получить запускаемую активность для пакета с помощью adb? Для обычного телефона (т.е. Без вытягивания apk из каталога /data/app и проверки с помощью appt).
Я попробовал dumpsys, но он не включает информацию о запускаемой активности по умолчанию.
Спасибо
Ответы
Ответ 1
Вам не нужен root, чтобы вытащить файлы apk с /data/app
. Конечно, у вас могут не быть разрешений для перечисления содержимого этого каталога, но вы можете найти расположение файлов APK с помощью:
adb shell pm list packages -f
Затем вы можете использовать adb pull
:
adb pull <APK path from previous command>
а затем aapt
, чтобы получить нужную информацию:
aapt dump badging <pulledfile.apk>
Ответ 2
$ adb shell pm dump PACKAGE_NAME | grep -A 1 MAIN
Ответ 3
#!/bin/bash
#file getActivity.sh
package_name=$1
#launch app by package name
adb shell monkey -p ${package_name} -c android.intent.category.LAUNCHER 1;
sleep 1;
#get Activity name
adb shell logcat -d | grep 'START u0' | tail -n 1 | sed 's/.*cmp=\(.*\)} .*/\1/g'
Пример:
getActivity.sh com.tencent.mm
com.tencent.mm/.ui.LauncherUI
Ответ 4
Я не нашел его в списке для обновления списка.
Для этого решения необходимо установить и запустить apk на вашем телефоне:
Линия Windows CMD:
adb shell dumpsys window windows | findstr <any unique string from your pkg Name>
Терминал Linux:
adb shell dumpsys window windows | grep -i <any unique string from your Pkg Name>
ВЫХОД для пакета калькулятора будет:
Window #7 Window{39ced4b1 u0 com.android.calculator2/com.android.calculator2.Calculator}:
mOwnerUid=10036 mShowToOwnerOnly=true package=com.android.calculator2 appop=NONE
mToken=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
mRootToken=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
mAppToken=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
WindowStateAnimator{3e160d22 com.android.calculator2/com.android.calculator2.Calculator}:
mSurface=Surface(name=com.android.calculator2/com.android.calculator2.Calculator)
mCurrentFocus=Window{39ced4b1 u0 com.android.calculator2/com.android.calculator2.Calculator}
mFocusedApp=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
Основная часть, Первая строка:
Window #7 Window{39ced4b1 u0 com.android.calculator2/com.android.calculator2.Calculator}:
Первая часть вывода - это имя пакета:
com.android.calculator2
Вторая часть вывода (которая после /
) может быть двумя, в нашем случае ее:
com.android.calculator2.Calculator
-
<PKg name>.<activity name>
=
<com.android.calculator2>.<Calculator>
, поэтому .Calculator
является нашей деятельностью
-
Если вторая часть полностью отличается от имени пакета и, похоже, не содержит pkg-имя, которое было до /
в выходном файле, тогда весь вторая часть может использоваться как основная деятельность.
Ответ 5
Начиная с Android 7.0 вы можете использовать команду adb shell cmd package resolve-activity
для получения активности установленного приложения по умолчанию следующим образом:
adb shell "cmd package resolve-activity --brief com.google.android.calculator | tail -n 1"
com.google.android.calculator/com.android.calculator2.Calculator
Ответ 6
Вот еще один способ узнать имя пакета приложений и активность запуска.
Шаг1: Запустите "adb logcat" в командной строке.
Шаг 2. Откройте приложение (либо в эмуляторе, либо в реальном устройстве)
![enter image description here]()
Ответ 7
1) Запустите клиент Appium. Ниже приведенное окно отобразится, как только вы запустите клиент Appium.
2) Нажмите на значок Android, указанный выше, чтобы открыть настройки конфигурации.
3) Установите флажок "Путь к приложению".
4) Нажмите кнопку "Выбрать", чтобы найти файл apk, в этом случае я дал ему Amazon apk.
![введите описание изображения здесь]()
Ответ 8
Вы также можете использовать ddms для журналов logcat, где только для поиска имени приложения вы будете всю информацию, но вам нужно выбрать "Информация" вместо подробных или других параметров. проверьте это ниже.
![введите описание изображения здесь]()