Android4.0开机启动速度优化过程经验总结

Android4.0开机启动速度优化过程经验总结

 

      笔者EDE101使用的平台是:A10+android4.0.4+16GB NAND+1G DDR+(1280 X RGB X 800)。项目进入收尾阶段,需要着重解决一下开机速度的问题,客户反映还是太慢了一点,当然我们得列入高优先级重点攻关解决了。优化开机速度前,平均android启动速度大概在39秒样子,A10跑1G。以下测试开关机都是按电源键正常操作。系统突然掉电的情况下,重新开机文件系统需要做recovery,在EDE101
16G NAND版本上需要多花4-5秒启动时间,文件系统使用的是EXT4,这种情况类似电脑掉电关机,重启需要扫描检测硬盘一样。

/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/sundesheng125原创,转载请注明出处,谢谢!
/*****************************************************************************************************/

 

优化前测试数据:

EDE101  2012-11-21发布的软件+16G Nand


1


2


3


4


5


6


7


8


9


10


39


42


36


38


41


41


40


37


40


39

平均:39.3

       关闭打印信息,就是控制打印的级别,具体就是loglevel从默认的8修改为1,几乎没什么打印信息出来,修改后测试数据如下:

EDE101  2012-11-21软件去掉串口打印输出+16G Nand


1


2


3


4


5


6


7


8


9


10


35


34.6


37


36.2


33


36


36


32


33


36


11


12


13


14


15


16


17


18


19


20


36.3


34


38


35


39


36


35


36.7


37


35

平均: 35.5

     还是降低了蛮多的,有3.8秒多,确实打印信息对启动速度的影响还是蛮大的。那么除了这个还可以查找哪些呢?笔者怀疑NAND,因此把原来两片8GB NAND,去掉一片后,测试数据如下:

EDE101  2012-11-21软件去掉串口打印输出 + 8G Nand Flash


1


2


3


4


5


6


7


8


9


10


31


31.1


32.8


31.1


32.1


32.8


34.4


33.9


30.4


30.3


11


12


13


14


15


16


17


18


19


20


30.5


32.4


33.7


31.5


31


31.5


32.8


31.6


31.8


31.6

平均:31.9

又是有比较大的变化,因此说明启动过程中nand的检测、校验、建表等还是很影响速度的。优化一下相应的部分应该可以提高几秒的速度。

        笔者另外还有一个项目EDE103,平台:A10+android4.0.4+8GB NAND+512M DDR+(800 X RGB X 480),使用的电阻屏。去掉打印后,启动速度数据如下:

EDE103  2012-11-21软件去掉串口打印输出


1


2


3


4


5


6


7


8


9


10


25.6


27


25


25.7


24.7


24.1


23.6


27


25.4


26.6


11


12


13


14


15


16


17


18


19


20


26.3


24.8


23.7


26.1


25.8


27.3


23.7


24.1


25.6


24.6

平均:25.38

     为什么这个项目启动速度会快这么多呢?笔者开始百思不得其解。虽然知道从理论上,大分辨率的启动时候LCD处理的数据要大很多,有一定影响,但是也差得有点太多了,感觉不正常。

笔者分析了一下两者启动打印信息,

对E901-902 & EDE101打印信息分析比较:

1、rtp比ctp少开销300ms;

2、gc0308比GT2005少开销640ms;

3、fm radio需要大概110ms(最新已经省去检测步骤可以省掉100ms左右);

4、驱动加载完,执行android程序,执行到acc_open的时候,E901-902领先大概5.7秒

5、全程领先大概7秒,E901-902用时约24.8秒,EDE101用时约32秒;

6、E901-902 preloaded 2297 classes in 3355ms,但是EDE101 Zygote  (   81): ...preloaded 2297
classes in 5829ms,多需要2.47秒,原因不明;

7、“preloaded 379 resources in 4013ms” VS“preloaded
379 resources in 2742ms”;

8、“PackageManager(  143): Time to scan packages: 3.081 seconds” VS

“PackageManager(  144): Time to scan packages: 3.589 seconds”

笔者首先把驱动层能优化的地方尽量优化了,能缩短的尽量缩短,有些可以放到系统进入桌面后加载的驱动就可以放到进入桌面后再加载,比如camera,这样也能通过这种手段来加快启动速度。

但是为什么加载同样数据的classes会差两秒多呢?CPU跑的速度都是一样的。笔者做了一个实验,把EDE101大分辨率的屏当着小分辨率的屏来使用,修改为800X480,测试数据如下:

EDE101  2012-11-26版本软件+8G NAND+分辨率修改为800 X 480+LCD DCLK 33MHz


1


2


3


4


5


6


7


8


9


10


30.5(插了USB烧写线)


30.5(插了USB烧写线)


25.5


27.4


27.2


28.4


27.7


27.4


