2013-08-29 2 views
6

У меня вопрос об использовании АБР.Как получить дополнительную информацию о текущей активности через ADB

Я знаю, что эта команда:

adb shell dumpsys activity 

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

Но я заметил, что иногда, в намерении выглядеть следующим образом:

Intent { ...some_intent/activity_name.... (has extras) } 

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

Так что мой вопрос в том, как я могу получить дополнительную информацию о намерениях/действиях через АБР?

Причина мне нужно это, потому что я пытаюсь запустить APK (который установлен на телефоне) через команду ADB, что-то вроде:

adb shell "su -c 'am start -n com.package.name/.ActivityName'" 

Это работает и довести до применения. У приложения есть начальный экран (например, мы называем его HomeActivity), и вам нужно щелкнуть по кнопке и сделать некоторые выборы (например, SelectionActivity), и она перейдет на другой экран (скажем, ActionActivity). Я хочу, чтобы иметь возможность запускать apk и заставить его перейти к ActionActivity.

Приложение завершится с ошибкой, если я попытаюсь запустить ActionActivity с помощью команды start, я предполагаю, что это связано с тем, что для этого требуются параметры на экране SelectionActivity.

Вот почему я пытаюсь увидеть, что являются «дополнительные» или параметры, экран ActionActivity фактически получает, так что я могу сделать что-то вроде:

adb shell "su -c 'am start -n com.package.name/.ActionActivity -e param1 val1 -e param2 val2'" 

Надеюсь мой вопрос ясен.

Пожалуйста, исправьте меня, если я ошибаюсь.

Заранее благодарен!

+0

Смотрите, если это он lps: [Как я могу доставить параметры для тестовой функции, запущенной с помощью команды adb shell am Instrumentation] (http://stackoverflow.com/a/3229077/2558882). – Vikram

+0

Откуда вы знаете, что это лишние вещи отсутствуют? Первая активность могла бы сделать что-то еще. Кстати, вам обычно не нужно 'su' запускать' am'. –

+0

Вы когда-нибудь придумывали ответ на этот вопрос?Я пытаюсь сделать то же самое. –

ответ

2

Если я правильно понимаю, ваша цель - начать действие действия с правильным намерением, но вы не знаете, какую информацию о параметрах следует включить, правильно?

dumpsys команда не будет сбрасывать все, что вы хотите, так просто достичь своей цели, у вас есть 2 варианта (вы должны найти одно устройство, которое вы можете записать свой собственный файл прошивки в него):

  1. Измените метод дампа в AMS для печати Более подробной информации

  2. изменить исходный код класса ActivityThread, чтобы распечатать подробного умысел информации

+0

Hi Robin, Спасибо за ответ. К сожалению, я не могу изменить исходный код класса ActivityThread, поскольку apk не является моим, поэтому я не могу изменить исходный код, чтобы что-то поместить. – JJackJi

+0

Hi Robin, Спасибо за ответ. К сожалению, я не могу изменить исходный код класса ActivityThread, поскольку apk не является моим, поэтому я не могу изменить исходный код, чтобы распечатать что-либо дополнительное. Что касается модификации метода dumpsys, я боюсь, что это не вариант для меня. Мой проект требует, чтобы я использовал прошивку, которая в настоящее время находится на телефоне. Нет ли встроенных команд adroid adb для достижения этого? Спасибо! – JJackJi

+0

Я имею ввиду, вы просто хотите получить информацию. Таким образом, вы можете использовать настроенное прошивку для получения необходимой информации. С помощью настраиваемой прошивки вы можете либо изменить dumpsys, либо исходный код потока действий. Они оба являются исходными кодами. Это всего лишь подход для достижения вашей цели. – Robin

Смежные вопросы