openthos / multidisp-analysis

1 stars 1 forks source link

添加自定义log,分析多屏支持从内核到上层surfaceflinger的执行路径。 #7

Open pkulxy opened 8 years ago

pkulxy commented 8 years ago

如何添加、查看log,在哪里添加log输出,还需要做进一步调研。

chyyuu commented 8 years ago

现在的情况是?

pkulxy commented 8 years ago

添加查看log Android本身自带的logcat是可以搞定的。 在哪里添加log目前只在源码native层中找到了surfaceFlinger中对外接显示器的支持。 至于底层硬件如何通知surfaceFlinger外接显示器的存在,以及上层java如何知道外接显示器的存在,还需要进一步分析。这里涉及到android各层之间的通信机制,以及kernel和上层之间的通信,需要花大力气去分析。 从目前已有信息来看,android的UI显示都是上层app控制的,surfaceFlinger负责的是对各个UI显示内容的计算,然后把结果交由opengl渲染。包括以copy方式支持双屏,Android本身上层API提供Presentation接口对上层APP提供双屏支持。 要想从系统本身支持扩展屏幕,以投影方式工作量需要视x86和手机的源码区别来决定,如果以扩展方式支持的话,目前知道的是需要对surfaceFlinger动手修改,至于更上层的java和底层kernel是否需要改动还需要分析源码。