性能优化对于Android程序员的重要性,看完你就明白

前言

相信我们都使用过Android手机,然后在使用的过程中经常会遇到手机卡顿,应用闪退,画面不流畅等问题;正因为如此,就导致用户体验非常差,最后选择不再使用Android手机。对此,很多公司对Android项目的质量要求越来越高,这些迫使我们认识到性能优化是非常重要,某种程度上甚至超过了新功能的开发。

为什么需要性能优化

我们在进行Android App项目开发时,除了NDK之外,用到的都是java语言,因为java语言时一直基于虚拟机JVM运行的语言,相比于C++来说,效率是比较低的。Java需要占用大量内存来换取执行速度,而不定期的GC机制,直接导致Android界面的卡顿现象。

相比Apple的iOS,Android要面对无数不同的硬件组合,分辨率,驱动等,导致App质量参差不齐。
这个时候我们就需要用到性能优化提高程序的性能,让我们的应用更快,更少使用CPU资源,更少使用内存。

性能优化对于android程序员的重要性

虽然说Android的性能优化是一个老生常谈的内容,但随着移动设备和应用程序市场不断的反正,Android 应用程序变的越来越多,为了吸引用户和确保业务的成功,很多android企业都希望自己的应用程序与其他应用程序相比更加高效和快速。所以就导致了,目前市场对于Android程序员的技能要求都需要有性能优化经验。

大厂招聘需求
在这里插入图片描述
在面试中,也有不少企业会拿性能优化相关的问题去考察面试者的技术水平,比如这些常见的问题:

1.如何评估应用程序的性能?
2.Android 应用程序开发中使用过哪些性能优化技术?
3.如何利用 Android Profiler 工具来检测性能问题?
4.如何使用 LeakCanary 检测内存泄漏的?
5.如何使用 Lint 工具来检测潜在的性能问题?
6.如何避免在应用程序中使用非必要的内存?
7.如何降低应用程序的启动时间?
8.如何降低应用程序的网络请求时间?
9.如何避免造成UI线程阻塞?
10.如何处理大型数据集和长列表的性能问题?

如果你是面试者,你都能对答如流吗?我跟不少Android程序员交流过,他们觉得只要形成一个系统的分析思路才是通过面试的关键。可是你要知道,Android的性能优化包括启动速度优化、布局优化、内存优化、耗电优化、apk大小优化等内容,而且这个方面是一个持续性的需求,因为Android的每种机型的兼容性不一样,所以出现的问题就会不一样,而且Android系统也在不断更新,我们需要根据用户的反馈来追踪排查出现的性能问题,然后才能针对这些问题采取措施。这也是Android开发工程师需要去解决的问题。

搞清楚了这些,相信大家对于性能优化应该有了更深的理解,下面是我给大家准备的《Android 性能优化学习手册》有需要的朋友可以私信小编领取,它能有效帮助大家建立起性能优化的整体框架,里面的知识都是很全面的,不少进阶知识都讲的很透彻,同时还有实战案例帮助大家认识项目环境、提高实际的问题解决能力,下一个性能优化师就是你!

资料内容

1.启动优化

网页端存在的一个定律叫8秒定律: 即指用户访问一个网站时,如果等待打开的时间超过8秒,超过70%的用户将会放弃等待。
同样的,移动端也有一个8秒定律:
如果一个App的启动时间超过8秒或有明显的卡顿,80%的用户将会退出应用并对程序员进行口吐芬芳。当然这是我结情的,但却不代表是不存在的。最起码肯定会影响在市场上的评分,进而让更多的用户在对比过程中选择竞品。

在这里插入图片描述

2.UI布局优化

在Android 中系统对View 进行测量、布局和给制时,都是通过对 View 树的温历来进行操作的。如果一个View 树的高度太高就会严重影响测量、布局和绘制的速度Google 也在其 API 文档中建议 View高度不直超过10层。
在这里插入图片描述
3.卡顿优化

  • 布局可以说是APP最重要的一项了,用户感知极强,无论你的代码写的如何,用户也不知道,用户只能看到和操作APP,更漂亮合理的布局,更流畅的体验才是好APP。
  • 比如微信,操作起来卡,用户只会觉得是手机不行,而不会是微信不行,但其他APP卡,用户就觉得是APP不行,而不是手机不行。

在这里插入图片描述
4.崩溃优化

崩溃率是衡量一个应用质量高低的基本指标,那么,该怎样客观地衡量崩溃这个指标,以及又该如何看待和崩溃相关的稳定性。

在这里插入图片描述

5.网络优化

随着移动网络的不断升级,客户端的网络传输由3G进化到Wif、4G,且Wif场景越来越多。虽然网络环境在变好,但也对网络的应用提出了更高的要求,会发现很多大厂都十分重视网络指标,如果技术人员不加以控制,在弱网、体验、包括服务器带宽、流浪方面都会造成不同程度的损失。

在这里插入图片描述

6.优化Glide加载超大gif图

为何要优化glide的gf support呢?要回到2年前,我们需要在页面支持很多png或者gf的图作为活动氛国的背景,而运营商始的gr四都限大(>5mb),就会出现内存抖动APP卡顿,还有gO掉帧,虽然通过gif压缩可以成小体积,但是显示效果会大大折扣。加载调研支持gif的图片加载库,也只有glide还有Fresco了.而项目已经有glide了。那么我们需要的就是去做优化了。

在这里插入图片描述

7.存储优化

内存优化的主要目的是提高应用程序运行的效率和性能,并减少应用程序由于内存问题导致的崩溃或者卡顿情况。当一个应用程序运行时,它需要通过系统申请一部分内存空间来存储程序数据,但是如果这部分内存空间使用过多,就会导致整个系统内存的不稳定以及其他应用程序的运行受到影响。

因此,通过对Android应用程序内存空间的管理和优化,可以使得应用程序运行更加顺畅,提高应用程序的响应速度和性能,并且可以避免由于内存不足导致的崩溃或者卡顿情况。同时,对于低端设备或者内存较小的设备,内存优化也能够提高设备的稳定性和流畅度,提高设备的用户体验。
在这里插入图片描述

最后,希望大家能够早点进阶成为Android高级工程师。

猜你喜欢

转载自blog.csdn.net/m0_70749039/article/details/130414401