设为首页 加入收藏

TOP

Android过滤具体应用日志的脚本
2014-11-24 03:11:44 来源: 作者: 【 】 浏览:1
Tags:Android 过滤 具体 应用 日志 脚本

功能:按照程序(包名)过滤某一程序的日志,便于更加准确定位问题。


原理:根据报名找到进程ID,然后根据得到的进程ID过滤


代码:


#!/usr/bin/env python
#coding:utf-8
#author:andrewallanwallace@gmail.com
#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)


假设上述脚本保存成logcatPkg.py 使用方法:


androidyue~/py_works (master)$ logcatPkg.py com.android.phone


结果:


E/ActivityManager( 190): 0% 268/com.android.phone: 0% user + 0% kernel / faults: 210 minor 1 major
I/klogd ( 169): [69429.226898] BATT: Charging
D/WindowManager( 255): MotionEvent obtain 1 : MotionEvent{2b0a3268 action=1 x=66.70892 y=21.861084 pressure=1.0 size=0.0}
D/WindowManager( 255): MotionEvent obtain 1 : MotionEvent{2b0a3268 action=0 x=449.95306 y=18.399263 pressure=1.0 size=0.0}
D/WindowManager( 255): MotionEvent obtain 1 : MotionEvent{2b0a3268 action=1 x=366.57278 y=231.83072 pressure=1.0 size=0.0}
D/PowerManagerService( 190): setTimeoutLocked now=69520831 timeoutOverride=-1 nextState=3 when=69526831
D/WindowManager( 255): MotionEvent obtain 1 : MotionEvent{2b0a3268 action=0 x=360.5634 y=87.862915 pressure=1.0 size=0.0}
D/WindowManager( 255): MotionEvent obtain 1 : MotionEvent{2b0a3268 action=1 x=403.3803 y=185.80405 pressure=1.0 size=0.0}
D/WindowManager( 255): MotionEvent obtain 1 : MotionEvent{2b0a3268 action=0 x=323.7559 y=58.424103 pressure=1.0 size=0.0}
D/jdwp ( 268): adbd disconnected
I/klogd ( 169): [69526.400268] [mlog] do_log_poweroncause()
D/jdwp ( 268): adbd disconnected


注意:由于是根据pid过滤,所以可能会过滤出一些数字相关的无相关信息。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python通过代理多线程抓取图片 下一篇二分查找的实现及注意事项

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ 语言社区-CSDN社 (2025-12-24 17:48:24)
·CSDN问答专区社区-CS (2025-12-24 17:48:22)
·C++中`a = b = c`与` (2025-12-24 17:48:19)
·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)