http://source.android.com/porting/camera.html

Camera

Android的camera子系统把camera的应用程序与应用程序框架以及用户空间库连接起来,反过来也与操作物理camera的硬件层进行通信。 下图为camera子系统的结构:

构建一个camera库

为了实现一个camera驱动,创建一个动态链接库实现在CameraHardwareInterface.h中定义的camera接口,你必须把你的动态链接库命名为libcamera.so,从而在运行时它会从/system/lib被装载。你还需要把libcamera的源文件以及Android.mk文件放在vendor/acme/chipset_or_board/libcamera/中。

下面的stub Android.mk文件保证了libcamera编译和连接合适的库。

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := libcameraLOCAL_SHARED_LIBRARIES := \    libutils \    librpc \    liblogLOCAL_SRC_FILES += MyCameraHardware.cppLOCAL_CFLAGS +=LOCAL_C_INCLUDES +=LOCAL_STATIC_LIBRARIES += \    libcamera-common \    libclock-rpc \    libcommondefs-rpcinclude $(BUILD_SHARED_LIBRARY)

流程图

预览

下图展示了camera 预览时必须的程序调用以及动作的流程。

照相

下图展示了拍摄照片时时必须的程序调用以及动作的流程。

更多相关文章

  1. Java层Binder使用(ServiceManager)
  2. Android(安卓)NestedScrolling嵌套滑动机制
  3. [Android]Activity生命周期之三大循环|五种状态|七种方法
  4. Android工程直接调用monkey源码进行压力测试
  5. Android(安卓)Service BroadcastReceiver
  6. 一个常见Android崩溃问题的分析
  7. 全面了解Activity
  8. 4.0.x Launcher启动过程
  9. Android开发工具——ADB(Android(安卓)Debug Bridge) HOST端

随机推荐

  1. android loggin
  2. 在Android中加入GOOGLE统计系统
  3. Delphi XE5的Android开发平台搭建
  4. android textview 中超出屏幕宽度的字符
  5. android命令行启动
  6. Android TabHost学习笔记
  7. android启动界面说明
  8. Android Data Binder 的一个bug
  9. Android(安卓)源码编译
  10. Android中使用listview实现qq/微信好友列