zoukankan      html  css  js  c++  java
  • 安卓性能调优工具简介(转)

    Traceview 

    Traceview是执行日志的图形查看器。这些日志通过使用Debug类记录。 Traceview可以帮助调试应用和profile性能。

    Traceview布局

    Traceview可以加载trac日志文件(通过添加跟踪代码添加到应用或由DDMS生成)。TraceView的界面分为两部分,上面是时间线面板(Time Panel),描述了当每个线程和方法的启动和停止时间。下面是profile面板,概述方法所做的事情,如下图所示:

    时间线面板:

    Traceview timeline panel

    profile面板:

    Traceview profile panel.

    生成跟踪日志

    有两种方法可以生成跟踪日志:
    在代码中包含Debug类并调用其方法,如startMethodTracing()和stopMethodTracing(),这种方法很精确。
    使用DDMS的profile分析功能来生成跟踪日志。不太准确,不能够访问应用程序的代码或不需要精确的记录时间时使用。

    注意:如果使用Debug类,应用程序必须具有外部存储的写权限(WRITE_EXTERNAL_STORAG​​E)。

    1
    2
    3
    4
    5
    // start tracing to "/sdcard/calc.trace"
    Debug.startMethodTracing("calc");
    // ...
    // stop tracing
    Debug.stopMethodTracing();

    应用调用startMethodTracing()时,系统会创建<trace-base-name>.trace文件。这包含二进制方法跟踪数据和线程及方法名映射表。

    然后系统开始缓冲生成的跟踪数据,直到应用程序调用stopMethodTracing(),此时将其缓冲的数据写入到输出文件中。如果系统调用stopMethodTracing前达到最大缓冲器大小,系统停止trace并发送通知给控制台。

    开启profile时,解释的代码运行速度会较慢,并不代表实际执行速度。

    在Android的4.4和更高版本,取样会减少性能影响。使用startMethodTracingSampling()即可,停止依旧使用stopMethodTracing()。

    执行实例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    C:UsersAdministrator>adb pull /mnt/sdcard/tc.trace /tmp/tc.trace
     
    C:UsersAdministrator>adb shell am start -n com.mamlambo.article.simplecalc/.MainActivity
    Starting: Intent { cmp=com.mamlambo.article.simplecalc/.MainActivity }
     
    C:UsersAdministrator>adb shell am profile com.mamlambo.article.simplecalc start /mnt/sdcard/tc.trace
     
    C:UsersAdministrator>adb shell am profile com.mamlambo.article.simplecalc stop
     
     
    C:UsersAdministrator>adb pull /mnt/sdcard/tc.trace /tmp/tc.trace
    1352 KB/s (2429326 bytes in 1.754s)
     
     
    C:UsersAdministrator>traceview c: mp c.trace
    The standalone version of traceview is deprecated.
    Please use Android Device Monitor (tools/monitor) instead.

    注意:若出现mkdir failed for img Read-only file system,在执行 adb shell 命令后执行mount -o remount ,rw /即可

    http://www.cnblogs.com/pythontesting/p/4935451.html

  • 相关阅读:
    Android 入门到精通 (Index)
    负载平衡与冗余备份方案概述
    Android 程序组件交互分析
    复制时保留文件的目录结构
    notepad++中设置tab缩进的宽度
    scws
    php 将字符(包括汉字) 转换成16进制 (apache access log 中文显示16进制码)
    批量修改完整版本
    根据端口号查进程
    php性能优化
  • 原文地址:https://www.cnblogs.com/softidea/p/4935603.html
Copyright © 2011-2022 走看看