編輯:Android開發教程
1.1 BufferQueue詳解
上一小節我們已經看到了BufferQueue,它是SurfaceTextureClient實現本地窗口的關鍵。從邏輯上來推斷,BufferQueue應該是駐留在SurfaceFlinger這邊的進程中。我們需要進一步解決的疑惑是:
每個應用程序可以對應幾個BufferQueue,它們是一對一、多對一或者是一對多?
應用程序所需要的繪圖空間是由誰分配的?
在音頻系統的學習中,我們知道AudioTrack和AudioFlinger是通過共享內存的形式來進行數據傳遞的,那麼顯示系統中是否也是類似情況?
應用程序與SurfaceFlinger如何互斥共享數據區
和在Audio系統中遇到的問題一樣,我們面臨的是經典的“生產者-消費者”模型。顯示系統又是如何協調好這兩者間的互斥訪問的呢?
1.1.1 BufferQueue的內部原理
先來解析下BufferQueue的內部構造,如下圖所示:
圖 11?12 BufferQueue內部變量
構建移動應用程序和構建 Web 應用程序一樣,要時刻牢記最終目標(和用戶)。始終了解您的應用程序可 以給用戶帶來哪些利益。您的應用程序將顯示哪些類型的信息,擁有哪些功能
從這一篇開始我們將看看Java 5之後給我們添加的新的對線程操作的API,首先看看api文檔:java.util.concurrent包含許多線程安全、測試良好、高性能的
用Eclipse打開Android應用程序的項目可以看到如下圖所示的文件結構。src文件夾保存的是我們編寫的java源文件,我們編寫的源代碼一般都放在這個文件夾內。比如H
一直以來,關於蘋果iOS和谷歌Android誰更好用的爭論從來沒有間斷過,它們不僅代表了世界上兩個最先進、最受歡迎的移動平台,同時也是蘋果和谷歌兩家科技巨頭品味、風格的不