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 相关文章推荐
python2.7的编码问题与解决方法
Oct 04 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
Mar 23 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
人工神经网络算法知识点总结
Jun 11 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
python3中numpy函数tile的用法详解
Dec 04 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
基于matplotlib xticks用法详解
Apr 16 Python
500行python代码实现飞机大战
Apr 24 Python
Python如何爬取51cto数据并存入MySQL
Aug 25 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
python实现简单聊天功能
Jul 07 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
Angular.JS中的this指向详解
2017/05/17 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
vue根据值给予不同class的实例
2018/09/29 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
前端性能优化建议
2020/09/17 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
python下载微信公众号相关文章
2019/02/26 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
Python datetime 如何处理时区信息
2020/09/02 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
应聘编辑职位自荐信范文
2014/01/05 职场文书
《尊严》教学反思
2014/02/11 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
开服装店计划书
2014/08/15 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
工作时间证明
2015/06/15 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
Python实现单例模式的5种方法
2021/06/15 Python
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android