首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用ADB命令检测正在运行的应用程序

如何使用ADB命令检测正在运行的应用程序
EN

Stack Overflow用户
提问于 2013-05-22 20:15:06
回答 6查看 131.8K关注 0票数 57

我有一个运行Jelly Bean操作系统的Android设备。

如果我知道ADB包名称,是否可以使用命令检测进程是否正在运行

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-05-23 01:29:14

不需要使用grep。Android中的ps可以通过COMM值进行过滤(如果是java应用,包名的最后15个字符)

假设我们想要检查com.android.phone是否正在运行:

代码语言:javascript
代码运行次数:0
运行
复制
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命令:

代码语言:javascript
代码运行次数:0
运行
复制
adb shell pidof com.android.phone

如果找到这样的进程,则返回PID,否则返回空字符串。

票数 81
EN

Stack Overflow用户

发布于 2013-05-22 20:22:16

您可以使用

代码语言:javascript
代码运行次数:0
运行
复制
adb shell ps | grep apps | awk '{print $9}'

要生成类似以下内容的输出:

代码语言:javascript
代码运行次数:0
运行
复制
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”的行,正如你在上面看到的,它们都是应用程序。

要搜索特定的包,请使用

代码语言:javascript
代码运行次数:0
运行
复制
adb shell ps | grep PACKAGE.NAME.HERE | awk '{print $9}'

adb shell ps | grep com.we7.player | awk '{print $9}'

如果它正在运行,名称将会出现,否则不会返回任何结果。

票数 33
EN

Stack Overflow用户

发布于 2017-02-16 19:03:07

如果您想要直接获取当前焦点应用程序的包名,请使用以下adb命令-

代码语言:javascript
代码运行次数:0
运行
复制
adb shell dumpsys window windows | grep -E 'mFocusedApp'| cut -d / -f 1 | cut -d " " -f 7

使用cut命令删除adb命令结果中的额外信息。来自here的原始解决方案。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16691487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档