android 动画在某个界面卡顿_3年Android开发面试被问到性能优化,进去5分钟就出来了...

Android开发中遇到的界面卡顿、丢帧问题往往与16ms的VSYNC信号有关。常见原因包括布局复杂、过度绘制、CPU/GPU负载、动画次数过多等。优化策略包括简化布局、避免主线程耗时操作、减少新对象创建等。自定义View是提升UI体验的关键,但很多开发者对此缺乏深入理解。分享的资料涵盖了性能优化与自定义View的知识,旨在帮助开发者提升技能和应对面试挑战。
摘要由CSDN通过智能技术生成

作为安卓工程师,经常会碰到下面这些问题:

开发的app应用卡顿,丢帧,屏幕画面撕裂,UI不美观,布局混乱;开发的时候,操作界面刷新缓慢,会很卡顿,尤其是自定义View的时候…

Android 应用的卡顿、丢帧等,这些影响用户体验的因素绝大部分都与16ms这个值有关。Android 设备的刷新率也是 60Hz,Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果超过了16ms,我们则认为发生了卡顿。

一些常见的原因有:

  • layout 太过复杂,层次过多;
  • UI 上有层叠太多的绘制单元,过度绘制;
  • 或者onDraw等方法中过于耗时;
  • CPU 或者 GPU 负载过重;
  • 动画执行的次数过多;
  • 频繁 GC,主要是内存抖动;
  • UI 线程执行耗时操作;
  • 等等;

高级UI与自定义View有着不可分割的联系。自定义View其实并不难,为什么呢?因为自定义View无非就是显示+交互:显示由onMeasure ->onLayout->onDraw的整个流程就将显示整个流程处理完了,而交互则是touch事件的处理;另外其他的一切比如Canvas,Animation,Paint都是围绕着draw来进行的,所以我们需要搞懂其中的根本原理。

d3f0e0f61eb5021fc26d04015dc3557f.gif

优秀高级UI展示

自定义View,是Android程序员的分水岭。

那究竟要怎么做才能给用户一个良好的UI体验呢?

  • 优化界面布局,使界面布局视图扁平化,去除不必要的背景颜色,减少透明色的使用;(尽量减少View在系统中measure、layout、draw的累计时间)
  • 减少UI线程中数据运算,使用子线程处理耗时任务;
  • 尽量避免在循环逻辑或者onDraw方法中频繁创建新对象和使用局部变量;
  • 不要在主进程去做耗时的操作,提升UI的绘制速度(减少View的布局层级,避免过渡绘制等)

据官方统计,超过一半的开发者没有写过自定义ViewGroup;接近六成的人不知道MeasureSpec;80% 的开发者不会手写懒加载机制优化UI性能…

不钻研各种技能,怎么提升能力涨薪资?

为了提升大家对性能优化的理解,这里分享一份大佬收录整理的性能优化和自定义View的资料(篇幅太多,只展示部分)

f76a6a501f219f2ce2015e5371889f1d.png

还有Android学习PDF+架构视频+面试文档+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料,足以大家备战金九银十

这些都是我现在闲暇还会反复翻阅的精品资料。里面对近几年的大厂面试高频问题都有详细的讲解,也是对我有很大的帮助。相信可以有效的帮助大家掌握知识、理解原理。

当然你也可以拿去查漏补缺,提升自身的竞争力。

如果你有需要的话,可以私信我【面试】获取

喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗~

4f5e14afad5ebd99ec159912f797657d.png
76f2a4835a446b4554a8df7ad8553557.png
9efbe076d8a824e1376c10f3cec22a2a.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值