1. 前言缓存
本章节咱们将围绕《支付宝 App 构建优化解析》另启新系列,细分拆解客户端在“代码管理”、“证书管理”、“版本管理”、“构建打包”等维度的具体实现方案展开讨论,带领你们进一步了解支付宝在 App 构建模块下的持续优化。性能优化
本节将主要记录经过对支付宝 Android Apk 文件的从新布局,来改善 IO 性能的过程。布局
2. 背景性能
支付宝 App 在 Android 平台上,因为大量业务快速上线,Android 长尾机型等缘由,形成启动阶段及部分核心链路上,性能体验不理想,进而影响用户的使用的感觉。
从纯业务角度,能够经过优化 UI 布局,优化代码结构,优化 bundle 加载等方式,对性能体验有所改善。做为工程技术团队,按照传统思惟来看,彷佛没法对性能优化作多少贡献。通过一些方案调研后,咱们尝试经过对编译产物的优化,干预构建流程,以提高 App 性能。优化
3. 原理blog
布局先后,Apk 中实际的文件并无本质改变,只有位置发生了变化。那么为何这样的调整会有性能形成影响?这个原理要追溯到 Linux 的文件系统机制。进程
以下图所示,Linux 底层文件系统中 VFS 上次 App 进程之间,存在一层 pagecache,pagecache 由内存中的物理 page 组成,其内容对应磁盘上的 block。Pagecache 的大小是动态变化的,能够扩大,也能够在内存不足时缩小。Cache 缓存的存储设备被称为后备存储(backing store),一个 page 一般包含多个 block,这些 block 不必定是连续的。内存