助力软件开发企业降本增效 PHP / java源码系统,只需一次付费,代码终身使用! 广告
Surface是继Audio系统后要破解第二个复杂的系统。它的难度和复杂度远远超过了Audio。基于这种情况,本章将集中精力打通Surface系统的“任督二脉”,这任督二脉分别是: - 任脉:应用程序和Surface的关系。 - 督脉:Surface和SurfaceFlinger之间的关系。 当这二脉打通后,我们就可以自行修炼更高层次的功夫了。图8-1显示了这二脉的关系: :-: ![](http://img.blog.csdn.net/20150802163450719?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 图8-1 Surface系统的任督二脉 其中,左图是任脉,右图是督脉。 - 先看左图。可以发现,不论是使用Skia绘制二维图像,还是用OpenGL绘制三维图像,最终Application都要和Surface交互。Surface就像是UI的画布,而App则像是在Surface上作画。所以要想打通任脉,就须破解App和Surface之间的关系。 - 再看右图。Surface和SurfaceFlinger的关系,很像Audio系统中AudioTrack和AudioFlinger的关系。Surface向SurfaceFlinger提供数据,而SurfaceFlinger则混合数据。所谓打通督脉的关键,就是破解Surface和SurfaceFlinger之间的关系。 目标已清楚,让我们开始“运功”破解代码吧! >[info] **说明**:为书写方便起见,后文将SurfaceFlinger简写为SF。