我想知道到底是怎么回事
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/