Android开机时间工具分析

news2024/11/24 2:45:51

背景

    android 上面有很多的方法可以分析开机时间 比如打log,通过log 分析。android 的官网上面提供了下面的两种图形化的方式来分析开机时间,一些异常很明显的拖长整个开机时间的活动
可以很容易就看出来。

问题

    android 官网和网上的教程很多都不适用于windows 的平台。会出现各种不同的报错,下面是整理的适用于windows的方式。

一、 bootchart

  • 生成bootchart.tgz

adb shell 'touch /data/bootchart/enabled'
adb reboot
# 开机后,pull出相关数据
adb shell 'tar -czf /sdcard/bootchart.tgz /data/bootchart'
adb pull /sdcard/bootchart.tgz .
  • window上面使用工具生成图像

GitHub - xrmx/bootchart: merge of bootchart-collector and pybootchartgui。
下载 pybootchartgui。 将里面的main.py.in修改成main.py
先决条件:
需要先下载好python3以上的版本,
参考下面的文章
Windows上安装Python第三方库pycairo的解决办法_MahoChan的博客-CSDN博客
安装pycario,使用
pip install pycairo-1.19.1-cp38-cp38-win_amd64.whl
然后 将原先生成的压缩文件放到下载的 pybootchartgui里面 运行如下命令
就可以生成bootchart的图了。
python pybootchartgui.py --show-all -n -f png bootchart.tgz
网上其他方法都不行,要不生成的图是有问题的。

csdn下载链接:

https://download.csdn.net/download/H2008066215019910120/87752880

二、 用systrace进行分析

  • 修改atrace.rc

这个文件在/system/core/init/底下,注释掉下面两句
# write /sys/kernel/debug/tracing/tracing_on 0
# write /sys/kernel/tracing/tracing_on 0
同时添加下面的这些
on property:persist.debug.atrace.boottrace=1
   start boottrace
   service boottrace /system/bin/atrace --async_start -b 30720 gfx input view webview wm am sm audio video binder_lock binder_driver camera hal res dalvik rs bionic power pm ss database network adb vibrator aidl sched  
   disabled
   oneshot
  • 修改build.prop

1. 在build.prop 中添加
debug.atrace.tags.enableflags=802922
adb shell setprop persist.debug.atrace.boottrace 1
2. 重启获取trace
adb root && adb shell atrace --async_stop -z -c -o /data/local/tmp/boot_trace
adb pull /data/local/tmp/boot_trace

三、 分析systrace

  • 在chrome打开  Perfetto UI
  • 分析,可以用搜索栏搜索StartActivityManager,  可以看到下列时间先后顺序的activity的启动流程。
点击具体的某一项 在详细信息栏中就可以看到start某个activity持续的时间。如果在activity中有看到某一项持续的时间很长的话,那就是可疑的一项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【解决方案】基于边缘视频AIBox的校园立体防控解决方案

基于边缘AIBox的校园立体防控解决方案 一、方案背景 智慧校园安全防控系统是一款围绕学校周界安全、出入口安全、人身安全、消防安全、财产安全等校园安全场景打造的主动智能预警防控系统。它利用人工智能技术对校内及周边环境进行全天候24h实时监测和智能分析,对…

Linux最常用的15个基本命令

目录 Linux基本命令 命令1:ls (查看指定目录中有哪些内容) ls / 相当于查看根目录中的内容,相当于查看我的电脑 ls -l(小写l,或者使用ll)详细查看目录下所有内容 ls /usr/lib&#xff08…

AI面试必刷算法题 附答案和解析 --持续更新中

面试中发现很多同学一股脑优化、润色项目经历,但聊到基本的算法,反而会一脸懵X,得空整理下算法题给大家,希望对你有帮助。 1. tail(head(tail(C))) ( ) 已知广义表: A(a,b), B(A,A), C(a,(b,A),B), 求下列运算的结果:&#xff08…

vue 做一个文本展示 点击文本弹出element ui的时间选择器 但不会出现element ui时间组件的那个输入框

我们先来创建一个vue2项目 引入element ui 然后 找到一个组件 这样写 <template><div><el-date-pickerv-model"value"type"datetimerange"align"right"unlink-panelsrange-separator"至"start-placeholder"开始日…

ext-3 怎么将PDK的库包添加到CCS工程中

第一次接触ccs和A8这个库&#xff0c;PDK工具包的库是啥后缀&#xff0c;怎么添加到工程里&#xff1f;等等&#xff0c;这些摸索了好久&#xff0c;这里记录一下&#xff01;&#xff08;这里的编译器都选则的是GNU&#xff0c;非TI自带的编译器&#xff09; 目录 1、问题来…

UNIX网络编程卷一 学习笔记 第十一章 名字与地址转换

到目前为止&#xff0c;本书中所有例子都用数值地址表示主机&#xff08;如206.6.226.33&#xff09;&#xff0c;用数值端口号来标识服务器&#xff08;如端口13代表daytime服务器&#xff09;。但出于某些理由&#xff0c;我们应使用名字而非数值&#xff1a;名字比较容易记住…

编译链接再认识+gdb认识+makefile了解

