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

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

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

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

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

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

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

共收到 19 条回复 时间 点赞

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

cmlanche 回复

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

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

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

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

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

回复

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

J 回复

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

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

可以考虑采用第三方工具调用,在本机 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 进程

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