Code Monkey home page Code Monkey logo

monitor-for-android's Introduction

设计思路:

  • 设备端离线后台shell脚本监控
  • 用busybox的awk做数据提取存为csv
  • 结果获取到PC端用python脚本生成html报告

依赖文件:

  • 设备端需存在/data/local/tmp/busybox (busybox可到官网对应cpu架构下载) ,命令:
    adb push busybox /data/local/tmp
    adb shell chmod 755 /data/local/tmp/busybox

脚本文件:

  • 监控脚本monitor.sh
    adb shell
    sh /data/local/tmp/monitor.sh "$monitor_folder" "$monitorWindow" "$monitorPackages" 5 $meminfo_type &
    参数说明:
    1、monitor_folder = 监控结果文件夹名(/data/local/tmp/$monitor_folder)
    2、monitorWindow = fps监控窗口,不抓取为空"" adb shell dumpsys SurfaceFlingerAllocated buffers信息中获取,安卓8.0之后有标号如#0、SurfaceView后有“ - ”传参注意需要""
    3、monitorPackages = 额外抓取heap、views、threads、FD信息的进程,多个用|间隔,不抓取为空""
    4、5 = 5秒间隔
    5、meminfo_type = 1,取所有进程PSS,额外取指定进程详细信息,0则只取配置进程内存信息
    预期监控时长结束后,停止监控:
    adb shell touch /data/local/tmp/stop
    获取结果
    adb pull /data/local/tmp/$monitor_folder

  • 监控脚本monitor.py
    生成报告:(需安装python环境和pandas库) python monitor.py 文件夹路径 说明: 1、脚本会先遍历路径下meminfo.csv所在路径,并使用其上一级目录作为case名
    2、monitor_HTML是报告的模板文件,数据采用的是生成js动态加载的形式,脚本会将其复制到传参目录下
    3、依次处理csv数据存为data/case名_csv结果文件夹名,list.js为case选择列表数据,cpu和pss存储了最大值和极值差的csv
    4、查看报告数据需要浏览器有本地读写权限:
    chrome: start chrome.exe --allow-file-access-from-files
    firefox: about:config 中 privacy.file_unique_origin属性false
    5、报告数据刷新会在点击监控结果文件夹名称后刷新

monitor-for-android's People

Contributors

sandmanli avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.