写点什么

我把阿里、腾讯、字节跳动,flutter 插件化

用户头像
Android架构
关注
发布于: 刚刚
  • 抖音在 APK 包大小资源优化的实践

  • 优酷响应式布局技术全解析

  • 网络优化

  • 手机淘宝双十一性能优化项目揭秘

  • 高德 APP 全链路源码依赖分析

  • 彻底干掉 OOM 的实战经验分享

  • 微信 Android 终端内存优化实践



以上资源均免费分享给大家,内容放在了开源项目:【Github】,大家可以自行获取。


理论


===================================================================


在 Android 应用优化方面,我们主要从以下 6 个方面进行优化:


  • 启动速度与执行效率优化

  • 布局检测与优化

  • 内存优化

  • 耗电优化

  • 网络传输与数据存储优化

  • APK 大小优化


一、启动速度与执行效率优化




  • 冷启动和热启动解析


本节主要介绍启动方式、特点、应用启动的流程、测量应用启动的时间、什么才是应用的启动时间、降低应用启动时的耗时、优化应用启动时的体验。


  • APP 启动黑白屏解决办法


解决方法 1,把启动白屏的背景换成一张图片;解决方法 2,把启动白屏背景变透明。


  • APP 卡顿问题分析及解决方案


16ms 原则;


卡顿处理;


Triple Buffer,既然丢帧的情况不可避免,Android 团队从未放弃对这块的优化处理,于是便出现了 Triple Buffer(三缓冲机制)。


  • 启动速度与执行效率优化之 StrictMode


StrictMode 详解、Systrace 和 TraceView。



二、布局检测与优化




  • 布局层级优化


程序的每个组件和 Layout 都需要经过初始化、布局和绘制,如果布局嵌套层次过深,就会导致加载操作更为耗时,更严重的话还可能导致内存溢出。本节学习使用两个工具来检查和优化 Layout。


  • 过度渲染


既然能够通过系统设置知道过度渲染次数,测试时候就读取该值,填写报告就完了啊,为何要自动化呢?因为在对 app 进行系统的测试时,会发现页面非常多,如管家一二级页面就多大 20 多个,且集成包,灰度包,正式包,回归包都要进行一次测试,所以进行自动化过度渲染计数读取是有必要的。



三、内存优化




《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


--


由于 Android 应用的沙箱机制,每个应用所分配的内存大小是有限度的,内存太低就会触发 LMK(Low Memory Killer)机制,进而会出现闪退现象。如果要对内存进行优化,就需要先搞懂 java 的内存是如何分配和回收的,关于这方面,可以重点参考下面的内容:


Android应用内存泄漏的定位、分析与解决策略


主要包含


  • 内存抖动和内存泄漏

  • 内存大户,Bitmap 内存优化

  • Profile 内存监测工具

  • Mat 大对象与泄漏检测



四、耗电优化




如果一个 app 使用的很少,但是 app 的耗电量却很高,这时候用户肯定想直接卸载这个 app。那么如何降低自己 app 的耗电量就是一个很重要的事情了。


耗电的因素有那些呢?

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
我把阿里、腾讯、字节跳动,flutter插件化