一种安卓系统快速开机的方法及装置的制造方法

【技术领域】

[0001]本领域涉及安卓操作系统优化领域,尤其涉及安卓系统快速开机的方法。

【背景技术】

[0002]安卓系统从1.0到目前的4.4版本,由于其开源的特性,使得很多消费类电子产品的软件系统都是基于安卓开发的。用过安卓系统的任何形态产品的用户都会觉得开机时间从一开始就很慢至少都是在20S以上的。

[0003]目前所有的安卓系统,在启动最开始的一个阶段都是串行的,有一些不是很合理的启动流程会直接影响到安卓系统的开机时间。并且通过提高硬件性能(例如使用高读写性能的存储介质,高速处理器等)只能缓解问题,并不能彻底解决这个问题,就算很系统没有安装很多APK应用,也是达不到短时间内可以开机(如10S)。

【发明内容】

[0004]为此,需要能够实现安卓系统快速开机的方法,

[0005]发明人提供了一种安卓系统快速开机的方法,包括步骤:在启动core服务的同时启动Zygote步骤。

[0006]还包括步骤,将启动系统服务与预加载资源操作做并行处理。

[0007]还包括步骤,优化系统服务,将预设的非核心服务类别延迟启动。

[0008]还包括步骤,优化登录器,将动态布局计算、动态图标显示和加载图标微件从主线程中移出。

[0009]还包括步骤,优化INIT启动脚本,删除冗余代码。

[0010]还包括步骤,在LINUX阶段对外围设备驱动进行优化,将I2C通讯、固件下载及矫正步骤延后处理。

[0011]还包括步骤,对外围设备驱动中的打印信息进行分级,将未达到重要级别的需要串口输出的打印信息删除。

[0012]还包括步骤,对UBOOT文件进行裁剪,只保留开机必要的初始化操作。

[0013]还包括步骤,根据机器的硬件配置确定开机时使用的频率。

[0014]发明人还提供了一种安卓系统快速开机的装置,包括提前启动模块,所述提前启动模块用于在启动core服务的同时启动Zygote步骤。

[0015]还包括并行处理模块,所述并行处理模块用于将启动系统服务与预加载资源操作做并行处理。

[0016]还包括优化延迟模块,所述优化延迟模块用于优化系统服务,并将预设的非核心服务类别延迟启动。

[0017]还包括优化登录模块,所述优化登录模块用于优化登录器,并将动态布局计算、动态图标显示和加载图标微件从主线程中移出。

[0018]还包括优化脚本模块,所述优化脚本模块用于优化INIT启动脚本,删除冗余代码。

[0019]还包括优化驱动模块,所述优化驱动模块在LINUX阶段对外围设备驱动进行优化,将I2C通讯、固件下载及矫正步骤延后处理。

[0020]所述优化驱动模块还用于对外围设备驱动中的打印信息进行分级,将未达到重要级别的需要串口输出的打印信息删除。

[0021]还包括裁剪模块,所述裁剪模块用于对UBOOT文件进行裁剪,只保留开机必要的初始化操作。

[0022]还包括开机频率设置模块,所述开机频率设置模块用于根据机器的硬件配置确定开机时使用的频率。

[0023]区别于现有技术,上述技术方案通过将Zygote步骤提前到启动core服务的同时启动。以及一系列的优化步骤,达到了提高安卓系统开机速度的效果。

【附图说明】

[0024]图1为本发明方法流程图;

[0025]图2为安卓系统原始开机流程图;

[0026]图3为本发明方法中安卓系统开机流程图;

[0027]图4为本发明装置模块示意图。

[0028]附图标记说明:

[0029]101、提前启动模块;

[0030]102、并行处理模块;

[0031]103、优化延迟模块;

[0032]104、优化登录模块;

[0033]105、优化脚本模块;

[0034]106、优化驱动模块;

[0035]107、裁剪模块;

[0036]201、UB00T 阶段;

[0037]202、LINUX 阶段;

[0038]203、INIT 阶段;

[0039]204、Android系统启动阶段。

【具体实施方式】

[0040]为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

