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 相关文章推荐
python检测服务器是否正常
Feb 16 Python
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
Python的argparse库使用详解
Oct 09 Python
python多任务及返回值的处理方法
Jan 22 Python
Python for循环与range函数的使用详解
Mar 23 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
python中的反斜杠问题深入讲解
Aug 12 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 Python
python中取绝对值简单方法总结
Jul 24 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
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
一个简单的php路由类
2016/05/29 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
详解Django配置JWT认证方式
2020/05/09 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
管理科学大学生求职信
2013/11/13 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
保证书范文大全
2014/04/28 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
三八妇女节寄语
2015/02/27 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
MySQL日期时间函数知识汇总
2022/03/17 MySQL