在一台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 初体验相关推荐

  1. Windows Embedded CE 6.0开发初体验(二)CE开发环境 收藏

    上一篇<Windows Embedded CE 6.0开发初体验>之"嵌入式开发流程": http://blog.csdn.net/aawolf/archive/200 ...

  2. Windows Embedded CE 6.0开发初体验(三)设置Boot-loader

    在Digi CC 9P开发板中已经预置了Boot-loader和一个CE 6.0的系统,所以,我们直接启动开发板,就可以运行一个CE 6.0的操作系统.不过,我们的最终目的是要开发一个自己的CE 6. ...

  3. Windows Embedded CE 6.0开发初体验(二)CE开发环境

    CE开发环境 下面就要让今天的主角闪亮登场了--Digi CC 9P开发板.为了感谢Digi提供的开发板,还是给他们做个广告吧:这是一家以WiFi相关产品为主营业务的公司,也生产ARM架构的CPU,所 ...

  4. Windows Embedded CE 6.0开发初体验(一)Windows CE概述

    这篇文章的目的并不是介绍Windows Embedded CE开发的方方面面,只是用一个初涉嵌入式领域的软件开发者的视角来介绍Windows CE开发中最常用的概念和知识,解决大家会在实际开发中碰到的 ...

  5. XPe开发初体验:XPe概述

    作者:iwinembed 转自:http://blog.itpub.net/16803921/viewspace-504417/ XP Embedded是微软Windows Embedded产品线中非 ...

  6. 苹果电脑安装python3密码_mac系统安装Python3初体验

    前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...

  7. MapReduce编程初体验

    需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...

  8. 小程序 缩放_缩放流星应用程序的初体验

    小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...

  9. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...

最新文章

  1. Docker安装mysql容器
  2. Selenium + Python操作IE 速度很慢的解决办法
  3. java后台访问接口
  4. Google zerotouch方案介绍
  5. Dubbo的RPC原理
  6. linux使用gpio开一个线程,LINUX的gpio_request_one作用
  7. 参数等效模型可以用于_干货分享电池单体产热特性及热模型标定分析(2)
  8. ASP.NET MVC 入门4、Controller与Action
  9. LeetCode 1377. T 秒后青蛙的位置(BFS)
  10. 写你自己的MVC框架
  11. Android 系统(254)---Android libphonenumber Demo 手机号码归属地
  12. [转载] vim风格设置
  13. 15款android设备上的代码编辑器
  14. SpringCloud(若依微服务版为例)集成WebSocket实现前后端的消息推送
  15. 解决echarts在平移和缩放中国地图后,下钻到下一级具体省份地图时生成的地图不在容器中间,会跑到容器外面去。
  16. 五千字聊一聊接口测试
  17. Web 框架的替代方案来了!
  18. 最新总结Spring知识及常见面试题
  19. 科技创新与美国麻省理工学院的发展
  20. 电脑编程技巧与维护征稿启示

热门文章

  1. 【PyCharm】python2.7 3.7遇到的bug
  2. 第三次(一):对比《阴阳师》《小冰冰传奇》两款游戏
  3. impala/hive脱敏导数方法,建表跟hdfs路径关联
  4. ES6简介与发展历史(ES笔试题、简介、ECMAScript 背景、ECMAScript 历史)
  5. 开源飞控初探(六):地面站和SDK
  6. XRD测试的68个问题(二)
  7. 国庆长假大事记:百度地图、先锋系、火箭队
  8. 用新版Edge浏览器打开只有Internet Explorer兼容的老网页
  9. Excel破解vba密码
  10. 6款常见的无人机仿真开发平台(附超详细特点功能对比)