android HAL 層與 android NDK

一般學員, 對 android HAL 與android NDK 不是很清楚.  對於HAL部份, 可以參考49歐姆前面HAL文章.  這裡主要書名兩者之差異. android NDK(native development kid)原生發展工具, 光看中文翻譯名稱, 總覺有點繞口.  其實就是 google提供的一種 java 直接呼叫 c 程式的功能.  java屬於byecode 高階語言, 好用, 但對硬體控制就麻煩, 硬體控制還是要用c 或assembly 所以, NDK就出現啦 !!!!!!

事實上, 不同語言間, 呼叫來, 呼叫去, 蠻正常的.  像 c 呼叫 組合語言, 在bootloader最最開始的程式碼, 也是用組合語言寫的, 用來精準設定cpu的clock與dram等bank參數.

如果是設計專屬機, 具有特定功能之android裝置, 對android HAL與驅動又不是很熟, 可以直接使用NDK, 用c 寫驅動, 用java API直接call此驅動即可, 如此可 bypass 繞過android原先的驅動與HAL 架構.   可是這在通用android機種, 可能稍微不適合. 可能會有相容, 或當機之風險較高.