索引 一. 编译链接再认识1.预处理2.编译3.汇编4.链接1.静态链接2.动态链接 二.gdb三.makefile/make 一. 编译链接再认识 主要针对gcc展开 一个文件从源文件编译成可执行文件大致要经历四个步骤 预处理&#xff08;进行宏替换&#xff09;编译&#xff08;生成汇编&#xff09…

[Pandas] 创建透视表与交叉表

1.生成透视表 在使用Python处理数据时&#xff0c;我们希望能够快速地进行排列与计算数据&#xff0c;从而帮助我们更有效的分析数据&#xff0c;pivot_table函数可以实现Excel数据透视表的功能 基本语法格式 pd.pivot_table(data, valuesNone, indexNone, columnsNone, agg…

【51单片机】使用STC烧录软件生成定时器的代码以及注意事项

&#x1f38a;专栏【51单片机】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Love Story】 &#x1f970;大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 目录 1.点击定时器计算器​编辑 2.每次打开的时…

华为MPLS跨域C1方式RR场景(数据不经过RR)实验配置

目录 配置BGP邻居的建立 配置MPLS LDP 配置RR之间的MP-BGP邻居 配置通过ASBR学习PE路由并为PE分配标签&#xff08;实现Vpnv4路由的传递和数据传输&#xff09; 根据图配置接口的IP地址和IGP协议 BGP邻居用来传递标签和RR、PE的路由 MP-BGP邻居用来传递Vpnv4路由 配置BG…

QGC分析(一)-整体分析和通信流程

参考QGroundControl开发指南 设计理念 QGC用户界面是用QML实现的。 构建 可以按照这一篇来在Windows中下载源码并且编译。QGroungControl在QT中源码编译&#xff08;包括配置环境&#xff09; 通信流程 src/comm/LinkManager.cc LinkManager始终打开UDP端口&#xff0c;…

Vue3中如何实现数字翻牌效果?

一、需求 监听数据的变化&#xff0c;实现数字翻牌效果 本人OS:本想截一个gif&#xff0c;但是一直没找到合适的截gif工具......有好用的截gif工具&#xff0c;跪求戳戳我~ 二、思路 1.设置初始数组&#xff1a;[0] 2. 把获取到的新数据整个数字用逗号隔开&#xff0c;组成…

让Bito帮你写Mokito单元测试

前言 现在稍微大一点的公司应该都有单测覆盖率要求&#xff0c;比如核心工程单测覆盖率95%以上&#xff0c;非核心工程90%以上。单测可以降低开发错误的反馈回路&#xff0c;减少重复工作&#xff0c;提升开发效率。但是写单测对于开发来说需要额外的时间。我们可以用TestMe、…

AdaBoost算法介绍和代码实现

AdaBoost算法介绍和代码实现 算法原理 AdaBoost算法的核心思想是将弱分类器组合成一个强分类器。在每一轮迭代中&#xff0c;AdaBoost会训练一个新的弱分类器并调整每个样本的权重&#xff0c;使得之前分类错误的样本在下一轮迭代中受到更多的关注。最终&#xff0c;AdaBoost…

认识监听器(Listener)

监听器是什么&#xff1f; 监听器&#xff08;Listener&#xff09;是一种运行在后台的程序&#xff0c;它主要用于监控某些事件在系统中的发生&#xff0c;并且根据这些事件做一些特定的处理。在Web应用程序中&#xff0c;监听器可以观察ServletContext、HttpSession以及Serv…

PostgreSQL-数值类型

数值类型是最常用的几种数据类型之一&#xff0c;主要分为&#xff1a; 整型浮点型精确小数 数值类型介绍 数值类型列表 类型名称存储空间描述范围smallint2字节小范围的整数。Oracle中没有此数值类型&#xff0c;使用number代替-2^15 ~ 2^15-1int 或 integer4字节常用的整数…

日常开发为什么需要做Code Review

日常开发为什么需要做Code Review 一、背景 最近在开始一个新的项目&#xff0c;在查看项目中代码及具体细节时&#xff0c;发现这个项目真实一堆乱麻&#xff0c;没有规律可循&#xff0c;可总结下这个项目的缺陷 没有规律可循&#xff0c;没有结构性设计不做公共封装&#…

08_Uboot顶层Makefile分析_make过程

目录 make 过程 make 过程 配置好 uboot 以后就可以直接make 编译了,因为没有指明目标,所以会使用默认目标,主 Makefile 中的默认目标如下: 目标_all 又依赖于all,如下所示: 如果KBUILD_EXTMOD为空的话_all 依 赖 于all 。这 里 不 编 译 模 块,所 以KBUILD_EXTMOD肯定为空,_…

二分分类.

2.1 二分分类 在神经网络的计算中&#xff0c;通常先有一个叫做前向暂停(forward pause)或叫做前向传 播(foward propagation)的步骤&#xff0c;接着有一个叫做反向暂停(backward pause) 或叫做反向传播 (backward propagation)的步骤。 一张图片在计算机中是如何表示的&…

4。计算机组成原理(1)数据表示和运算

嵌入式软件开发&#xff0c;非科班专业必须掌握的基本计算机知识 核心知识点&#xff1a;数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统 一 进位计数法和不同进制数的相互转换 其他进制(b)&#xff0c;转十进制的计算公式 十进制数&#xff0c;转…