找回密码
 立即注册
查看: 215|回复: 0

为什么要进行性能优化?如何解决性能优化问题?360°全 ...

[复制链接]
发表于 2022-9-26 12:09 | 显示全部楼层 |阅读模式
前言

安卓开发大军浩浩荡荡,经过十多年的发展。红利期已过,现在是增量有限,存量厮杀,从争夺用户到争夺时长。不管是用户也好、企业也好,都对 App 的用户体验和性能提出了更高的要求。
如果你已经有 2 - 3 年以上开发经验还不懂的怎么去优化自己的项目,那么想迈进中高级工程师这道门槛是不可能了。而这道门槛,说实话学习成本还是挺高的。
性能优化也是企业考察一个高级 Android 工程师技术水平的重要维度。特别是诸多大厂在这方面尤为看重,毕竟就算0.1%的瑕疵,影响的将是百万级、千万级的用户体验!
性能优化的目的


  • 流畅(解决:卡顿)
  • 稳定(解决:内存溢出、崩溃)
  • 低耗损(解决:耗电快、流量大、网络慢)
  • 小安装包(解决:APK过大)
性能优化原则:


  • 先优化瓶颈问题;
  • 方案简单,尽量不引入更多复杂性,尽量不降低业务体验;
  • 满足系统性能要求即可,不引入新的bug。
为什么要进行性能优化?

随着互联网的迅速发展,现在的网站内容越来越丰富,用户对网站的性能要求也越来越高,可以说性能是web网站和应用的支柱,我们要关注用户的流量、SEO、转换率、用户体验等一系列问题。当下性能优化面临的最大挑战就是来自移动端的挑战:

  • 受硬件设备的影响,加载速度慢,网络环境不好,屏幕尺寸小,交互方式复杂
  • 用户更缺少耐心,>3秒加载可能导致53%的跳出率
  • 持续增长的移动用户和电商业务
性能优化有哪些方面?

传输加载优化:Gzip、KeepAlive、HTTP 缓存、Service Worker、HTTP/2、SSR、Nginx
资源优化:压缩&合并、图片格式、图片加载、字体优化
渲染优化:现代浏览器渲染原理、可视化的渲染环节和方法
构建优化:webpack 优化配置、代码拆分、代码压缩、持久化缓存、监测与分析、按需加载
代码优化:JS优化、HTML优化、CSS优化
常见的性能优化手段有哪些?


  • SVG优化图标
  • FlexBox布局
  • 预加载预渲染
  • 窗口化提高列表性能
  • 骨架组件
性能优化知识点

下面给大家分享一份 722页的《360°全方面性能调优》文档,文档主要有四个大章节,设计思想与代码质量优化; 程序性能优化;开发效率优化;APP 性能优化实践;需要更多性能优化资料的点击下方微信卡片免费领取哦
第一章 设计思想与代码质量优化

一、六大原则


  • 单一职责原则
  • 里氏替换原则
  • 依赖倒转原则
  • 接口隔离原则
  • 迪米特法则
  • 合成复用原则
二、设计模式


  • 结构型模式
  • 创建型模式
  • 数据结构
三、数据结构


  • 数组

  • 队列
  • 链表



  • 散列表
四、算法


  • 排序算法
  • 查找算法



第二章 程序性能优化

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


  • 冷启动和热启动解析
  • APP启动黑白屏解决办法
  • APP 卡顿问题分析及解决方案
  • 启动速度与执行效率优化之StrictMode
二、布局检测与优化


  • 布局层级优化
  • 过度渲染
三、内存优化


  • 内存抖动和内存泄漏
  • 内存大户,Bitmap 内存优化
  • Profile 内存监测工具
  • Mat 大对象与泄漏检测
四、耗电优化


  • Doze&Standby
  • Battery Historian
  • JobScheduler、WorkManager
五、网络传输与数据存储优化


  • google 序列化工具 protobuf
  • 7z 极限压缩
六、APK 大小优化

APK 瘦身
微信资源混淆原理
七、屏幕适配


  • 为什么要进行屏幕适配?
  • 屏幕分辨率限定符与 smallestWidth 限定符适配原理
  • 为什么选择 smallestWidth 限定符适配?
  • 怎么适配其他 module?
八、OOM 问题原理解析


  • adj 内存管理机制
  • JVM 内存回收机制与 GC 算法解析
  • 生命周期相关问题总结
  • Bitmap 压缩方案总结
九、ANR 问题解析


  • AMS 系统时间调节原理
  • 程序等待原理分析
  • ANR 问题解决方案
十、Crash 监控方案


  • Java 层监控方案
  • Nativie 层监控方案



第三章 开发效率优化

一、分布式版本控制系统 Git


  • 企业高效持续集成平台场景介绍
  • GIT分布式版本控制系统
  • GIT分支管理
二、自动化构建系统 Gradle


  • Gradle 与 Android 插件
  • Transform API
  • 自定义插件开发
  • 插件实战



第四章 APP 性能优化实践

一、启动速度

二、流畅度


  • 流畅度相关工作概述
  • 性能问题分析的一些工具和套路
  • 通过性能数据数据分析
三、抖音在 APK 包大小资源优化的实践


  • 概述
  • 图片压缩
  • webp 无侵入式兼容
  • 多 DPI 优化
  • 重复资源合并
  • shrinkResource 严格模式
  • 资源混淆(兼容 aab 模式)
  • ARSC 瘦身
四、优酷响应式布局技术全解析


  • 优酷APP响应式布局技术概述
  • 优酷APP响应式布局Android落地
  • 优酷APP响应式布局在分发场景的落地
  • 优酷APP响应式布局在消费场景的落地
  • 优酷APP响应式布局之测试方案
五、网络优化


  • 手机淘宝在网络的链路优化
  • 百度APP在网络深度优化的实践
六、手机淘宝双十一性能优化项目揭秘


  • 一秒法则的实现
  • 启动时间和页面帧率提升20%
  • Android 手机内存节省50%
七、高德 APP 全链路源码依赖分析


  • 背景
  • 高德 APP 平台架构
  • 基础实现原理
  • 项目架构
  • 应用场景及实现原理
八、彻底干掉 OOM 的实战经验分享


  • 排查内存泄漏
  • 兜底策略
  • 内存峰值太高
  • 特大图排查优化
九、微信 Android 终端内存优化实践





最后

性能优化是我们进阶的毕竟之路。So,我们必须要会,至于“会”到什么程度,就要看个人理解了。代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。
由于资料内容过多,文章篇幅有限,需要完整版《360°全方面性能调优》下方卡片免费领取哦!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-7-4 11:07 , Processed in 0.089789 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表