Android bootchart 工具使用
Android bootchart 工具使用
- 标签:
- bootchart /
- android bootchart /
- android 开机优化 /
- android系统工具 /
- android性能调优
1、bootchart工具简介:
bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。
2、bootchart在Android平台使用情况:
Android系统中已有一份bootchart的c实现,位于system/core/init/bootchart.c中。bootchart对Android开机测量是通过内建在init进程中实现的,在后台执行测量。不过bootchart的测量时段是从bootchart被初始化之后到home screen出来之前,不包括bootloader和kernel的执行时间(bootchart的原理是取代init process或是内建在init process里,所以只能取得initial script的开机过程报告)。
3、bootchart在Android平台使用步骤:
1) Ubuntu 12.04下bootchart工具安装
2) bootchart在Android下编译
3) bootchart在Android下的应用
4) bootchart测量结果图形化显示
下面依次对上述4个步骤做详细说明
1)、Ubuntu 12.04下bootchart工具安装:
网上很多教程说要安装下面两个工具,经个人验证最后在制作图形化显示时,出现bootchart无法正常解析android中生成的bootchart.tgz文件。
- sudo apt-get install bootchart
- sudo apt-get install pybootchartgui
异常情况如下,需要下载旧版本的bootchart工具,最终问题得到解决。
下载bootchart_0.9-0ubuntu6_all.deb工具,下载地址:http://download.csdn.net/detail/sckgenius/7166477
安装方法:sudo dpkg -i bootchart_0.9-0ubuntu6_all.ded
2)、bootchart在Android下编译:
1、 vi system/core/init/bootchart.h 修改define BOOTCHART 0 为 define BOOTCHART 1
- *
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- #ifndef _BOOTCHART_H
- #define _BOOTCHART_H
- #ifndef BOOTCHART
- # define BOOTCHART 0 // 修改define BOOTCHART 1
- #endif
- #if BOOTCHART
- extern int bootchart_init(void);
- extern int bootchart_step(void);
- extern void bootchart_finish(void);
- # define BOOTCHART_POLLING_MS 200 /* polling period in ms */
- # define BOOTCHART_DEFAULT_TIME_SEC (2*60) /* default polling time in seconds */
- # define BOOTCHART_MAX_TIME_SEC (10*60) /* max polling time in seconds */
- #endif /* BOOTCHART */
- #endif /* _BOOTCHART_H */
2、添加bootchart进入系统中,执行如下命令:
- touch system/core/init/init.c
- export INIT_BOOTCHART=true
其中touch命令的作用就是将init.c文件的最后修改时间改为当前时间,这样保证init.c文件会被重新make,而bootchart就是在init.c中被调用的,从而保证bootchart会被编进系统中,重新编译固件编译生成新的可执行文件init,该文件在手机文件系统位于根/下,对应的flash image是boot.img,为此需重新烧写含有新的init的boot.img。
3) bootchart在Android下的应用:
1、将编译生成的带有bootchart工具的Android系统重新烧录到开发板上,并启动系统。
2、在系统data目录创建文件/data/bootchart-start,其内容是bootchart的采样时间:
- adb shell 'echo $TIMEOUT > /data/bootchart-start'
其中$TIMEOUT是期望采样的时间,单位为秒,例如要采样两分钟,则执行:
- adb shell 'echo 120 > /data/bootchart-start'
3、在系统data目录创建/data/bootchart,执行
- adb shell 'mkdir /data/bootchart'
在开发板上系统的/data/目录下新建目录bootchart/用来存放bootchart的测量结果,后面要利用这些文件生成可视化图片。
4、重新启动开发板,在开发板的Android系统的/data/bootchart/目录下将看到以下5个文件组成:
到此为止,bootchart执行测量后生成的测量数据已经完成,看上面有3个.log文件,下面进行生成美观的图形化显示。
需要注意,在开发板上运行bootchart采样完成后若不再使用bootchart则需手工删除文件/data/bootchart-start,否则开发板每次重启时都会运行bootchart。
4) bootchart测量结果图形化显示:
1、生成bootchart.tgz 在data/bootchart目录执行以下命令:
- busybox tar -czf bootchart.tgz *
或者使用android源码打包工具中提供的 grab-bootchart.sh文件进行打包,源码路径:system/core/init/grab-bootchart.sh
2、生成美观的图形化显示
拷贝/data/bootchart下刚才生成的 bootchart.tgz到Linux环境下,执行:
- java -jar /usr/share/bootchart/bootchart.jar /path/bootchart.tgz
执行上面命名会在/path目录生成一个bootchart.svgz 问题,下面对其进行重命名
- sudo mv bootchart.svgz bootchart.svg.gz
重命名完成后执行
- sudo gzip -d bootchart.svg.gz
此时会发现在path目录生成名为bootchart.svg图片,到此大功告成,美观的图形化显示show出来了。
转载地址:http://blog.csdn.net/andylau6789/article/details/24654385
Android bootchart 工具使用相关推荐
- imx6 android快速启动,freescale imx6 开机启动速度优化之Bootchart工具的使用问题
之前有安装bootchart,先执行以下命令,卸载掉bootchart工具 sudo apt-get autoremove bootchart bootchart安装 1.安装 $sudo apt-g ...
- java安卓开发工具_推荐几个非常实用的Android开发工具
工欲善其事,必先利其器.我们进行Android开发也要有好的开发工具辅助才能更好更高效的完成各种开发,为用户提供更实用的应用程序.本文就为大家推荐几个非常实用的Android开发工具,及几个常用的编辑 ...
- Xamarin.Form的Android SDK工具下载安装
Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...
- android 测试工具,Android开源项目第四篇:开发及测试工具篇
本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...
- 【Android CPU 优化】Android CPU 调优 ( Trace 文件分析 | Android Profiler 工具 | CPU Profiler 工具 )
文章目录 一.Android CPU 优化 二.CPU Profiler 工具 三.相关资源 一.Android CPU 优化 在 Android 中 , 出现 动画掉帧 , 页面切换白屏 , 卡顿 ...
- 【Android 内存优化】Android Profiler 工具常用功能 ( 监测内存 | 内存快照 )
文章目录 一. 内存泄漏排查 ( Android Profiler 工具 ) 二. Android Profiler 内存监测相关功能 三.内存快照分析 内存泄漏原理 : 长生命周期对象 , 持有短生 ...
- qpython3调用adb_Python实现的基于ADB的Android远程工具
Python实现的基于ADB的Android远程工具,本工具为原创,涉及知识: - Python编程 - Tkinter GUI编程 - ADB通信机制 代码全文: #!/usr/bin/env py ...
- Xamarin.Forms教程Android SDK工具下载安装
Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...
- android sharedpreferences工具类
今天,简单讲讲如何写一个sharedpreferences的工具类. 很简单,把一些重复的操作封装在工具类里,其他地方调用就可以.在网上搜索了比较多的资料,找到一个比较好的工具类. 参考文章:http ...
最新文章
- shell操作典型案例--FTP操作
- SC-控制Windows服务的命令
- 数据有了,如何构建数据资产?
- 用maya怎么做ak47_方铁做木纹用水性木纹漆怎么样?
- winrar5.50去广告教程(仅供学习使用)
- Akka Actor远程调用
- 从头基于空镜像scratch创建一个新的Docker镜像
- 【计算机网络】数据链路相关技术
- 为什么人会摆高姿态_为什么感情相处中不要随意掏心掏肺?
- JAVA 中的null
- Entity Framework 异常档案
- 2019测试学习路线图,内附完整自学路线+视频+工具
- 计算机图形学核心期刊,CCF 推荐国际国内会议及中文核心期刊要目总览
- SpringBoot项目实现qq邮箱验证码登录
- 超大背包问题(01背包)
- request to https://registry.npmjs.org/@angular%2fcli failed, reason: read ECONNRESET
- 【FFmpeg】通过编解码ID(AV_CODEC_ID_*)获取编解码器AVCodec指针的过程分析
- C语言输入Aa1Bb2Cc3,《C语言基础知识》PPT课件.ppt
- 【ARM】仅用三个GPIO口实现串行SSI信号读取
- 智能用户增长: 一站式的消费者资产管理和运营平台
热门文章
- html5手机远程控制电脑,教你怎么用手机远程控制电脑
- 社区人物志|李昊鹏:日拱一卒,功不唐捐
- hive中的UDF 自定义函数 : 如何创建临时/永久函数
- wps去除登陆_WPS强制用户登录功能,这是要闹哪样?
- 【Python】【Jupyter】Jupyter 的简单使用 与 Python的基本输出输入
- 通过cv2.resize()来改变图片大小
- 关于MTTF、MTBF、MTRF
- 三星android怎么获取root,三星S8如何获取ROOT权限_三星S8ROOT获取教程
- Empty suite
- LeCo-81.搜索旋转数组(二)