当前位置: 首页 > news >正文

bootchart抓Android系统启动各阶段性能数据

最近在做Android系统启动优化,首要任务是找到启动过程中各阶段耗时点,进而有针对性地进行优化。主要用bootchart抓开机数据,本文主要记录下工具的使用方法。

1.抓开机数据

adb root adb shell ‘touch /data/bootchart/enabled’

adb reboot

重启后,生成的文件位于机器的/data/bootchart下。
在这里插入图片描述

2.解析数据

2.1 安装解析工具

sudo apt install python-is-python3  //如果已经安装了pyhton3,就不需要再次安装
cd ~/Documents   //任意一个文件夹都可以
git clone https://github.com/xrmx/bootchart.git
cd bootchart/pybootchartgui
mv main.py.in main.py

2.2 指定pybootchartgui.py的路径

到下载的bootchart代码目录里找到pybootchartgui.py,记下全路径, 在$ANDROID_BUILD_TOP/system/core/init/grab-bootchart.sh里指定pybootchartgui.py的全路径, 注意,python要用python3
在这里插入图片描述

2.3 解析数据

在android源码根目录执行如下命令即可
$ANDROID_BUILD_TOP/system/core/init/grab-bootchart.sh
在这里插入图片描述

解析后在当前目录生成一个bootchart.png 的文件,截取一部分如下:
在这里插入图片描述

3.恢复出厂怎么抓bootchart ?

恢复出厂时,想抓开机各阶段的数据该怎么抓。恢复出厂会把/data下的数据都清除掉,所有只有通过修改代码如下:

/system/core/init/bootchart.cpp
在这里插入图片描述

参考:https://source.android.com/docs/core/perf/boot-times#bootchart

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【微服务】Spring Cloud Alibaba 的介绍以及和主要功能
  • Type-C接口主要的几个功能引脚及功能
  • 【题目/训练】:双指针
  • 云主机部署 TiDB 测试集群
  • 景联文科技:一文详解如何构建高质量SFT数据
  • java基础03——Arrays.asList与ArrayList的区别(基本概念、用法、使用场景)
  • 24/8/17算法笔记 模仿学习算法
  • Spring中AbstractAutowireCapableBeanFactory
  • Unity3D开发之OnCollisionXXX触发条件
  • Spring Boot集成Devtools实现热更新?
  • 8.15 day bug
  • 最佳薪酬管理系统盘点:9款优选推荐
  • 微信答题小程序产品研发-后端开发
  • 重复的子字符串 | LeetCode-459 | 字符串匹配 | KMP | 双指针
  • 融合创新:EasyCVR视频汇聚平台云计算技术与AI技术共筑雪亮工程智能防线
  • FineReport中如何实现自动滚屏效果
  • IndexedDB
  • JS变量作用域
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Web标准制定过程
  • 分布式任务队列Celery
  • 看域名解析域名安全对SEO的影响
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 我从编程教室毕业
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 湖北分布式智能数据采集方法有哪些?
  • #if等命令的学习
  • #pragam once 和 #ifndef 预编译头
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (NSDate) 时间 (time )比较
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (六)c52学习之旅-独立按键
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (算法)求1到1亿间的质数或素数
  • (转)linux下的时间函数使用
  • **CI中自动类加载的用法总结
  • .net core控制台应用程序初识
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET轻量级ORM组件Dapper葵花宝典
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • /3GB和/USERVA开关
  • ??在JSP中,java和JavaScript如何交互?
  • @RequestMapping-占位符映射
  • @SuppressWarnings注解
  • [ linux ] linux 命令英文全称及解释
  • [] 与 [[]], -gt 与 > 的比较
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [2016.7 test.5] T1