[0041]请参阅图1,为本发明介绍了一种安卓系统快速开机的方法,适用于手机、平板电脑、导航仪等等任意带有安卓系统的电子产品,该方法包括步骤SlOl:在”启动core服务”的同时启动Zygote步骤。安卓系统的原始开机流程如图2所示,开机阶段可以大致分为 UBOOT 201,LINUX 202,INIT 203,和 Android 系统启动 204 四个阶段。UBOOT 201、LINUX202、和INIT 203阶段都是串行的,只有到了 Android系统启动204阶段才可以并行执行。在UB00T 201阶段中,安卓系统会执行芯片上电后的基本初始化操作,包括初始化部分内存并且引导系统内核启动;在LINUX 202阶段中,安卓系统会执行核心的操作系统部分,包括所有芯片资源的初始化以及外围设备驱动的加载;在核心操作系统准备就绪后,安卓系统将挂载根文件系统,并且执行根文件系统中的INIT 203服务;INIT 203(内核自行启动)服务负责解析INIT脚本,挂载安卓文件系统,并根据启动脚本的内容来启动相应的服务,包括引导Android系统启动204的Zygote进程;Zygote进程启动后,首先预加载定义好的系统资源和类,然后再“启动系统服务(SystemServer) ”,并由其完成其他的启动流程。

[0042]如图2的一般做法是将启动Zygote进程与INIT 203进程中的”启动main服务”同时启动。而事实上,是否“启动main服务”对启动zygote进程没有任何影响,因此本方法如图3所示将启动Zygote进程的步骤从“启动main服务”提前到“启动core服务”的同时,进行同步并行启动,克服了本领域技术人员的技术偏见,减少了在开机过程启动Zygote需要的等待core启动服务的时间,达到了提高安卓系统开机速度的效果。

[0043]图1所示方法还包括步骤S102,将“启动系统服务”与“预加载资源”操作做并行处理。所述“预加载资源”包括但不限于:加载预置类、加载预置资源以及加载OPENGL步骤。在上述如前段所述串行的启动流程中,如果存在一些比较耗时的操作,会导致后续的操作延迟执行,从而导致开机时间加长。例如图2所示的某些实施例中,在安卓系统启动204阶段,“启动系统服务”将在“预加载资源”后串行进行。具体来说,“预加载资源”之间是串行进行,包括先后进行“加载预置类”、“加载预置资源”、和“加载0PENGL”的步骤,随后再进行“启动系统服务”步骤。本发明对上述步骤采用并行处理的方式,所述并行处理具体为:在启动“加载预置类“的同时,启动“加载预置资源”、启动“加载0PENGL”以及同时运行“启动系统服务”。如在图3所示的某些实施例中,在创建Zygote客户端的socket步骤之后,同时运行“启动系统服务”与“加载预置类”、“加载预置资源”以及“加载0PENGL”步骤。通过对上述原本串行处理的步骤进行并行处理,使得原本先后完成的步骤能够同时并行进行,耗时缩短为最长耗时步骤的用时。因此通过同时开始启动系统服务与加载资源操作,达到了减少开机时间,提高安卓系统开机速度的效果。

[0044]在某些实施例中,图1所示方法还包括步骤S103,优化系统服务,将预设的非核心服务类别延迟启动。所述的“非核心服务”指的是系统正常启动过程中不会使用到的一些服务,即与系统启动无关的,不影响系统正常进入主界面的一些服务,类别包括但不限于:定位服务、输入法服务、备份服务、语音搜索、多媒体服务等等。将所述非核心服务类别延迟启动,既不影响系统服务的正常功能,又能减少了启动系统服务流程的耗时,达到了提高安卓系统开机速度的效果。

[0045]在某些实施例中,图1所示方法还包括步骤S104,优化登录器(Launcher),将动态布局计算、动态图标显示和加载图标微件(Widget)从主线程中移出。因为系统要等待Launcher主线程idle之后才会把Launcher显示出来。而上述的动态布局计算、动态图标显示和加载图标微件(Widget)操作将会占用主线程的工作时间,在本实施例中将上述的动态布局计算、动态图标显示和加载图标微件(Widget)操作从主线程中移出,转移到其他线程中去完成,这样便能节省主线程的时间,让主线程尽快将登录器显示出来,通过上述方法也达到了提高安卓系统开机速度的效果。

