天天看點

Android圖形顯示系統——下層顯示1:基礎知識與相關檔案基礎知識和相關檔案

android下層顯示相關的代碼相對而言并不是很多,核心部分在三件廠商或soc廠商提供/內建的驅動之中。盡管如此,這部分代碼涉及到一系列基礎類庫,不了解的話也很難讀懂。

這些基礎知識這裡隻做簡單介紹,詳細了解看連結或可自行百度或google

android中用于程序間通信的基本方法,需要了解它是怎麼使用的,不然會搞不明白surfaceflinger服務怎麼起來,怎麼發揮作用的。

<a href="http://blog.csdn.net/new_abc/article/details/8097775">http://blog.csdn.net/new_abc/article/details/8097775</a>

android自己實作的線程類封裝。主要關注子類需要重寫哪些虛函數,做什麼事情。

system/core/libutils/threads.cpp

這篇文章可以參考一下,不過 libutils的目錄在android4.4之後改到system/core下面了。

<a href="http://www.csdn123.com/html/blogs/20130802/46970.htm">http://www.csdn123.com/html/blogs/20130802/46970.htm</a>

android裡面的智能指針和弱引用,基礎類型了,主要留意onfirstref的調用時機。

<a href="http://blog.chinaunix.net/uid-24922718-id-3787722.html">http://blog.chinaunix.net/uid-24922718-id-3787722.html</a>

android中的消息處理機制,對顯示而言,主要是用來做vsync垂直同步時用到。

<a href="http://www.cnblogs.com/angeldevil/p/3340644.html">http://www.cnblogs.com/angeldevil/p/3340644.html</a>

android所有程序的父程序,涉及開機動畫。不過這部分代碼和上層顯示關聯更多(預加載)。

<a href="http://blog.csdn.net/zhgxhuaa/article/details/24201127">http://blog.csdn.net/zhgxhuaa/article/details/24201127</a>

圖形标準和視窗标準。使用gpu硬體加速功能必須。

opengl沒什麼文章能講清的,沒有背景知識的了解一下就好。

egl可以參考這篇:

<a href="http://blog.csdn.net/ldh_123456/article/details/17422479">http://blog.csdn.net/ldh_123456/article/details/17422479</a>

system/core/include/system/graphics.h

system/core/include/system/window.h

hardware/libhardware/include/hardware/gralloc.h

hardware/libhardware/include/hardware/hwcomposer_defs.h

hardware/libhardware/include/hardware/hwcomposer.h

主要子產品和相關類如下圖所示:

Android圖形顯示系統——下層顯示1:基礎知識與相關檔案基礎知識和相關檔案

裝置相關的hal層驅動各廠商并不相同且一般屬于保密資訊,kernel也主要是根據晶片使用手冊配置寄存器,不适合講且沒有太多參考價值。

繼續閱讀