28


26.8


11


12


13


14


15


16


17


18


19


20


28.5


27.4


26.3


28.4


26.1


27


27.3


26.1


26.9


27

平均:27.19
大幅度降低。

这样一修改,启动速度提高不少啊。那跟分辨率有直接关系的是什么呢?很明显,那就是LCD啊,LCD的数据啊!开机过程中,不就是开机动画占的时间最多嘛!因此笔者做了一个实验,数据如下:

EDE101  2012-11-27版本软件+8G NAND+去掉开机动画,跑默认android动画+1280X800


1


2


3


4


5


6


7


8


9


10


25.5


26.6


28


27.5


28.1


26.2


27


26.9


26.5


27.5

平均: 27.1,大幅度下降,直接验证了开机动画影响很大,瓶颈也就在开机动画。

 

那么笔者就重新检查了一下开机动画的配置,图片是1280X800的,跟屏的分辨率是一样大小的,每一秒播放15帧,动画效果是挺不错的。因此笔者做了相应的一个实验,减少动画图片,降低帧数,每秒播放6帧,同时把图片分辨率修改为刚好能框住有效动画部分就好了,笔者裁剪到了220X220,这样图片小了很多,测试数据如下:

EDE101  2012-11-27版本软件+16G NAND+6p+1280X800


1


2


3


4


5


6


7


8


9


10


30.2


28.8


32.6


30.1


29.2


28.6


26.6


26.7


30.7


27.8

平均:29.1

从测试数据上看,速度是提高了不少,从优化开始前到现在提高了10秒多。把8G跟16G nand启动速度的差异修正后,那速度就可以达到26-27秒左右。

 

Android开机速度的优化是一个相当重要的课题,也是非常耗精力的事情。有时投入很多时间,也不一定能得到想要的结果。如果时间充分,还可以从预加载类来做优化,还有启动的service,把不需要的都可以屏蔽掉,这样肯定也能加快启动速度,不过这个需要很多时间精力的投入。笔者最后总结了几条加快启动速度的方法,单独用,一起上,都有作用。具体如下:

1、  关闭掉项目生产发布软件的打印;

2、  开机动画图片尽量小一些,播放的帧率低一点;

3、  能放到系统进入桌面后加载的驱动可以放到进入桌面后加载,可以从收到boot completed消息后执行,或者在运行launcher的程序中来触发;

4、  减少不需要的预加载类;

5、  去掉不需要的service;

6、  减少预装的apk数量;

7、  驱动里delay可以用sleep替换的就替换一下;

8、  在init.rc里面以及其他平台init.platXX.rc里面把不需要的service,都屏蔽掉不加载;

9、  在内核中没使用到的驱动、配置不要编译进内核;

10、          在kernel前面boot里面,公版的功能可能全一些,针对自己产品不需要的,可以屏蔽一些,也能加快一点启动速度。

  

Android开机速度的优化是始终还是有进步的空间,多努力一些,还是可以再加快一点。笔者的一点点经验、拙见仅供参考,平台的CPU跑得快这些问题就相对没那么突出,但是方法还是有用的,希望对android开发的朋友有一些帮助。

 

时间: 2024-09-13 14:53:45

Android4.0开机启动速度优化过程经验总结的相关文章

互联网产品优化过程中的经验

文章描述:互联网产品优化经验分享. 产品上线后,无论是否达到预期,都有非常大的优化空间,以下列一些产品优化过程中的经验,仅供参考: 一.建立产品监控体系 从宏观上来看产品要关注的大的点,并把其拆开,如果能实时监控最好,不能实时的全部放在报表中,每天看一次也可以,从中可以发现产品在大的点上是否出了问题! 举例:邀请回来的用户,有多少成功注册了,这里可以设置成一个转化率,如果某个点突然有较大的变化,能及时发现. 这里为什么说只列大的点呢!如果切分开,点就太多了,在作局部优化时可以把大点切分成小的点来

红象云腾公司创始人童小军:创业是一个从0到1的过程

红象云腾(RedHadoop)公司创始人童小军认为创业是一个从0到1的过程.每个创业者都只能靠自己去经历从0到1的转变,才有资格通过和别人合作完成1到100,即使失败我们还能回归到1从新出发.期望通过别人的1来完成的100往往多是空中楼阁.这个1有很多了,比如养活自己.独立的品牌产品等. 从2012年8月出来创业的时候他通过培训来养家,有大量时间来做自己想做的事情又能解决生存问题.坚持了一年左右积累客户和一定的品牌资源."我比较幸运,很多客户都是我之前听过我的Hadoop课程,研发的产品和服务率

微信小程序豆瓣电影项目的改造过程经验分享