[0046]图1所示方法还包括步骤S105,优化INIT启动脚本,删除冗余代码。所述INIT启动脚本为init.rc文件,该脚本中通常为了兼容更多的平台会有一些冗余代码,例如用于调试的操作,还有就是针对特定产品有一些不需要的服务、操作如gps,rild等。因此在某些实施例中,所述“冗余代码”为启动脚本时不会使用到的代码,或是用于调试而预留的代码。将这些冗余代码删除,使得启动脚本时候解析脚本的时间得到减少,后续需要运行服务的时间也由于优化了不需要的服务操作而得到了减少,达到了降低安卓系统开机时间,提高安卓系统开机速度的效果。

[0047]在某些实施例中,图1所示方法还包括步骤S106,在LINUX阶段对外围设备驱动进行优化,将I2C通讯、固件下载及矫正步骤延后处理。所述“外围设备”指外部接入用于满足信息输入输出需求的设备,包括触摸屏、感应器、网卡、相机和录音机等设备。对这些设备驱动进行优化步骤,将上述较为耗时的操作延后处理,能使得LINUX系统尽快加载根文件系统,达到了提高安卓系统开机速度的效果。

[0048]在具体的实施例中,图1所示方法还包括步骤S107,对外围设备驱动中的打印信息进行分级,将未达到重要级别的需要串口输出的打印信息删除。减少启动流程中不必要的需要串口输出的打印,减少CPU频繁被串口中断打断而导致的CPU执行内核代码的时间增加,进一步缩短加载驱动的时间。达到了提高安卓系统开机速度的效果。

[0049]在某些实施例中,图1所示方法还包括步骤,对UBOOT文件进行裁剪,只保留开机必要的初始化操作。具体的,在开机的UBOOT阶段,.对UBOOT进行裁剪,保持UBOOT文件尽量小,例如只保留一些开机必要的初始化操作,“必要的初始化操作”是指开机必要的系统功能初始化,例如:初始化硬件设备(内存、存储、串口、显示、PMU等),初始化系统时钟、频率等动作。具体的,可裁剪的一些初始化操作包括:L0G0

