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 so now I wonder if I can expose an interface from our app to adb. The only thing I have thought of so far is to log the information periodically and then just read logcat but if possible I would like to be able to interact directly with the app over adb so question is how to implement this in our app.
Dumpsys-like functionality for apk app
Asked Answered
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
© 2022 - 2024 — McMap. All rights reserved.
adb shell dumpsys activity top
and overrideActivity#dump
method, the same forService
,ContentProvider
etc – Punctualadb shell dumpsys activity top any command line can be entered here
and get them from a last param passed toActivity#dump
method, what bundle id? – PunctualActivity
started and visible? or you want to dump a customService
running in a background? orContentProvider
? or something else? – Punctualadb shell dumpsys activity -h
or see ar-g.github.io/ADB-Shell-Part-3 and ^Fadb shell dumpsys activity -h
– Punctualservice [COMP_SPEC]: service client-side state
- seeadb shell dumpsys activity -h
– PunctualMySuperService
– Punctualdumpsys activity -h
: "COMP_SPEC may be a component name (com.foo/.myApp), a partial substring in a component name, a hex object identifier." – Punctual