[英]How to know whether service is running using adb shell in android
我想知道媒体播放器服务(设备启动时向 media.player 注册)是否正在使用 adb shell 运行。这可能吗?
我尝试运行 ps 命令但没有成功。
尝试命令行
adb shell service list
我也得到了服务名称及其包名列表。
如前所述, adb shell service list
仅列出系统服务。
如Android Emulator中所述:如何获取正在运行的服务列表 ,您可以使用查找应用程序创建的服务
// List all services
adb shell dumpsys activity services
// List all services containing "myservice" in its name
adb shell dumpsys activity services myservice
如果它返回某些内容,则表示已安装该服务。 要知道服务当前是启动还是停止,请分别查找app=ProcessRecord(...)
或app=null
。
您也可以使用简单的Linux风格
ps | grep myservice
在你的shell里面。
要简单检查特定服务是否正在运行,请使用:
adb shell service check <service>
例如, adb shell service check media.player
给Service media.player: found
它是否正在运行而Service media.player: not found
。
如果您需要更多详细信息,请尝试dumpsys <service>
。 例如, adb shell dumpsys media.player
返回有关media.player
的客户端,打开文件等的信息。
最后,如果你真的需要认真的调试细节,请尝试使用adb shell dumpsys activity services
,它显示了从ActivityManager
的角度来看的情况。 这包括有关意图,创建时间,上次活动时间,绑定等的信息等。如果要存储输出以供以后查看/搜索,可以重定向输出。 它通常相当冗长。
对于 Android 10,列出所有当前正在运行的服务:
adb shell dumpsys activity services | grep "ServiceRecord" | awk '{print $4}' | sed 's/.$//' | sort
要了解应用程序进程是否正在运行(后台或前台):
adb shell pidof <package.name>
如果进程没有运行,它将返回空字符串,否则返回其pid。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.