Android dumpsys 代码流程

标签 android adb android-source android-debug

我想知道到底是怎么回事

adb shell dumpsys

工作原理以及它是如何在 AOSP 中实现的。 到目前为止,我的理解是大多数系统服务都实现了

@Override
public void dump() 

函数并使用它。但是哪个 java 类拥有这个@Override 指向的函数?

最佳答案

adb shell dumpsys调用 native dumpsys 二进制文件,它询问 IServiceManager获取所有系统服务(Android 内置服务)的列表并调用 IBinder#dump(FileDescriptor fd, String[] args) 每个方法,将 FileDescriptor 设置为 STDOUT .参见 dumpsys.cpp 在平台中获取更多信息。

adb shell dumpsys activity service <yourservicename>使用它会在 ActivityManagerService 上调用上面提到的相同转储方法。带有参数 service <yourservicename>然后通过调用 Service#dump(FileDescriptor fd, PrintWriter writer, String[] args) 将转储请求传递给您的服务(如果它正在运行) .

关于Android dumpsys 代码流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32065605/

相关文章:

android - adb root 工作 Runtime.GetRuntime().Exec ("su");才不是

android - 如何在 Android 中调试 'BUILD FAILED'?

android - RangeError(索引): Invalid value: Not in range 0. .5,包括:6:Flutter SliverChildBuilderDelegate

android - Google Play 发布前报告在播放计费库上获取安全和信任异常权限使用问题

android - 通过 adb 向设备发送触摸事件

android - 如何使用 Android ADB 工具启动应用程序

java - 使用套接字从 Android 设备连接到 ESP8266

android - 如何在正在调试的应用程序上下文中打开 "adb shell"(在非根设备上)?

android - Android 系统构建失败

android - 为 AOSP 开发设置 C++ IDE 项目(无 NDK)