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 相关文章推荐
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
Python使用gRPC传输协议教程
Oct 16 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
Jul 24 Python
Python使用贪婪算法解决问题
Oct 22 Python
python自动生成model文件过程详解
Nov 02 Python
Python实现图片添加文字
Nov 26 Python
Pytorch之view及view_as使用详解
Dec 31 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 Python
使用python对excel表格处理的一些小功能
Jan 25 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
Apr 12 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
php实现邮件发送并带有附件
2014/01/24 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
python创建和使用字典实例详解
2013/11/01 Python
python实现超简单端口转发的方法
2015/03/13 Python
Python实现的字典值比较功能示例
2018/01/08 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
医院院务公开实施方案
2014/05/03 职场文书
企业贷款委托书格式
2014/09/12 职场文书
同学会邀请函模板
2015/01/30 职场文书
会计稽核岗位职责
2015/04/13 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android