基於Android5.0的Camera Framework原始碼分析 (四) --- 框架總結

易冬發表於2017-05-11

前言

從之前的幾篇文章,可以基本弄清楚 Camera從APK,經過framework的銜接,與HAL層進行互動,最終通過驅動完成Camera的一些動作。

Camera層次分析

  • APP層
  • Framework層
  • HAL層

大致的框架圖如下

基於Android5.0的Camera Framework原始碼分析 (四) --- 框架總結
框架圖

從圖中可以看到幾個關鍵的地方:

  1. APP從JAVA層過渡到CPP層中間通過JNI層的android_hardware_Camera.cpp檔案實現,檔案中主要涉及從java方法到cpp函式的對映關係,方便作出對應的處理;
  2. Camera互動物件,從開始連線過程中式Camera與CameraService,連線之後基本上就是Camera與CameraClient進行互動,這裡注意到CameraClient是繼承CameraService::Client的,而後者則是繼承BnCamera,繼承ICamera,Camera類中存在一個ICamera變數,就是這個內容;
  3. Camera類繼承BnCameraClient,繼承ICameraClient,這樣就可以實現Camera與CameraClient的互動
  4. 至於CameraService與Camera底層庫的互動,只是Camera HAL 層的模組載入是在CameraService中實現的,真正的HAL層的建立是在CameraClient的初始化過程中

內容比較的少,主要是總結前幾篇文章。

相關文章