jollen.org

Jollen 的 Blog
Jollen's email: jollen # jollen.org
more:  Jollen's Training

Android SystemServer 對 Linux 驅動程式程式碼風格的影響,一個簡單的概念

.作者:jollen/
.日期:July 8, 2010 12:02 AM


今天為一家國際手機廠進行 Android 底層相關的內訓,課堂中提到一個概念,就是基於 Android 的 SystemServer 架構,可以藉由「架構面」改善過去 Linux 驅動程式在 Rentrant Code 議題面的程式碼模式。藉由模式的調整,可改善程式碼的效率。

過去,多個 Process 同時(Concurrency)存取同一份 Linux 驅動程式時,若驅動程式進行 Re-scheduling 操作,驅動程式的 Driver Method 就會重覆進入,因此需要考量做同步控制。

若是藉由 SystemServer 的架構,也就是「Single Process 存取驅動程式」,就能簡化重覆進入的議題。如下圖所示。

android-linux-driver-model.png

這是一個很簡單的模型,在 Middleware 層面,透過「限制應用程式的模式」來達到簡化重覆進入的議題。以 Android 作業系統為例,SystemServer 可以扮演這個「Single Process」的角色。當然,也可以設計成一個獨立的「My SystemServer」,根據對問題的分析來決定要修改 SystemServer,或是建立 My SystemServer。

對應用程式來說,只需要透過 IPC 與 SystemServer 溝通即可。當 SystemServer 需要交付資料(Data)給應用程式(Clients)時,可以採取下列二種方式:

1. Message & Handler
2. 註冊 Listener、由 SystemServer Callback

目前,正在進行「Android HAL & Framework:軟硬整合實作訓練」課程的第三次修訂,將會加入這個主題,以實例介紹 Android 框架如何影響 Linux 驅動程式的程式碼寫作風格,希望能在驅動程式的程式碼優化方面進行討論。

Tags:

純手工打造說明:技術專欄文章為 Jollen 原創,內容皆為人工撰寫,無 AI 生成。轉載請註明出處與作者,並全文引用。轉載時請在文章開頭或結尾明顯處註明「本文出處:https://www.jollen.org,已取得原作者同意並授權使用。」
訂閱電子報:不定期 Jollen's Blog 精選文章隨 Moko365 電子報寄送;請透過 Moko365 電子報訂閱(可隨時取消)。

Copyright(c) 2001–2010 www.jollen.org. All rights reserved.
Last update: 2026-07-22