美文网首页
Android Systrace工具使用

Android Systrace工具使用

作者: Bfmall | 来源:发表于2023-03-29 11:38 被阅读0次

    前言

    Systrace 是平台提供的旧版命令行工具,可记录短时间内的设备活动,并保存在压缩的文本文件中。该工具会生成一份报告,其中汇总了 Android 内核中的数据,例如 CPU 调度程序、磁盘活动和应用线程。

    一、Systrace是什么?

    Systrace 允许你收集和检查设备上运行的所有进程的计时信息。 它包括Androidkernel的一些数据(例如CPU调度程序,IO和APP Thread),并且会生成HTML报告,方便用户查看分析trace内容。

    二、使用步骤

    使用这个要先安装Python2.7.18
    下载最新的跟2.7版本可能不行,最新的systrace不兼容,2.7的没有pip命令。
    继续阅读默认您已经安装好Python2.7.18

    cmd进入Android SDK Platform-Tools目录
    要进入到systrace
    然后输入systrace.py,这里可以成功的就不用看下面的了
    如果报错ImportError: No module named win32con或者ImportError: No module named six就继续看下面的

    1.安装win32con模块
    输入命令 pip install pypiwin32


    0b4946b298428658604976621dc651c.png

    2.如果pip版本过低则需要升级pip
    输入命令 python -m pip install --upgrade pip(不升级也行好像)


    38816d585ba0c26559379507fb90b43.png
    3.安装six模块
    输入命令 pip install six 如果报错可以试下先卸载six模块在重新安装,卸载命令是 pip uninstall six
    c2e98133e4923983b9df81e11fed6ce.png

    4.输入systrace -l


    c2195b4bf8f86df215daecacce5c941.png
    看到这里就表明systrace.py能使用了
    5.输入systrace.py
    14eb2c8b4c9796232d3dc98a45af874.png
    启动之后你按回车他就会停止录制并且在目录生成一个trace.html文件,生成的trace.html文件默认在systrace目录下

    6.输入python systrace.py -t 5 -o C:\sourcecode\a.html gfx input view am dalvik sched wm disk res -a com.example.nqct
    可以指定输出目录和时间5s


    87d10146373750725948c2ef3daeec1.png

    7.命令用法:

    python systrace.py [options] [category1] [category2] ... [categoryN]
    

    options
    其中options可取值:

    options 解释
    -o <FILE> 输出的目标文件
    -t N, –time=N 执行时间,默认5s
    -b N, –buf-size=N buffer大小(单位kB),用于限制trace总大小,默认无上限
    -k <KFUNCS>,–ktrace=<KFUNCS> 追踪kernel函数,用逗号分隔
    -a <APP_NAME>,–app=<APP_NAME> 追踪应用包名,用逗号分隔
    –from-file=<FROM_FILE> 从文件中创建互动的systrace
    -e <DEVICE_SERIAL>,–serial=<DEVICE_SERIAL> 指定设备
    -l, –list-categories 列举可用的tags

    category
    category可取值:

    category 解释
    gfx Graphics
    input Input
    view View System
    webview WebView
    wm Window Manager
    am Activity Manager
    sm Sync Manager
    audio Audio
    video Video
    camera Camera
    hal Hardware Modules
    app Application
    res Resource Loading
    dalvik Dalvik VM
    rs RenderScript
    bionic Bionic C Library
    power Power Management
    sched CPU Scheduling
    irq IRQ Events
    freq CPU Frequency
    idle CPU Idle
    disk Disk I/O
    mmc eMMC commands
    load CPU Load
    sync Synchronization
    workq Kernel Workqueues
    memreclaim Kernel Memory Reclaim
    regulators Voltage and Current Regulators

    示例
    例如,在systrace.py所在目录下执行指令:

    python systrace.py -b 32768 -t 5 -o mytrace.html wm gfx input view sched freq
    ./systrace.py -b 32768 -t 5 -o mytrace.html wm gfx input view sched freq //等价
    

    又例如,输出全部的trace信息

    python systrace.py -b 32768 -t 5 -o mytrace.html gfx input view webview wm am sm audio video camera hal app res dalvik rs bionic power sched irq freq idle disk mmc load sync workq memreclaim regulators
    

    注:收集trace,需要提前安装python,并且一定要注意必须是python 2.x,而不是能3.x,否则可能会出现问题。另外,buffer大小不可过大,否则会出现oom异常。

    示例1

    systrace.py -t 10 -o d:/mytrace2.html wm gfx input view sched freq -a com.example.myapplication
    

    三、查看systrace

    有两种查看方式:
    1.旧方法:使用谷歌浏览器,在地址栏输入 chrome://tracing/
    然后看到load按钮点击导入刚刚生成的文件即可

    04bf00bea649a697e40c76605fed1ad.png
    2.新方法(推荐):在浏览器地址栏输入 https://ui.perfetto.dev/
    点击 Open trace file 导入刚才的文件
    be2325359e38cc056e876a6fb7ba8fb.png

    相关文章

      网友评论

          本文标题:Android Systrace工具使用

          本文链接:https://www.haomeiwen.com/subject/xvyzrdtx.html