在学习微信小程序开发过程中,一部分的难点是前端逻辑的处理,也就是对前端JS的代码编辑:一部分的难点是前端界面的设计展示:本篇随笔基于一个豆瓣电影接口的小程序开源项目进行重新调整,把其中遇到的相关难点和改进的地方进行讨论介绍,希望给大家提供一个参考的思路,本篇随笔是基于前人小程序的项目基础上进行的改进,因此在开篇之前首先对原作者的辛劳致敬及感谢. 1.豆瓣电影接口的小程序项目情况 豆瓣电影接口提供了很多相关的接口给我们使用,豆瓣电影接口的API地址如下所示:https://developers.d

SEO优化过程中的十大陷阱之程序篇

小弟自从五年前接触SEO以来,每天都致力于SEO优化技术的学习与探讨中,成为了一名标准的职业SEOER,虽然这期间经历了这么长的时间,但由于自己的执行力实在是不敢恭维,所以直到现在手上还没有一个拿得出手.可以见人的不错的网站. 但尽管如此,五年的经验累积,五年的时间沉淀,让我在SEO行业里也能勉强算得上是一名先驱者.永远无法与昝辉老师那样的领军人物相提并论,也无法与华罡SEO的灵魂人物祝真老师相比,但这么长时间在SEO领域的摸爬滚打也让我对SEO有了自己的一份独特的见解. 从今天起就让我来为大家

麦奇:网站优化过程中需要掌握的几点策略

从网站开始策划起,就应该对网站运营作出一个详细的运行方案,为后期的推广.网站内容等作出一个指导.特别是在搜索引擎优化过程中,更应该讲求执行效率和策略,如果没有目标的开展工作,会导致后期的SEO偏离网站运营主旨,造成不必要的时间和资源浪费.通过几年的网络营销研究和实战经验,麦奇搜索引擎优化分享几个网站优化过程中需要掌握的几点策略. 第一.网站关键词策略 一个网站优化的成败,很大程度上取决于前期关键词的选择.有不少人热衷于关键词优化,也就是选择几个比较热门的关键词使其在搜索引擎获取一个好的排名.其实

网站优化过程中我们最常见的几种错误

做了这么久的网站优化,遇到了各种不一样形形色色的错误.想必各位网站的优化者也一样.同样在网站优化过程中会遇到这样或者是那样的错误问题.网站优化本来就是一件复杂而又繁琐的事情.它没有任何固定的样式和规律.我们大多数的网站优化者都是依靠自己的经验去实践.那么难免会碰到一些问题,那么接下来我们就讨论一下在网站优化过程中所经常性遇到的问题,从中自然会对我们以后的网站优化工作有所帮助引导. 网站优化不是一蹴即就的事,做任何事情都是没那么简单的.网站优化更是如此.它没有固定的格式模板可以参考,它是迅速变化并

颠覆以往SEO优化的经验

今天为什么突然写这篇文章?之前分析过许多网站的SEO优化方面,大家做SEO优化的都知道一句话"内容为王,外链为皇"一个好的排名站,靠的就是这二点,虽然这句话不是百度明确的告诉我们,但是这句话精辟的概括了我们之前做SEO一代代摸索下来的经验,今天这个网站完全颠覆以往的SEO优化经验,因此写下此文,供SEO业内的草根站长,一起探讨研究下,高手有见解的话,也可以分享下你的见解. 老规矩先看下这个网站的概括,附图 大家可以看下基本的情况,这个站完全可以算是一个新站,但是他达到的高度是很多网站做

接手秀当网一个月 分析优化过程及结果

6月初辞职,六月下旬(20号)进入新的公司,开始接手公司网站秀当网的优化推广,到今天为止刚好25天,在这接近一个月的时间里网站还是有些变化的,个人觉得整体是在朝着好的方向发展,今天就来总结下这一个月的优化过程及结果,老手看看就过,新手可以留意下,或许对你们有帮助. 接手秀当网之后惯性的对它整体审查了一番,权重.收录.快照.外链.友链.PR.世界排名.关键词排名.界面风格.用户体验度等等,整体来说网站还是比较强大的,用户体验度做得比较好,真正为用户们提供了帮助,所以拥有一批固定的用户.而且它的收录

医疗网站的优化过程10个需要注意的地方

大家都知道,医疗网站的竞争性很大的行业,这就看网站优化能力的强弱了.根据小编的经验来看,医疗网站的优化有十个小诀窍,这些诀窍或许可以帮助seo把网站的综合排名上升.还有就是针对医疗网站的编辑也需要一定医学知识,就算是不知道ct成像原理,最起码也要知道膀胱和尿路系统有关系,这样即便进行编辑整理的时候,不至于闹出"女生的前列腺"这样的差错.言归正传,现在咱们就聊一聊关于医疗网站的优化过程中10个需要注意的地方. 第一:一般的医疗网站都是一个站具有多个病种,例如妇科救护有不孕,附件炎,乳腺炎