1    RK2908开机时间分析和优化文档背景概述
     目前由于RK2908开机时间比较长(平均35s)可能对一体机项目的整体体验造成影响,所以需要对RK2908开机整个流程进行分析,是否有优化的地方。
2    分析RK2908开机所用的整体时间
2.1    统计的方法
采用bootchart 生成bootchart.png

2.1.1    Bootchart简介
Bootchart 是一个能对 GNU/Linux boot 过程进行性能分析并把结果直观化的工具。它在 boot 过程中搜集资源利用情况及进程信息然后以 PNG,SVG 或 EPS 格式来显示结果。 BootChart 包含数据收集工具和图像产生工具,数据收集工具在原始的 BootChart 中是独立的 shell 程序,但在 Android 中,数据收集工具被集成到了 init 程序中。(Bootchart在android系统中的使用见文档:bootchart-android)

2.1.2    Bootchart结果
 
2.1.3    分析结果
 
图中4个区域就是整个开机耗时的地方
1:    kernel init
    大概7s左右
2:zygote class preloading
    从7-19s,大概12s
3:systemserver start
    从19-32s,大概13s
4:packagemanager package scanning
    从32-51s,大概19s
从中可以看出大部分时间都在preload classes和start systemservers及scan packages
3    优化方案
从实际的测试数据分析,首先可以优化zygote的装载类。
zygote的装载类preloaded-classes在下载源码的时候已经确定,在RK2908的SDK中,这个文件共加载了2000多个类,进行分类,主要加载的类有:google服务的类及android framework的类及java类。想做极速启动,可以在preloaded-classes文件中,把不预装载的类去掉只剩下java的类以加快启动速度,但是会影响HOME的响应,apk的响应。
优化/system/app/下的apk包,可以减少一些不需要的apk,从而加快scan packages的时间。Apk的删减建议可以看文档:systemapp中的APK一览.xlsx
 
优化系统预装语言支持。可以裁减系统预装语言只保留中文(简体),英语。
优化systemserver,server的优化建议可以看文档:SystemServer中启动服务列表.xlsx
 
可以去掉android开机动画,bootanimation。去掉bootanimation方法可以参考文档:

4    优化后RK2908开机所用的整体时间
1    2    3    4    5    6    7    8    9    10
24    23    23    23    22    21    23    23    23    23

5    优化结论
     通过对preloaded-classes,scan packages,systemserver,bootanimation的分析和优化,初步可以得出此次优化效果还是比较明显的,但优化后对整个系统的影响需要做进一步的评估。

RK2908开机时间分析及优化相关推荐

  1. Android开机时间分析

    一. 关于本篇博文 该文档简单主要描述了如何找出开机各个阶段耗时情况,以及对开机各个阶段的分析方法和如何优化开机时间,减少耗时.便于读者可以通过此文档了解开机时间的各个阶段的耗时情况. 二.开机各阶段 ...

  2. 【Android系统】Android开机时间分析

    参看博客: https://www.jianshu.com/p/30fdf86c3462?from=singlemessage                                      ...

  3. 开机时间分析工具WPT Xperf使用

    1.使用xbootmgr工具收集启动信息 xbootmgr.exe -trace boot 2.分析启动过程和性能 xperf -i "boot_BASE+CSWITCH_1.etl&quo ...

  4. 安卓系统开机时间优化分析

    Android 开机时间分析工具-----perfboot 安卓10开机时间优化分析 Android开机阶段log分析

  5. 谷歌浏览器network请求时间分析!

    谷歌浏览器network请求时间分析及优化方法: network工具功能强大,能够让我看到网页加载的信息,比如加载时间,和先后顺序,是否是并行加载,还是堵塞加载.   默认情况下有八列: (1).Na ...

  6. 安卓10开机时间优化分析

    本文从以下六点分析开机时间 1.软件环境2.开机时间测试方法3.开机各阶段重要的时间节点4.bootchart工具使用说明5.Android开机时间日志信息6.开机时间优化方案 一.软件环境 平台:a ...

  7. android 性能优化---(2) MTK 平台开机时间优化

    一.在工程模式开启MTKLogger, 开机后取日志bootprof  adb pull /storage/emulated/0/mtklog/mobilelog/APLog_2018_0309_10 ...

  8. Android开机时间工具分析

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

  9. 计算机启动时间过长,开机时间太长怎么办【图解】

    现在人们生活娱乐.工作.学习都会或多或少的用到电脑,在电脑被使用越发频繁的今天,电脑出现的问题也就相应得多了,最常见的问题之一就是电脑的开机时间太长,导致的原因可能是因为电脑的使用时间太久了,当然,也 ...

最新文章

  1. Yolo v4, v3 and v2 性能极简图示
  2. 基于相关系数的影像匹配_智库丨陈晓勇:低空摄影测量立体影像匹配的现状与展望...
  3. golang image.image 转文件流_Kuiper 1.0.2 正式发布 超轻量 IoT 边缘流处理
  4. 06Prism WPF 入门实战 - Log控件库
  5. 强大的Canvas开源库Fabric.js简介与开发指南
  6. 使用MySQL的存储过程
  7. php mysql mvc_超简洁PHPMVC
  8. mysql导出选择两张表,Mysql导出(多张表)表结构及表数据 mysqldump用法
  9. (转)全文检索技术学习(三)——Lucene支持中文分词
  10. 英语发音规则---C字母
  11. java biginteger string_String到BigInteger java
  12. [leetcode]5325. 包含所有三种字符的子字符串数目
  13. pygame学习_part1_pygame写程序前的准备工作
  14. 解决办法:std没有成员initializer_list
  15. MatLab数字图像处理实战(赵小川)-sift原理
  16. easy_ui之搭建后台界面(一)
  17. MSP与PGMP的关联性与区别
  18. SurfaceView和View最本质的区别
  19. 软件测试常见面试题合集(接口测试面试详细答案)
  20. html5复选框控制按钮状态,HTML input checkbox复选按钮简介说明

热门文章

  1. 英语----名词性从句的混合练习(上)
  2. iOS开发之AFNetworking 3.0.4使用
  3. UIGestureRecognizer学习笔记
  4. UA OPTI501 电磁波 Lorentz Oscillator Model 2 Clausius-Mossotti修正与极化系数
  5. 初等数学O 集合论基础 第三节 序关系
  6. UA MATH571A ANCOVA简介
  7. C# foreach的二种基本用法
  8. oracle性能优化总结
  9. SNMP协议介绍和操作截图
  10. 工作上,我到底想要什么呢?