我正在寻找一个解决方案,以访问我们的应用程序的内部状态从亚行的调试目的。我经常使用虚拟技术来获取系统服务的内部状态,所以现在我想知道我是否可以从我们的应用程序向亚行公开一个接口。到目前为止,我唯一想到的是定期记录信息,然后只阅读logcat,但如果可能的话,我希望能够通过亚行直接与应用程序交互,所以问题是如何在我们的应用程序中实现这一点。
发布于 2018-08-19 06:49:15
例如,在Activity重写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等等。
https://stackoverflow.com/questions/50112989
复制相似问题