我有一个运行Jelly Bean操作系统的Android设备。
如果我知道ADB
包名称,是否可以使用命令检测进程是否正在运行
发布于 2013-05-22 17:29:14
不需要使用grep。Android中的ps
可以通过COMM
值进行过滤(如果是java应用,包名的最后15个字符)
假设我们想要检查com.android.phone
是否正在运行:
adb shell ps m.android.phone
USER PID PPID VSIZE RSS WCHAN PC NAME
radio 1389 277 515960 33964 ffffffff 4024c270 S com.android.phone
在Android7.0中,按COMM
值过滤选项has been removed来自ps
。要在Android7.0中按名称检查正在运行的进程,您可以使用pidof
命令:
adb shell pidof com.android.phone
如果找到这样的进程,则返回PID,否则返回空字符串。
发布于 2013-05-22 12:22:16
您可以使用
adb shell ps | grep apps | awk '{print $9}'
要生成类似以下内容的输出:
com.google.process.gapps
com.google.android.apps.uploader
com.google.android.apps.plus
com.google.android.apps.maps
com.google.android.apps.maps:GoogleLocationService
com.google.android.apps.maps:FriendService
com.google.android.apps.maps:LocationFriendService
adb shell ps返回android设备上所有正在运行的进程的列表,grep apps会搜索任何包含“com.google.android.APPS”的行,正如你在上面看到的,它们都是应用程序。
要搜索特定的包,请使用
adb shell ps | grep PACKAGE.NAME.HERE | awk '{print $9}'
即adb shell ps | grep com.we7.player | awk '{print $9}'
如果它正在运行,名称将会出现,否则不会返回任何结果。
发布于 2017-02-16 11:03:07
如果您想要直接获取当前焦点应用程序的包名,请使用以下adb命令-
adb shell dumpsys window windows | grep -E 'mFocusedApp'| cut -d / -f 1 | cut -d " " -f 7
使用cut命令删除adb命令结果中的额外信息。来自here的原始解决方案。
https://stackoverflow.com/questions/16691487
复制