论文部分内容阅读
随着移动互联网时代的到来,搭载着智能操作系统的移动终端成为了互联网关键入口和创新平台。目前,全球移动终端市场正以爆炸性的态势迅猛发展。其中Google公司开发的Android系统无疑是在这个领域占据统治地位,其市场份额在全球已接近80%。由于Android系统自身的开放性与通用性,以及开源免费的特征,不仅仅应用于传统的手机、平板电脑、智能电视,将来还会被应用到工业控制、医疗、交通等领域。随着Android系统本身的发展,日益复杂,以及外围设备越来越多,功能越来越强大,Android设备启动时间很长,严重影响用户体验。本文针对上述问题,在分析Android系统启动流程基础上,结合Android电源管理,提出了一种加快Android系统启动的方案,本文称之为基于Swsusp(software suspend)的快速启动(fast-boot)。并在此方案上,进一步研究并实现优化方案,提升启动速度。本文首先介绍了相关的理论基础:Android系统架构、Android电源管理、Android启动流程。Android系统启动经过bootloader和Linux kernel启动后,才启动Android应用系统,Android本地服务以及类加载过程很漫长,使得启动时间占据了Android系统启动的80%。根据Android电源管理休眠恢复,快速启动技术指将整个系统挂起,将其在这一刻的快照(即系统状态)保存起来,制作成镜像保存到外部存储器上,下次开机启动时在Linux内核启动完毕后,不启动Android应用系统,而是读取系统镜像,恢复系统完成启动过程。最终跳过了Android应用系统的启动,达到了20s启动系统,将启动速度提升了50%。在快速启动基础上,进一步分析得出了影响启动速度的两大瓶颈。一是镜像大小,读取镜像时间占据快速启动时间的50%,镜像大小大概是170M左右,而读取镜像速度跟存储介质有关,SD卡读取速度只有15M/s,缩小镜像大小才能进一步提高启动速度。在充分分析Linux内存管理基础上,对镜像制作过程中内存分配阶段进行优化,回收大量的内存,将一些系统非关键内存回收,最终使得镜像大小缩小到40M,大大减少了启动时间。二是内核启动,内核启动有很多部分对于恢复系统是多余的,通过优化内核启动过程,缩小了内核启动时间。经过优化的快速启动最终达到了10s,大大提高了系统启动速度。