android 4.4 zygote 开机速度,一种安卓系统快速开机的方法及装置的制造方法相关推荐

  1. canoe的dela_一种基于CANoe的ECU软件刷新方法及装置的制造方法

    一种基于CANoe的ECU软件刷新方法及装置的制造方法 [技术领域] [0001]本发明涉及汽车电子技术领域,尤其涉及一种基于CANoe的ECU软件刷新方法及 目-ο [背景技术] [0002]随着汽 ...

  2. java实现安全卡模块,一种Java卡防火墙漏洞的检测方法和装置的制造方法

    一种Java卡防火墙漏洞的检测方法和装置的制造方法 [技术领域] [0001]本发明涉及智能卡领域,尤其涉及智能卡领域中的一种Java卡防火墙漏洞的检测方法和装置. [背景技术] [0002]Java ...

  3. 计算机开机速度慢是什么原因,电脑开机速度总是比别人的慢,那是有原因的!...

    大家好,欢迎访问国哥笔记本期内容,本期内容将介绍电脑开机速度慢的原因,以及怎样才能提高电脑的开机速度.如果你也遇到电脑开机速度慢,请仔细阅读本期内容,说不定在提升电脑开机速度上有意想不到的效果哟! 随 ...

  4. 计算机启动太慢可以设置什么来加速启动速度,电脑开机速度慢怎么办 如何加速电脑开机速度慢【详细介绍】...

    电脑使用时间长了就会出现电脑开机速度慢的情况,电脑开机很慢,多数情况下是加载项过多,同时垃圾文件过多.磁盘碎片过多都会造成电脑开机很慢,电脑运行也很慢.而如果我们从这几方面入手解决了,电脑速度一定快多 ...

  5. 电脑开机启动php,window_Win10开机自动启动在哪?win10如何设置软件开机启动?,windows 10系统的开机启动项如果 - phpStudy...

    Win10开机自动启动在哪?win10如何设置软件开机启动? windows 10系统的开机启动项如果过多的话,会影响电脑的开机速度,而WIN10系统同以往的Window操作系统开机启动不一样,在开始 ...

  6. c语言限速编程,一种基于c语言的列车限速曲线计算方法和装置的制造方法

    一种基于c语言的列车限速曲线计算方法和装置的制造方法 [技术领域] [0001]本发明涉及一种基于C语言的列车限速曲线的计算方法和装置,属于计算机自动化技术领域. [背景技术] [0002]目前现有的 ...

  7. 随机噪声的压制c语言,一种地震数据随机噪声压制方法及装置的制造方法

    一种地震数据随机噪声压制方法及装置的制造方法 [技术领域] [0001] 本发明涉及地震勘探领域,尤其涉及一种地震数据随机噪声压制方法及装置. [背景技术] [0002] 按噪声在地震剖面上出现的特征 ...

  8. android stk 卡号切换,采用stk/utk实现手机双卡切换及其它功能的方法和装置的制作方法...

    专利名称:采用stk/utk实现手机双卡切换及其它功能的方法和装置的制作方法 技术领域: 本发明涉及手机双卡,主要是指一种采用STK/UTK技术实现手机待机双卡切换等功能的方法及其装置. 背景技术: ...

  9. 基于单片机的超市储物柜设计_一种基于at89c51单片机的超市寄存装置的制造方法...

    一种基于at89c51单片机的超市寄存装置的制造方法 [专利摘要]一种基于AT89C51单片机的超市寄存装置,主要包括AT89C51单片机最小系统.按键模块.电源模块.箱柜控制模块.语音提醒模块.管理 ...

  10. android 浏览器 dlna,基于dlna跨屏播放的方法及系统、浏览器端装置和播放装置的制造方法...

    基于dlna跨屏播放的方法及系统.浏览器端装置和播放装置的制造方法 [技术领域] [0001]本发明涉及多媒体播放技术领域,具体涉及一种基于DLNA跨屏播放的方法及系统.浏览器端装置和播放装置. [背 ...

最新文章

  1. 2017 人工智能+内容生产研究报告
  2. 联想e480笔记本如何拆屏幕_如何评价 2020 年 10 月 20 日联想发布的小新 Pro14 笔记本?有哪些亮点和槽点?...
  3. java语言中的数据类型_Java语言中关于数据类型的一些总结
  4. python 换脸 github_人脸识别和换脸相关深度学习开源项目github汇总
  5. 来自山西机器人乐队_格力:中国第一支工业机器人乐队重磅亮相
  6. python 并发编程 多线程 event
  7. mysql 从库relay_MySQL主库binlog(master-log)与从库relay-log关系代码详解
  8. 内核模块编程之_初窥门径【ZT】
  9. PHP高级教程-高级过滤器
  10. git clone 之前,是否需要先 git init
  11. js 操作数组函数-自定义
  12. 【JAVA面试题整理】框架之Shiro
  13. python好玩的代码-神奇的Python,一行代码能做哪些炫酷的事情?
  14. 16.3.22-24(这几天借鉴了别人写的代码的整合,但是是beat的)
  15. android图片编辑加文字,图片编辑加字下载-图片编辑加字 安卓版v3.9.0.0406-PC6安卓网...
  16. 微商如何玩?微客巴巴告诉你10条超级干货!-“纯情年代”
  17. JS事件之事件绑定与事件监听
  18. esp8266解析php,ESP8266 Bootloader开源代码解析之rboot(一)
  19. Android 如何加载网页、图片以及PDF文件之项目实战
  20. Seagull island

热门文章

  1. Codeforces 1006A
  2. linux征途架设教程,Linux下征途私服架设详细教程
  3. linux驱动之输入子系统
  4. 计算机键盘音乐 卡农,巴赫键盘音乐
  5. 【luogu/字符串】多项式输出(所有情况一起处理)
  6. docker的代理配置_wuli大世界_新浪博客
  7. 北京地铁乘坐路线查询
  8. 银行家算法实现(操作系统实验)
  9. 浅谈月薪3万 iOS程序员 的职业规划与成长!(进阶篇)
  10. 魔兽世界怀旧服服务器显示地图,魔兽世界怀旧服:1-60级地图任务路线大全,快来拿走收藏!部落篇...