Android应用性能优化之主页冷启动

作者: 像程序那样思考 | 来源:发表于2019-08-27 16:48 被阅读0次

    研究工具

    Debug.startMethodTracing()
    Debug.stopMethodTracing()
    trace文件位置:sdcard/Android/data/package/file/trace
    profile的火焰图分析生成trace文件,查看各方法耗时统计
    

    1.启动的方式

    性能优化是从APP冷启动开始的,这里应该注意区分冷启动和热启动的差别。
    冷启动:从点击应用图标开始

    • 1.开启全新的进程
    • 2.会执行application
    • 3.再执行launchActivity
      热启动:退出应用后从最近应用中恢复
      1.进程还没有被杀死
      2.不会执行application,直接启动launchActivity

    2.Application的执行

    在这里面做性能优化的注意事项:

    • 1.非必要在此的初始化的模块适当往后迁移(至欢迎页)
    • 2.极力避免涉及IO的操作
    • 3.非急用的第三方初始化往后迁移(至欢迎页或主页)
    • 4.非必要在主线程的第三方延时初始化(TimerTask)

    3.欢迎页的执行

    • 1.是用户看到的第一个页面,也需要极速显示
    • 2.采用view.postDelay等方式延时初始化(包括在application中迁移过来的)
    • 3.页面出来之后再执行业务模块(包括为主页做些:网络、数据等资源的准备)

    4.广告页的执行

    • 本项目没有此页

    5.主页的执行

    • 1.主页通常承载了大量的功能业务,并且需要一次性展示
    • 2.这时按照activity的启动流程分析setContentView(*)中的inflate、installDecorView等渲染功能非常耗时,可达到500ms-1000ms以上
    • 3.可采用viewstub的方式,先展示activity的基本框架
    • 4.等待各个业务模块的数据加载完成后再分别inflate相应模块的view
    • 5.这样用户感受到的整个过程就是平滑的、逐步的、可感知的,即时最终完成的耗时仍然超过1s,用户体验也是友好的.

    最后

    最后感谢大家能看到这,希望能带给大家帮助!
    同时也希望各位可以帮忙点个赞,关注一下,谢谢大家的支持!

    漫漫开发之路,我们只是其中的一小部分……只有不断的学习、进阶,才是我们的出路!才跟得上时代的进步!

    我从事Android开发快十年了,今年年初我花近两个月的时间收录整理了一套Android进阶知识体系,如果有想法深入的系统化的去学习,可以Android进阶技术交流(895077617 )免费获取整理版的资料
    **,我会把我收录整理的资料都送给大家,帮助大家更快的进阶。

    重要的事说三遍,关注+喜欢,让更多需要的朋友们都可以看到并且领到!

    相关文章

      网友评论

        本文标题:Android应用性能优化之主页冷启动

        本文链接:https://www.haomeiwen.com/subject/vpneectx.html