如何分析android应用性能,java函数调用关系。

 

1.mksdcard  -l sdcard  512M /root/.android/sdcard.img

2.在应用程序中加入trace 的开始和结束函数(详细说明参考开发文档)

   // start tracing to "/sdcard/calc.trace"

     Debug . startMethodTracing ( "calc" );    --------calc是你要生成的.trace文件的名字

  // ..

  // stop tracing

  Log.d("lizhenghui","NNNNNNN stop traceview debug");

  Debug . stopMethodTracing ();

3 . 在eclipse 的run Configuraton-->Target 项的 Additional Emulator Command Line Options下指定Emulator启动时的sdcard目录: -sdcard /root/.android/sdcard.img

 

4.从eclipse运行android运用。

5. 退出运用程序, 用logcat 查看上面的log信息是否出现,确保trace文件不为空。

6。adb ls /sdcard/

    会看到一个文件:calc.trace 就是我们需要的文件。

7。把trace文件下载到本地。

 adb pull /sdcard/calc.trace ./

8。traceview calc.trace

    打开了trace文件,用点耐心看看帮助文档,可以知道这个文件上部分为时间关系图,反映的就是在什么时间执行什么函数,下部分为函数关系图,反映的就是函数的调用关系。下部分各项的含义:

Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent 和Children子项,就是指被调用和调用。

Incl: inclusive时间占总时间的白分比

inclusive: 调用占用时间。(包括了所有的子方法的调用时间)

Excl: 执行占总时间的白分比。

Exclusive: 执行时间,不包含子方法的时间。

Calls+Recur Calls/Total: 调用和重复调用的次数

Time/Call: 总的时间。(ms)

9.生成函数调用关系图

  A. apt-get install graphviz

  B. dmtracedump  -g aa.png calc.trace

  C. ls 查看是否生成aa.png 图片。

10。用图片工具打开图片。

11。图片上函数显示格式 (用开发文档上的做例子,我用的是远程外网)


     callname (, ,)

  • ref -- 编号
  • callname -- 函数名
  • --调用时间
  • -- 执行时间
  • -- 被调用的次数

12。OK 偷欢一会,嘿嘿!


更多相关文章

  1. C语言函数以及函数的使用
  2. android 导出签名APK--混淆文件proguard.cfg详解
  3. Android 在xml布局配置文件中给Button按钮添加事件
  4. Android在SDcard建文件夹(在Android中移动文件必用)
  5. Android Studio 配置快捷方式生成JNI头文件的方法
  6. android 安装文件例子
  7. android 读取DDMS里的文件时打不开,解决方法
  8. android配置文件详解

随机推荐

  1. Android状态栏透明
  2. Android(安卓)dex分包技术
  3. Android(安卓)到底什么是Dialog?
  4. Android(安卓)Wifi IP 设置
  5. android opengl 画三角形
  6. Android(安卓)Font Metrics
  7. Activities
  8. Google cardBoard Android(安卓)API (十
  9. Android(安卓)工具类大全java文件
  10. Android(安卓)模拟键值