apk 应用程序的类似 Dumpsys 的功能
Dumpsys-like functionality for apk app
我正在寻找一种解决方案来从 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();
}
然后启动您的 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
和许多其他人
我正在寻找一种解决方案来从 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();
}
然后启动您的 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
和许多其他人