DS-5 CE 初体验

在一台MSM7627带256RAM的手机上移植android 2.3.5,发现此平台的性能跑2.3.5只能说是刚刚好。后台运行2-3个程序的时候就已经卡顿严重。于是想办法对其进行性能分析和优化,老大介绍了ARM DS-5工具让熟悉,于是到arm主页找文档。

ARM的说明文档见这里,最新版本是DS-5 version5.8 ,以下步骤是根据链接中的文档翻译过来,摘取测试过的部分列下来。

由于没有license,所以只好下载CE版本,连接里的how to install, how to debug和how to profile基本上已经说得很明白。

HOW TO INSTALL:


for HOST:

Android SDK: 这个没啥好说的,搞Android不能缺,还有JDK等等。

eclipse SDK: DS-5文档推荐INDIGO版本,解压之后设定好Android SDK安装路径。

选help  -> Install New Software,在work with后输入http://tools.arm.com/eclipse,点add,之后的步骤跟安装ADT插件差不多,一路确认和next。

for TARGET:

DS-5的profile功能需要TARGET端一个守护进程定时的从kernel取得系统运行的信息,所以需要重新配置kernel打开这个功能,还需要针对android编译出守护进程和kernel层的模块。

对于kernel,运行make kernelconfig(高通平台),或者在kernel源码目录运行make menuconfig(FSL平台),打开以下选项:

General Setup -> Profiling Support

Kernel Features -> High Resolution Timer Support

Kernel Hacking -> Tracers -> Kernel Function Tracer

重新编译出kernel和boot.img烧录到TARGET。

在eclipse中点help -> ARM Extras,里面有kernel层模块(gator/driver-src)和daemon的源码(gator/daemon-src)。

将driver-src目录复制到kernel代码树里,运行make -C 'kernel_dir' M='pwd' ARCH=arm CROSS_COMPILE=‘your compiler’ modules编译出gator.ko

将daemon-src目录复制到android代码树里上层make能找到的地方,例如直接放到externel里,到daemon-src里运行mm编译出gatord(文档的示例使用NDK来 编译,对于没有完整android代码的情况下可以这样做,但是有android源码的话使用本文的方法貌似简单些)


HOWTO PROFILE:


gator.ko和gatord用adb push到TARGET,insmod gator.ko然后gatord &

通过USB连接TARGET和HOST,在HOST端运行adb forward tcp:8080 tcp:8080

运行eclipse,选 Window > Show View > Other > ARM Streamline > ARM Streamline Data打开streamline子窗口,在ip address中输入localhost或直接127.0.0.1,点start capture(第一个按钮)开始采样,然后就可以在TARGET端进行需要调试的操作(运行应用之类的),点stop手动停止(可以设定采集一段时间后自动停止,详见文档说明)。

DS-5 CE 初体验_第1张图片

采集完成后,ARM streamline自动分析数据并生成图示:

DS-5 CE 初体验_第2张图片


关键的event和每个activity都有跟踪到,可惜CE版的比标准版阉割了不少。以上步骤在XP 32bit和WIN7 64bit上测试通过。how to debug的功能暂时还没测试过,对于使用NDK的app开发应该作用挺大。


你可能感兴趣的:(eclipse,android,测试,文档,compiler,profiling)