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手动停止(可以设定采集一段时间后自动停止,详见文档说明)。
采集完成后,ARM streamline自动分析数据并生成图示:
关键的event和每个activity都有跟踪到,可惜CE版的比标准版阉割了不少。以上步骤在XP 32bit和WIN7 64bit上测试通过。how to debug的功能暂时还没测试过,对于使用NDK的app开发应该作用挺大。
DS-5 CE 初体验相关推荐
- Windows Embedded CE 6.0开发初体验(二)CE开发环境 收藏
上一篇<Windows Embedded CE 6.0开发初体验>之"嵌入式开发流程": http://blog.csdn.net/aawolf/archive/200 ...
- Windows Embedded CE 6.0开发初体验(三)设置Boot-loader
在Digi CC 9P开发板中已经预置了Boot-loader和一个CE 6.0的系统,所以,我们直接启动开发板,就可以运行一个CE 6.0的操作系统.不过,我们的最终目的是要开发一个自己的CE 6. ...
- Windows Embedded CE 6.0开发初体验(二)CE开发环境
CE开发环境 下面就要让今天的主角闪亮登场了--Digi CC 9P开发板.为了感谢Digi提供的开发板,还是给他们做个广告吧:这是一家以WiFi相关产品为主营业务的公司,也生产ARM架构的CPU,所 ...
- Windows Embedded CE 6.0开发初体验(一)Windows CE概述
这篇文章的目的并不是介绍Windows Embedded CE开发的方方面面,只是用一个初涉嵌入式领域的软件开发者的视角来介绍Windows CE开发中最常用的概念和知识,解决大家会在实际开发中碰到的 ...
- XPe开发初体验:XPe概述
作者:iwinembed 转自:http://blog.itpub.net/16803921/viewspace-504417/ XP Embedded是微软Windows Embedded产品线中非 ...
- 苹果电脑安装python3密码_mac系统安装Python3初体验
前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...
- MapReduce编程初体验
需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...
- 小程序 缩放_缩放流星应用程序的初体验
小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...
- wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验
wxWidgets刚開始学习的人导引全文件夹 PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...
最新文章
- Docker安装mysql容器
- Selenium + Python操作IE 速度很慢的解决办法
- java后台访问接口
- Google zerotouch方案介绍
- Dubbo的RPC原理
- linux使用gpio开一个线程,LINUX的gpio_request_one作用
- 参数等效模型可以用于_干货分享电池单体产热特性及热模型标定分析(2)
- ASP.NET MVC 入门4、Controller与Action
- LeetCode 1377. T 秒后青蛙的位置(BFS)
- 写你自己的MVC框架
- Android 系统(254)---Android libphonenumber Demo 手机号码归属地
- [转载] vim风格设置
- 15款android设备上的代码编辑器
- SpringCloud(若依微服务版为例)集成WebSocket实现前后端的消息推送
- 解决echarts在平移和缩放中国地图后,下钻到下一级具体省份地图时生成的地图不在容器中间,会跑到容器外面去。
- 五千字聊一聊接口测试
- Web 框架的替代方案来了!
- 最新总结Spring知识及常见面试题
- 科技创新与美国麻省理工学院的发展
- 电脑编程技巧与维护征稿启示