java – 适用于apk应用程序的Dumpsys功能

我正在寻找一种解决方案,从adb访问我们的应用程序的内部状态以进行调试.
我已经使用了很多dumpsys来获取系统服务的内部状态,所以现在我想知道我是否可以从我们的应用程序公开接口到adb.到目前为止,我唯一想到的是定期记录信息,然后只读logcat,但如果可能,我希望能够通过adb直接与应用程序进行交互,所以问题是如何在我们的应用程序中实现这一点.

解决方法:

在您的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();
}

然后启动您的活动并输入终端:

adb shell dumpsys活动顶部你的cmd行参数

要么:

adb shell dumpsys活动顶部

如果您不想将任何参数传递给dump()方法

其他组件(如Service或ContentProvider)中存在相同的方法 – 请参阅有关如何使用adb shell dumpsys activity命令调用它们的官方文档,还有一些类具有可用于转储其内部状态的dump()方法 – 例如ApplicationInfo,ActivityInfo,Looper,Handler,Binder,Fragment和许多其他

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...