当前位置: 移动技术网 > IT编程>脚本编程>Python > Python实现过滤单个Android程序日志脚本分享

Python实现过滤单个Android程序日志脚本分享

2019年03月23日  | 移动技术网IT编程  | 我要评论

汉译韩在线翻译,王岳伦出轨,后记怎么写

在android软件开发中,增加日志的作用很重要,便于我们了解程序的执行情况和数据。eclipse开发工具会提供了可视化的工具,但是还是感觉终端效率会高一些,于是自己写了一个python的脚本来通过包名来过滤某一程序的日志。

原理

通过包名得到对应的进程id(可能多个),然后使用adb logcat 过滤进程id即可得到对应程序的日志。

源码

复制代码 代码如下:

#!/usr/bin/env python
#coding:utf-8
#this script is aimed to grep logs by application(user should input a packagename and then we look up for the process ids then separate logs by process ids).

import os
import sys

packagename=str(sys.argv[1])

command = "adb shell ps | grep %s | awk '{print $2}'"%(packagename)
p = os.popen(command)
##for some applications,there are multiple processes,so we should get all the process id
pid = p.readline().strip()
filters = pid
while(pid != ""):
    pid = p.readline().strip()
    if (pid != ''):
        filters = filters +  "|" + pid
        #print 'command = %s;filters=%s'%(command, filters)
if (filters != '') :
    cmd = 'adb logcat | grep --color=always -e "%s" '%(filters)
    os.system(cmd)

使用方法

复制代码 代码如下:

python logcatpkg.py com.mx.browser

最新代码

复制代码 代码如下:

#!/usr/bin/env python
#coding:utf-8
#this script is aimed to grep logs by application(user should input a packagename and then we look up for the process ids then separate logs by process ids).

import os
import sys

packagename=str(sys.argv[1])

command = "adb shell ps | grep %s | awk '{print $2}'"%(packagename)
p = os.popen(command)
##for some applications,there are multiple processes,so we should get all the process id
pid = p.readline().strip()
filters = pid
while(pid != ""):
    pid = p.readline().strip()
    if (pid != ''):
        filters = filters +  "|" + pid
        #print 'command = %s;filters=%s'%(command, filters)
if (filters != '') :
    cmd = 'adb logcat | grep --color=always -e "%s" '%(filters)
    os.system(cmd)

不足

当脚本执行后,android程序如果关闭或者重新启动,导致进程id变化,无法自动继续输出日志,只能再次执行此脚本。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网