I am looking for a solution to access the internal state of our app from adb for debugging purposes. I have used dumpsys a lot to get the internal state of system services
in your Activity override dump() method, for example:
@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();
}
then start your Activity and type in the terminal:
adb shell dumpsys activity top your cmd line arguments
or:
adb shell dumpsys activity top
if you don't want to pass any arguments to dump() method
the same method exists in other components like Service or ContentProvider - see their official documentation on how to invoke them by using adb shell dumpsys activity command, also there are classes that have their dump() methods that can be used to dump their internal state - for example ApplicationInfo, ActivityInfo, Looper, Handler, Binder, Fragment and many others