尾声
一转眼时间真的过的飞快。我们各奔东西,也各自踏上了自己的旅途,但是即使多年不见,也因为这份情谊我们依旧如从前那般“亲密”。不忘初心方得始终。加油吧,程序员们,在我看来35岁,40岁从来不是危机,只要永远不要忘记自己为何踏上征程!
为了让更多在学习中或者最近要准备面试的朋友们看到这篇文章,希望你们能多多评论,点赞+转发!
再次感谢所有给我提供过题目的朋友们,感谢一路有你!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
SurfaceFlinger:android系统服务,负责管理android系统的帧缓冲区,即显示屏幕。
Surface:android应用的每个窗口对应一个画布(Canvas),即Surface,可以理解为android应用程序的一个窗口。
Android应用程序的显示过程包含了两个部分(应用侧绘制、系统侧渲染)、两个机制(进程间通讯机制、显示刷新机制)。
一个android应用程序窗口里面包含了很多UI元素,这些元素是以树形结构来组织的,即它们存在着父子关系,其中,子UI元素位于父UI元素里面。
因此,在绘制一个android应用程序窗口的UI之前,首先要确定里面的各个子UI元素在父UI元素里面的大小和位置。确定各个子UI元素在父UI元素里面的大小以及位置的过程有称为测量过程和布局过程。因此,android应用程序窗口的UI渲染过程可以分为测量、布局和绘制三个阶段。
测量:递归(深度优先)确定所有视图的大小(宽、高)
布局:递归(深度优先)确定所有视图的位置(左上角坐标)
绘制:在画布canvas绘制应用程序窗口的所有视图
android应用程序在图形缓冲区中绘制好View层次结构后,这个图形缓冲区会被交给SurfaceFlinger服务,而SurfaceFlinger服务再使用OpenGL图形库API来将这个图形缓冲区渲染到硬件帧缓冲区中。
android图像显示的底层原理:
CPU:作用是计算图片的形状和文字的纹体
GPU:功能是渲染图像的颜色
Display:屏幕显示图像
Vsync:垂直同步信号,显卡输出频率与屏幕刷新频率同步的信号
android图像在绘制的时候,首先是CPU计算出图像形状,计算完成CPU会将图像交给GPU渲染出颜色,如果这一切都能够在16ms内完成,那么在下一个VSync出现时,就能显示刚刚渲染出来的那一帧图像了。但是如果CPU和GPU处理一帧图像时间超过16ms,那么这帧图像只能等到第二个VSync出现时才能刷出屏幕,呈现给用户了,这就意味着用户在32ms内所看到的是同一帧图像,这就是所谓的掉帧,也就是卡顿了。
文末
面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责!
不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!