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

 更新时间:2015年01月16日 11:49:50   投稿:junjie  
这篇文章主要介绍了Python实现过滤单个Android程序日志脚本分享,本文讲解了原理、实现代码、使用方法、最新代码等内容,需要的朋友可以参考下

在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增加矩阵维度的实例讲解

    下面小编就为大家分享一篇python增加矩阵维度的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 用Python解决计数原理问题的方法

    用Python解决计数原理问题的方法

    计数原理是数学中的重要研究对象之一,分类加法计数原理、分步乘法计数原理是解决计数问题的最基本、最重要的方法,也称为基本计数原理,它们为解决很多实际问题提供了思想和工具。本文教大家怎么用Python解决在数学中遇到的计数原理问题。
    2016-08-08
  • Python中PyQt5可视化界面通过拖拽来上传文件的实现

    Python中PyQt5可视化界面通过拖拽来上传文件的实现

    本文主要介绍了Python中PyQt5可视化界面通过拖拽来上传文件的实现,通过构建一个可接受拖拽的区域,并重写相关事件处理函数,可以方便地实现文件上传功能,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • python 使用Tensorflow训练BP神经网络实现鸢尾花分类

    python 使用Tensorflow训练BP神经网络实现鸢尾花分类

    这篇文章主要介绍了python 使用Tensorflow训练BP神经网络实现鸢尾花分类,帮助大家更好的利用python进行深度学习,感兴趣的朋友可以了解下
    2021-05-05
  • Python之修改图片像素值的方法

    Python之修改图片像素值的方法

    今天小编就为大家分享一篇Python之修改图片像素值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Flask中Cookie和Session理解与作用介绍

    Flask中Cookie和Session理解与作用介绍

    Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能,Flask中Cookie和Session有什么区别呢
    2022-10-10
  • Django生成数据库及添加用户报错解决方案

    Django生成数据库及添加用户报错解决方案

    这篇文章主要介绍了Django生成数据库及添加用户报错解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • python中subprocess实例用法及知识点详解

    python中subprocess实例用法及知识点详解

    在本篇文章里小编给大家分享的是关于python中subprocess实例用法及知识点详解内容,有需要的朋友们可以跟着学习下。
    2021-10-10
  • 使用Python进行中文繁简转换的实现代码

    使用Python进行中文繁简转换的实现代码

    这篇文章主要介绍了使用Python进行中文繁简转换的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python入门教程(二十五)Python的作用域

    Python入门教程(二十五)Python的作用域

    这篇文章主要介绍了Python入门教程(二十五)Python的作用域,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04

最新评论