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


Posted in Python onJanuary 16, 2015

在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变化,无法自动继续输出日志,只能再次执行此脚本。

Python 相关文章推荐
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
Python3中多线程编程的队列运作示例
Apr 16 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
基于python时间处理方法(详解)
Aug 14 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
Python生成数字图片代码分享
Oct 31 Python
Python简单读取json文件功能示例
Nov 30 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
Feb 29 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
Python中的对象,方法,类,实例,函数用法分析
Jan 15 #Python
Python转换HTML到Text纯文本的方法
Jan 15 #Python
python中os操作文件及文件路径实例汇总
Jan 15 #Python
python私有属性和方法实例分析
Jan 15 #Python
python实现堆栈与队列的方法
Jan 15 #Python
python多线程用法实例详解
Jan 15 #Python
Python中os.path用法分析
Jan 15 #Python
You might like
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
php桌面中心(一) 创建数据库
2007/03/11 PHP
php写的AES加密解密类分享
2014/06/20 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
淘宝搜索框效果实现分析
2011/03/05 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
python的id()函数介绍
2013/02/10 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
10个顶级Python实用库推荐
2021/03/04 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
销售找工作求职信
2013/12/20 职场文书
军训生自我鉴定范文
2013/12/27 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
优秀护士事迹材料
2014/12/25 职场文书
电力工程合作意向书
2015/05/11 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS