Dumpsys-подобная функциональность для приложения apk - PullRequest
0 голосов
/ 01 мая 2018

Я ищу решение для доступа к внутреннему состоянию нашего приложения из adb для целей отладки. Я часто использовал dumpsys для получения внутреннего состояния системных служб, поэтому теперь мне интересно, могу ли я предоставить интерфейс из нашего приложения для adb. Пока я думал только о том, чтобы периодически регистрировать информацию, а затем просто читать logcat, но если возможно, я бы хотел иметь возможность напрямую взаимодействовать с приложением через adb, поэтому вопрос заключается в том, как реализовать это в нашем приложении.

1 Ответ

0 голосов
/ 19 августа 2018

в вашем методе Activity override dump(), например:

@Override
public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
    //super.dump(prefix, fd, writer, args);
    writer.println();
    writer.println("command line arguments:");
    writer.format("length: %d, args: %s", args.length, Arrays.toString(args)).println();
}

затем запустите Activity и введите в терминале:

adb shell dumpsys activity top your cmd line arguments

или

adb shell dumpsys activity top

если вы не хотите передавать аргументы методу dump()

такой же метод существует в других компонентах, таких как Service или ContentProvider - смотрите их официальную документацию о том, как вызывать их с помощью команды adb shell dumpsys activity, также есть классы, которые имеют свои методы dump(), которые можно использовать сбросить их внутреннее состояние - например, ApplicationInfo, ActivityInfo, Looper, Handler, Binder, Fragment и многие другие

...