AndroidX技术栈之系统层性能优化
背景
手机为什么会越用越慢?
安卓手机长时间使用,存在越用越慢的问题。为什么会产生这个问题?就要看看随着手机的使用,手机内发生的那些变化:
- 安装运行的应用越来越多
- 拍照的照片存储越来越多
- 音乐、视频下载越来越多
- 通讯录越来越长
- 微信聊天记录、短信越来越多
- 存储空间日益“支离破碎”
- 伴随着游戏发展,对图像绘制显示要求越来越高
各种沉淀,随着岁月累积,手机内逐渐不堪重负,导致越来越慢,卡顿增加。这些变化,是用户手机使用时必然产生的,针对这种现象,安卓阵营都在尝试优化解决,但都难以彻底解决。只有通过软硬件结合技术优势:通过智能感知学习系统,结合精细化资源调度;安卓系统组件深入优化;彻底解决Android性能久用卡顿问题。用户长时间使用手机,手机依旧流畅。
Android系统资源调度上的技术挑战
1 Android系统为应用开发者开放了丰富的系统接口和服务,这个开放性一方面带来了丰富多彩的应用,另一方面也被部分应用不合理使用
2 各应用在公平调度下争占CPU、内存、I/O等手机资源,导致用户当前使用的应用不能优先获得资源
3 手机长时间使用后,安装的应用越来越多,很多应用都会增加后台服务,结果同时运行的后台服务也越来越多,导致系统资源供给不足,冲突逐渐加重
4 系统长时间运行后,联系人、图片数据量越来越大,当前数据库查询缓慢的弊端开始呈现,无法满足应用需求的增长。
解决思路方向:
1 应用冷启动减少,热启动增加
2 及时感知应用的资源需求,和麒麟芯片紧密结合按需实时动态调度CPU、GPU、IO等资源,不同应用区分调度。
3 智能化的内存回收/压缩,保证系统始终有内存可用
4 智能清理数据库垃圾内容,结合优化的数据库引擎,数据库查询性能提升,多连接并发能力增强
硬件能力上的技术挑战
1 图形渲染引擎如何充分发挥芯片CPU和GPU的能力
2 性能开销的大幅度增加(AI应用/加解密运算)
解决思路方向:
1 实现精细化调度,发挥CPU多核能力。如在应用启动时,采用及时调整CPU工作频率,及多核同时运行,应用启动速度可提升20%~70%。
2 利用硬件加速完成图片缩放、图形渲染优化,图像资源加载和解码在多个线程中并行执行,实现并行加速收益。使得画面流畅,操作更跟手。比如在图库浏览中极速上下滑动,也不再会像传统安卓手机那样有白块出现。
3 采用硬件芯片加速文件级加密解密,支持文件夹级别文件加密。加密文件读写性能提升12%。
存储碎片化带来的技术挑战
1 手机长时间运行,产生很多缓存小文件,如:聊天的图片、小视频、表情,这些小文件不断被增增删删,导致存储空间出现碎片化,存取文件速度下降。
2 手机使用中,需要经常保存、删除文件,如拍照时挑选照片,也会导致存储空间碎片化。
解决思路方向:
1 手机系统采用增强文件系统,减少文件碎片,使得“岁月无痕”,提升文件访问流畅度。
其他体验优化带来的技术挑战
1 应用启动时的卡顿
2 页面渲染过慢
3 内存优化 垃圾数据的清理
4 应用通信的优化 AIDL
5 CPU/GPU在资源调度上的优化
6 I/O输入输出优化
7 Hybrid应用时Webkit和系统内核的优化(H5页面的渲染优化)