本文共 1338 字,大约阅读时间需要 4 分钟。
2020年,互联网裁员潮下,我度过了人生中最清晰的半年。
今年我本命年,熬过了程序员35的坎,却在36岁被公司破产来了当头一棒,领完了当月份的工资,老板,也是我哥们的老李走进我的办公室,没有迂回地通知我,公司倒了。
老李陷进沙发里,用手抹了把脸,看上去很疲惫。
三年前公司还在装修的时候,我过来搭把手看一看,老李叉着腰指着同一套沙发,意气风发的说:“哥们专门给你配的,这小沙发花了我两万,咱们以后光明未来的起点就在这儿了!”
不过三年,创业失败,我们又要找新的起点。
作为安卓开发者,除了Bug,经常会碰到下面这些问题:
应用卡顿,丢帧,屏幕画面撕裂,操作界面刷新缓慢,UI不美观,布局混乱…这些问题频发的话,年后可能就不用来了。
开发App的时候,你是否会觉得界面卡顿?尤其是自定义View的时候。
Android 应用的卡顿、丢帧等,这些影响用户体验的因素绝大部分都与 16ms 这个值有关。Android 设备的刷新率也是 60Hz,Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果超过了16ms,我们则认为发生了卡顿。
一些常见的原因有:
layout 太过复杂,层次过多;
UI 上有层叠太多的绘制单元,过度绘制;
或者onDraw等方法中过于耗时;
CPU 或者 GPU 负载过重;
动画执行的次数过多;
频繁 GC,主要是内存抖动;
UI 线程执行耗时操作;
等等;
那么究竟要怎么做才能给用户一个良好的UI体验呢?
优化界面布局,使界面布局视图扁平化,去除不必要的背景颜色,减少透明色的使用; (尽量减少View在系统中measure、layout、draw的累计时间)
减少UI线程中数据运算,使用子线程处理耗时任务;
尽量避免在循环逻辑或者onDraw方法中频繁创建新对象和使用局部变量;
不要在主进程去做耗时的操作,提升UI的绘制速度(减少View的布局层级,避免过渡绘制等)
高级UI与自定义View有着不可分割的联系。自定义View其实并不难,为什么呢?
因为自定义View无非就是显示+交互:显示由onMeasure ->onLayout->onDraw的整个流程就将显示整个流程处理完了,而交互则是touch事件的处理;另外其他的一切你比如Canvas,Animation,Paint都是围绕着draw来进行的,所以我们需要搞懂其中的根本原理。
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家
会分享一些关于Android进阶方面的知识,也会分享一下最新的面试题~
如果你熟练掌握GitHub中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。
①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包——————可以在我的阅读下载,最后觉得有帮助、有需要的朋友可以点个赞
3-1619663304059)]
[外链图片转存中…(img-d5XPTrG6-1619663304062)]
转载地址:http://ejoti.baihongyu.com/