技术开发 频道

Android的Camera架构介绍

     【IT168 技术文档】

    第一部分 Camera概述
  Android
Camera包含取景器(viewfinder)和拍摄照片的功能。目前Android发布版的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的进程间通讯Binder的结构上。

    以开源Android为例Camera的代码主要在以下的目录中:

CameraJAVA程序的路径:
packages/apps/Camera/src/com/android/camera/
在其中Camera.java是主要实现的文件

frameworks/base/core/java/android/hardware/Camera.java
这个类是和JNI中定义的类是一个,有些方法通过JNI的方式调用本地代码得到,有些方法自己实现。


CameraJAVA本地调用部分(JNI):
frameworks/base/core/jni/android_hardware_Camera.cpp

这部分内容编译成为目标是libandroid_runtime.so

主要的头文件在以下的目录中:
frameworks/base/include/ui/

Camera底层库在以下的目录中:
frameworks/base/libs/ui/
这部分的内容被编译成库libui.so

Camera服务部分:
frameworks/base/camera/libcameraservice/
这部分内容被编译成库libcameraservice.so


    为了实现一个具体功能的Camera,在最底层还需要一个硬件相关的Camer库(例如通过调用video for linux驱动程序和Jpeg编码程序实现)。这个库将被Camera的服务库libcameraservice.so调用。

0
相关文章