概述:
android为我们提供了dump方法。注释中声明该方法会将活动的状态打印到给定流中,当cmd运行“adb shell dumpsys activity”时会调用此函数。所以当我们要做一些测试,就可以在activity重写dump函数编写我们的测试逻辑。
实现方法:activity重写dump方法
args是adb传进来的命令参数
调用 writer.println 即可将想要打印的东西输出到adb窗口
@Override public void dump(@NonNull String prefix, @Nullable FileDescriptor fd, @NonNull PrintWriter writer, @Nullable String[] args) { Log.e(TAG,prefix); Log.e(TAG,args[0]); writer.println("No providers match: " + args[0]); //super.dump(prefix, fd, writer, args); }
测试命令 :dumpsys activity 包名 参数
dump除了适用于activity以外,同样也适用于service和contentprovide。cmd唯一的区别是adb shell dumpsys activity …改为adb shell dumpsys activity service … 或者adb shell dumpsys activity provider …