Android性能优化面试官想听的是什么?别再说那些老掉牙的性能

2023-09-15  本文已影响0人  进击的老六

一、故事开始

面试官:我今天主要问下性能方面,你之前有没有做过性能优化?

:嗯....我做过功耗优化,比如耗电优化,流量优化。性能方面我做过卡顿优化,主要针对卡顿监控方面。

面试官: 那着重描述下卡顿方面吧,说下你是怎么做的。

:嗯... 卡顿其实分为直观的和微观两个方向的,举个例子:

比如用户点击了登录,预期是得到登录成功/失败的反馈,可现在没有页面刷新,实际的刷新耗时超出了预期,这就是直观的卡顿。

比如用户在看股票,正常60秒刷新一次,可到了60秒,触发了刷新但是刷新处理逻辑耗时较长,导致新的数据在下一个60秒之前的第59秒才回来,用户基本无感知,主要说的是内部耗时的问题,这种情况可以粗略的理解为微观卡顿。

面试官:你不用说概念,直接说为什么会产生卡顿就行了。

:好的面试官,我整体吹一...,啊不,我整体说一下,说的不对您及时补充。手动呲牙

首先,我认为卡顿产生的原因主要是某些逻辑处理时间超出了我们的预期阈值,这些耗时操作影响了页面的刷新,当刷新的频率和速度(60帧/s)低于我们的预期时,就会产生我们理解的卡顿。

其次,如果主线程耗时过长还可能产生ANR,当然ANR在不同场景下的耗时阈值不同。

最后,当然也有很多现实因素会影响用户体验,比如手机的配置,所处环境的网络质量等...

面试官: 嗯,那你怎么做到让App不卡顿?

:我认为做到App不卡顿主要分为以下几种情况:

1.如果App整体都是自己开发,那自己写逻辑尽量保持简洁合规,主线程尽可能不做耗时操作,UI绘制层级尽量保持扁平,复杂数据处理尽量前置,或缓存等等.

2.如果项目多人合作开发,这个问题会演进为怎么治理这些卡顿。

3.......

去过大厂面试的朋友就会知道大厂经常问这样的问题,主要是因为一旦发生卡顿就会被用户直观的感受到,而其他问题很难被及时的发现:比如内存占用高,耗费流量等。用户体验不好就很有可能卸载掉我们的 App,让公司白白付出高昂的用户成本,因此因为性能问题导致用户流失是我们开发人员的失职。

在这里特此分享这份,腾讯T4大佬目汇聚了上百篇业界知名性能优化文章整理的而成的《Android性能优化实战解析》,帮助大家从大厂性能优化项目中吸取更多经验,提升自身的技能知识。

一线互联大厂性能优化实战

腾讯团队:

爱奇艺团队

字节团队:

百度团队:

阿里团队

携程:

网易

最后

现在的时代背景下,初级移动开发人员很 “卷”,但优秀的高级工程师又比较稀缺,没有任何核心技能的工程师随时可能被“优化”掉。一定要打造自己的技术壁垒,让自己做到无可替代。

大家也没必要太过焦虑,找到适合自己的终身学习的方式以及那些中短期内不太会变的底层逻辑、跟随时代跳动的频率,去不断地迭代演进自己就好了。

上一篇 下一篇

猜你喜欢

热点阅读