项目开发中遇到过哪些性能优化相关问题呢?(Android篇)

Posted 涂程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目开发中遇到过哪些性能优化相关问题呢?(Android篇)相关的知识,希望对你有一定的参考价值。

我敢说还有绝大一部分Android开发还不知道为什么要性能优化!

这绝对不是在危言耸听, 不知道大家有没有在平时的开发工作中遇到过这样的情况:

为什么这些按钮工作的那么慢,我却找不到原因!

很多人高高兴兴写完功能之后,运行到设备上测试发现什么问题都没有,可唯独这个按钮“慢的飞起”,界面之间的跳转也不够流畅,但是代码看过来看过去也没看出什么毛病。

一直以来android开发的性能优化总被部分人遗忘,很多创业公司基本上都不会去进行性能测试,他们会更注重功能测试和稳定性测试,而在一些中小型公司,部分测试人员却心有余而力不足。性能优化一直是大厂面试中被提及最多的问题之一,如果你想进入大厂那么性能优化是你必不可少的技能之一。

**为什么大厂看重性能优化呢?**有很多工作了一两年的开发都还在问,**性能优化真的有用么? **一些在小厂工作的朋友,他们说自己从来没有做过性能调优,测试完就直接上线了,也没有出现什么问题,那为什么还要性能优化呢?

作为一个Android开发工程师,每天都需要解决各种各样的技术问题,其中性能优化是Android开发工作中最为考验技术的工作之一,更是Android开发工程师必备的技能。性能优化虽然说容易学、好上手,但还有绝大多数做业务方面的开发对性能优化也只停留在“听说过”或者“简单使用过工具”的阶段。如果想要吃透性能优化,光会利用工具是远远不够的 ,必须要对底层原理了解透彻,例如:App启动速度优化、内存优化、UI流畅度优化、apk瘦身、电量优化等等。其中与性能优化有直接关联的绝大多数都是内存问题

什么是内存优化?

内存不优化会出现哪些问题?先看看下面这张图

内存抖动(Memory Churn)是因为在短时间内大量的对象被创建又马上被释放。瞬间大量产生的对象会把内存区域大量占用,当达到阀值,剩余空间不够的时候,GC会被触发从而导致刚产生的对象又很快被回收。

即使每次分配的对象都只占用很少的内存,但是他们叠加在一起导致Heap的压力增加,导致其他类型的GC被触发。此时帧率有可能会被影响到,从而使得用户感知到性能问题,带来不好的用户体验。

下面我给大家列举几个面试常见的内存问题:

  • 内存泄漏与内存溢出的区别?
  • 如何避免内存抖动?
  • 为什么内存抖动会导致 OOM?
  • OOM产生的原因有哪些?
  • 内存抖动的危害
  • 发生内存抖动应该如何解决?

Android内存优化是我们性能优化工作中比较重要的一环, 也是Android高开面试最常问的点之一,如果不把内存优化吃透,那么技术面上会很吃亏,但是想要深入了解性能优化不是那么容易的事情。

为了帮助大家更好地掌握性能优化技能,早日成功拥抱高薪,在这里给大家分享一份字节大佬历时三个月整理出来的**《Android性能优化-实战全解析》,从ANR,内存优化,耗电优化,网络优化等板块,给大家带来全方位解析!**

如需要参考学习的小伙伴可以直接点击下方小卡片进行访问查阅或私信回复【666】获取!!!

ANR问题解析

ANR原理分析Android ANR的信息收集 卡顿检测-ANR底层源码分析 四大组件启动超时ANR Input响应超时ANR

Crash监控方案

监控死锁 监控存活周期 监控CPU占用率

启动速度与执行效率优化项目实战

卡顿检测,卡顿原因,卡顿优化微信为什么越滑越卡 异步、非阻塞式Android启动任务调度库Android App启动页白屏快速优化方案实践

如需要参考学习的小伙伴可以直接点击下方小卡片进行访问查阅或私信回复【666】获取!!!

内存优化

常用的Android内存优化工具
Memory Profiler使用解析LeakCanary使用解析如何使用MAT内存泄漏分析及检测工具

网络传输与数据存储优化

网络优化的三个要点网络优化的两个维度三个线下测试工具
线上监控的三个要点
网络请求质量优化

除此之外,这份学习文档基本包括了性能优化全部的相关内容,大家可以通过目录领略一下

纸上得来终觉浅,绝知此事要躬行,希望大家都能早日加强性能优化技能,这份**《Android性能优化-实战全解析》**一定可以给到大家帮助,让大家早日成为真正的高级Android开发者!

如需要参考学习的小伙伴可以直接点击下方小卡片进行访问查阅或私信回复【666】获取!!!

以上是关于项目开发中遇到过哪些性能优化相关问题呢?(Android篇)的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB如何优化查询性能?

页面性能优化办法有哪些?

关于浏览器性能优化-转

TYPESDK 服务端设计思路与架构之六:性能及调优初步

Android 性能优化总结

java编译器的代码优化问题