我在网上找不到详细的信息。
但据我所知,安卓系统的媒体事务是由位于/system/bin/mediaserver中的mediaserver进程控制的。
例如,当在youtube应用程序上流式传输视频时,此媒体服务器似乎正在打开到远程服务器的端口并下载内容
cat /proc/net/tcpmediaserver app的linux UID是1013,是Android内部的UID。
对于新的套接字连接,我将通过检查打开的端口来获取应用程序UID
但是对于这个mediaserver进程的例子,我得到了UID1013,因为mediaserver已经打开了端口。
问题是当我调用getRunningAppProcesses时,这个媒体服务器应用程序没有列在列表中。
更具体地说,getRunningAppProcesses()在ps命令的输出中只返回包名称,而不显示/system/bin/mediaserver或/system/bin/keystore等。
因此,我需要知道是哪个应用程序导致mediaserver打开远程服务的新端口。在这种情况下,如何获取原始应用程序名称或pid?我不知道这是不是真的可以做到,或者是Android的限制。
发布于 2014-10-28 22:09:47
您可以知道您是否跟踪了为启动服务而创建的意图。不幸的是,我不知道在不跟踪系统调用的情况下获取该信息的任何方法(例如,修改固件以跟踪它)
https://stackoverflow.com/questions/11631453
复制相似问题