編輯:關於Android編程
本文基於Android 4.2.2+Linux3.6.9+SAMA5D3 SoC從源代碼的角度審視Android Camera子系統。
應用層
Androd原生Camera應用
/system/app/LegacyCamera.apk
http://androidxref.com/4.2.2_r1/xref/packages/apps/LegacyCamera/
Camera應用調用Android應用框架提供的Camera API
import android.hardware.Camera;
import android.hardware.Camera.Area;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Face;
import android.hardware.Camera.FaceDetectionListener;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.Size;
應用框架層
/system/framework/framework.jar
http://androidxref.com/4.2.2_r1/xref/frameworks/base/core/java/android/hardware/Camera.java
JNI
/system/lib/libandroid_runtime.so
http://androidxref.com/4.2.2_r1/xref/frameworks/base/core/jni/android_hardware_Camera.cpp
Camera Service Binder Proxy
Camera Service Binder Proxy是Camera Client和Camera Service之間通信的統一通道。Camera Client和Camera Service都會調用Camera Service Binder Proxy。
/system/lib/libcamera_client.so
頭文件目錄
http://androidxref.com/4.2.2_r1/xref/frameworks/av/include/camera/
源文件目錄
http://androidxref.com/4.2.2_r1/xref/frameworks/av/camera/
Camera Service
Camera Service與Camera HAL交互,通過Binder Service的方式為Camera Client提供服務。
/system/lib/libcameraservice.so
http://androidxref.com/4.2.2_r1/xref/frameworks/av/services/camera/libcameraservice/
HAL
Camera硬件抽象層定義並實現供Camera Service調用的標准接口,保證Camera硬件的功能能夠正常發揮。
/system/lib/hw/camera.sama5d3-ek.so
頭文件
http://androidxref.com/4.2.2_r1/xref/hardware/libhardware/include/hardware/camera.h
源文件目錄
https://github.com/Android4SAM/platform_hardware_atmel/tree/master/sama5d3/camera
Kernel Driver
Camera驅動程序與Camera硬件和HAL交互。Camera硬件和驅動程序必須支持YV12和NV21圖像格式以支持預覽和錄像。
The V4L2driver for Atmel Linux
https://github.com/Android4SAM/linux-at91/blob/android4sam_v4.0/drivers/media/video/atmel-isi.c
SoC Cameradriver for Omni Vision 2640 sensor
https://github.com/Android4SAM/linux-at91/blob/android4sam_v4.0/drivers/media/video/ov2640.c
本文實例講述了Android新建Activity的方法。分享給大家供大家參考,具體如下:在一個Android工程中,如何新建一個Activity?方法如下:一、新建一個類
在eclipse中file菜單中選中new--->Android Application Program-->Next --&
本文結合之前的動態創建fragment來進行一個實踐,來實現用Fragment創建一個選項卡項目布局<LinearLayout xmlns:android=http
新的權限獲取方式除了要求像之前版本一樣在AndroidManifest文件中靜態申請之外,應用還需根據需要請求權限,方式采用向用戶顯示一個請求權限的對話框。這些被動態申