Android系统显示原理
一.Android系统显示原理 Android的显示过程简单概括为:Android 应用程序把经过测量、布局、绘制后的surface缓存数据,通过surfaceFlinger把数据渲染到显示屏幕上,通过Android的刷新机制来刷新数据。也就是说应用层负责绘制,系统层负责渲染,通过进程间通信把应用层需要绘制的数据传递给系统层服务,系统层服务通过刷新机智把数据刷新到屏幕。 通过阅读Android系统的源码可以了解显示的流程,Android的图形显示系统采用的是client/server架构。SurfaceFlinger(server)由C++代码编写。Client端代码分为两部分,一部分是由java提供给应用使用的API,另一部分是由C++写成的底层具体实现。 二.绘制原理 绘制任务是由应用层发起的,最终通过系统层绘制到硬件屏幕上显示的。 1.应用层: 图1.1 如上图,这是一个UI界面,有很多不同层次的基本元素(view)构成,整体是一个树形结构,不同的镶嵌,存在不同的父子关系,这是一个递归的渲染过程。在Android 中,iew绘制有三个核心的步骤,,如图1.2,通过measure来绘制view的大小,通过layout确定view的位置,最后通过draw绘制到surface,在Android源码中,viewRootImp类的performTraversals()方法中