繁体   English   中英

如何在android中使用adb shell知道服务是否正在运行

[英]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.playerService 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM