职业经验 如何优雅的结束 adb logcat??

卡丁车卡丁丁 · 2020年11月12日 · 最后由 卡丁车卡丁丁 回复于 2020年11月17日 · 4480 次阅读

执行测试程序的时候,难免要抓日志以供分析

如果一台电脑连接多台手机执行测试,那么如何结束指定机器的 adb logcat 呢?

求 java 里的方法,调用 runtime 去运行 cmd 命令不知道咋去终止。。。

终止手机里的 logd 似乎可行,但是要 root 权限才行,没 root 的时候权限不足。。。

头疼,想了好久,有没有老铁能贴上代码,谢谢了

共收到 19 条回复 时间 点赞

导出一份 txt 的实时日志 ,操作完可以直接 kill

不是用的 ddmlib 抓的 logcat 日志吗?ddmlib 里面有 stop 的 api

cmlanche 回复

不是哦,用 java 写脚本得时候一边抓得

我们是 linux 环境,利用的 shell 脚本,去杀。

这个之前也困扰我们好久好久。

写死 sdk 下 adb 的路径啊
1、调 adb 查 设备的 devices
2、带着指定的 devices 去执行 adb logcat 之类的操作

回复

你杀本机的还是杀测试设备的?如果杀本机的进程,那不是全都掉了?

可以考虑采用第三方工具调用,在本机 kill 远程机器的 adb

Allen.liu 回复

这个好像得有 root 权限才行吧

我的意思是在本地 PC 上开启可以控制其它远程 PC 的软件,在本地 PC 上可任意关闭远程 pc 的 adb server.

Allen.liu 回复

那你这个方法不是一台测试设备得备一台机器专门抓 logcat?这成本也太高了吧

为啥不尝试 kill logcat 的进程呢

雨花石 回复

这个要设备有 root 权限才可以

雨花石 回复

自动化中这个场景很常见啊,kill 掉某个设备 (adb -s 执行要 kill 的设备) 中的进程,也不需要 root 权限。直接在 runtime 下应该也是可以操作的

你是怎么操作的,kill 进程 ID 应该不需要 root 权限吧

雨花石 回复

自己的小米手机试了下,没有 root,可以结束 logcat

雨花石 回复

似乎是可以的,我之前结束的是 logd,不是 logcat 进程

花几十块, 搞个局域网路由器,用 wifi? adb 有 adb disconnect 能断开

J 回复

执行指定的是可以,但是你要终止指定设备的 logcat 该怎么弄呢?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册