京东数科mPaaS系列之APP启动速度优化实践

京东数科mPaaS , 为优化APP启动速度而生
随着移动端APP功能的不断增加 , 用户交互体验的不断升级 , APP已经比以往变得更加臃肿 , APP的启动速度也在变得越来越慢 。 2018年京东数科成立了中台部门 , 京东数科mPaaS应运而生 , 其中一项急需解决的问题就是优化Android端京东金融APP的启动速度 。
一般来说 , APP启动时间是指从用户点击 APP 那一刻开始到用户看到第一个界面这中间的时间 。 在APP功能日益增加和用户体验不断改良的今天 , APP的启动时间已成为影响用户体验重要因素 , 头部企业在APP启动优化上都投入了大量资源 。
京东数科mPaaS系列之APP启动速度优化实践文章插图
这是一场类似争夺百米短跑冠军的硬仗 , 谁能让APP启动的时间缩短0.01秒就有可能获得冠军 , 更能得到无数用户的青睐 。
"虎嗅蔷薇"项目成立 , 旨在给用户带来飞一般的感觉
所谓快 , 其实是在用户感官上的一种反应 , 经过合理精巧地设计软件启动中数据加载的先后顺序 , 可以大幅度提升用户体验 , 让用户感觉到『快』 。 APP启动过程一般分为四种:冷启动、热启动、温启动、自定义启动 , 每种启动过程都包含多个步骤 , 有些启动过程还涉及到手机硬件和安卓系统的底层驱动调用 , 需要调整和优化的内容非常繁杂 。 为了尽可能缩短APP启动时间 , 让用户体验飞一般的感觉 , 京东数科成立了一个代号为虎嗅蔷薇的项目组 。
启动流程分析
项目组开展的第一个任务 , 就是对APP启动的每项内容进行细致入微的"体检" 。 冷启动包含了启动的所有过程 , 也是启动时间最长和最难以优化的过程 , 包含从用户点击图标到看到APP主界面过程中需要的全部步骤 。 体检过后 , 项目组为京东金融APP绘制了一份完整的启动流程时序图 , 并量身定制了一套完整的"减肥"和"治疗"方案 。
京东数科mPaaS系列之APP启动速度优化实践文章插图
优化方案及实践
【京东数科mPaaS系列之APP启动速度优化实践】懂得取舍 , 才有大智慧 。 京东金融APP经过多年的版本迭代 , 功能虽然不断丰富 , 但也会引入大量冗余的代码 。 充分调研什么对用户是最重要的 , 提炼出APP中核心的功能模块 , 把握明确的目标 , 才能给用户带来最好的体验 。
在进行优化的时候 , 一个最基础的做法就是为代码做减法 , 删除废弃代码、冗余逻辑、无用业务、以及调整每一项不必要在启动时初始化的代码 。 从加到减其实并不容易 , 这不仅是检验京东数科对模块重要程度的判断能力 , 更是考验对APP产品核心内涵的理解 , 对复杂APP功能的取舍能力 。
京东数科mPaaS系列之APP启动速度优化实践文章插图
秘密武器SGM-Mobile(APM) , 实现全方位监控 , 性能大幅度提升
在进行启动速度优化的调试工作中 , 需要用到多种测量和监控工具 , 帮助开发人员快速定位和发现问题 , 并且进行辅助测试和验证 。 目前常用的监控与测试方法有logcat日志监控、ADB命令调试、日志打点、视频定帧等 , 除此之外项目组还有一套京东数科自主研发的秘密武器SGM-Mobile(APM) 。 SGM-Mobile(APM)是一套用于移动端分布式服务监控、跟踪、预警的综合服务治理解决方案 , 能够实现全链路的实时监控 。 通过线上APM性能监控系统 , 复杂的APP业务流程能够进行定量化的性能分析 , 并以APP的版本为维度进行可视化数据分析 , 从而更好地对APP的性能进行分析 , 及早发现APP存在的性能问题 , 及时优化调整 。 京东金融APP在优化过程中凭借这一秘密武器实现了全方位的监控和大幅度的性能提升 。
京东数科mPaaS系列之APP启动速度优化实践文章插图
APM系统架构图
京东数科mPaaS系列之APP启动速度优化实践文章插图
APM功能架构图
APP启动速度提升45% , 达到行业领先水平
两个月三次迭代 , 京东金融 APP启动速度在中端机型机型的启动速度从原来的2.4s减少到1.2s , 在高端机型启动速度小于1s 。 启动速度实现了45%提升 , 达到行业领先水平 , 真正带给用户"飞起来"的感觉 。
京东数科mPaaS系列之APP启动速度优化实践文章插图