前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何评价性能优化?涵盖知识面太广?

如何评价性能优化?涵盖知识面太广?

原创
作者头像
程序员小顾
发布2021-12-26 17:24:25
8830
发布2021-12-26 17:24:25
举报
文章被收录于专栏:fjal

前言

随着Android 开发越来越规范, 国内工程师的素质,以及用户对产品的要求也越来越高。

这也间接导致我们对研发项目的质量要求到了近乎苛刻的地步,内存优化、UI 卡顿优化、App 崩溃监控等性能调优也逐渐成了人手必备的技能。

工作之余,难免让我们感慨学无止境,以及 Android 开发也是水深不见底。

做了跟性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易.为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好

下面这份资料是技术前辈们分享的Android 性能优化所必须掌握的知识,涵盖性能优化相关的方方面面包含项目实战

项目实战

  • 启动速度
  • 流畅度
  • 抖音在APK包大小资源优化的实践
  • 优酷响应式布局技术全解析
  • 网络优化
  • 手机淘宝双十一性能优化项目揭秘
  • 高德APP全链路源码依赖分析
  • 彻底干掉OOM的实战经验分享
  • 微信Android终端内存优化实践

理论

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

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据存储优化
  • APK大小优化
一、启动速度与执行效率优化
  • 冷启动和热启动解析 本节主要介绍启动方式、特点、应用启动的流程、测量应用启动的时间、什么才是应用的启动时间、降低应用启动时的耗时、优化应用启动时的体验。
  • APP启动黑白屏解决办法 解决方法1,把启动白屏的背景换成一张图片;解决方法2,把启动白屏背景变透明。
  • APP卡顿问题分析及解决方案 16ms原则; 卡顿处理; Triple Buffer,既然丢帧的情况不可避免,Android 团队从未放弃对这块的优化处理,于是便出现了Triple Buffer(三缓冲机制)。
  • 启动速度与执行效率优化之StrictMode StrictMode 详解、Systrace和TraceView。
二、布局检测与优化
  • 布局层级优化 程序的每个组件和 Layout 都需要经过初始化、布局和绘制,如果布局嵌套层次过深,就会导致加载操作更为耗时,更严重的话还可能导致内存溢出。本节学习使用两个工具来检查和优化 Layout。
  • 过度渲染 既然能够通过系统设置知道过度渲染次数,测试时候就读取该值,填写报告就完了啊,为何要自动化呢?因为在对app进行系统的测试时,会发现页面非常多,如管家一二级页面就多大20多个,且集成包,灰度包,正式包,回归包都要进行一次测试,所以进行自动化过度渲染计数读取是有必要的。
三、内存优化

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

主要包含

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

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

耗电的因素有那些呢?

(1)Alarm Manager wakeup 唤醒过多 (2)频繁使用局部唤醒锁 (3)后台网络使用量过高 (4)后台 WiFi scans 过多

详细内容包含

  • Doze&Standby
  • Battery Historian
  • JobScheduler、WorkManager
五、网络传输与数据存储优化
  • google序列化工具protobuf
  • 7z极限压缩
六、APK大小优化

让我们的apk文件尽可能更小,移除那些未使用的代码和资源文件,节省下载和提高效率。

  • APK瘦身
  • 微信资源混淆原理

总结

作为过来人,知道苦苦找寻资料的艰辛,所以资料我都为大家准备好了,需要的伙伴请点击这里免费领取

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目实战
  • 理论
    • 一、启动速度与执行效率优化
      • 二、布局检测与优化
        • 三、内存优化
          • 四、耗电优化
            • 五、网络传输与数据存储优化
              • 六、APK大小优化
              相关产品与服务
              数据保险箱
              数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档