www*_*.se 2 java android adb android-logcat
我正在寻找一种解决方案来从 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();
}
Run Code Online (Sandbox Code Playgroud)
然后启动Activity并在终端中输入:
adb shell dumpsys activity top your cmd line arguments
或者:
adb shell dumpsys activity top
如果您不想将任何参数传递给dump()方法
相同的方法存在于其他组件中,例如Serviceor - 请参阅他们ContentProvider的官方文档,了解如何使用命令调用它们,adb shell dumpsys activity还有一些类具有dump()可用于转储其内部状态的方法 -ApplicationInfo例如ActivityInfo,,,,,,和许多其他的LooperHandlerBinderFragment
| 归档时间: |
|
| 查看次数: |
1944 次 |
| 最近记录: |