欢迎来到天天文库
浏览记录
ID:37239265
大小:436.00 KB
页数:14页
时间:2019-05-20
《Android Camera框架》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Android的Camera架构介绍1.1Camera概述 Android的Camera包含取景器(viewfinder)和拍摄照片的功能。目前Android发布版的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的进程间通讯Binder的结构上。 以开源的Android为例,Camera的代码主要在以下的目录中: Camera的JAVA程序的路径: packages/apps/Camera/src/com/android/camera/ 在其中Camera.java是主要实现的文件 frameworks/bas
2、e/core/java/android/hardware/Camera.java 这个类是和JNI中定义的类是一个,有些方法通过JNI的方式调用本地代码得到,有些方法自己实现。 Camera的JAVA本地调用部分(JNI): frameworks/base/core/jni/android_hardware_Camera.cpp 这部分内容编译成为目标是libandroid_runtime.so。 主要的头文件在以下的目录中: frameworks/base/include/ui/ Camera底层库在以下的目录中: frameworks/base/libs/ui
3、/ 这部分的内容被编译成库libui.so。 Camera服务部分: frameworks/base/camera/libcameraservice/ 这部分内容被编译成库libcameraservice.so。 为了实现一个具体功能的Camera,在最底层还需要一个硬件相关的Camer库(例如通过调用videoforlinux驱动程序和Jpeg编码程序实现)。这个库将被Camera的服务库libcameraservice.so调用。1.2Camera的接口与架构Android的Camera架构介绍1.1Camera概述 Android的Camera包含取景器(v
4、iewfinder)和拍摄照片的功能。目前Android发布版的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的进程间通讯Binder的结构上。 以开源的Android为例,Camera的代码主要在以下的目录中: Camera的JAVA程序的路径: packages/apps/Camera/src/com/android/camera/ 在其中Camera.java是主要实现的文件 frameworks/base/core/java/android/hardware/Camera.java 这个类是和JNI中定
5、义的类是一个,有些方法通过JNI的方式调用本地代码得到,有些方法自己实现。 Camera的JAVA本地调用部分(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
6、/camera/libcameraservice/ 这部分内容被编译成库libcameraservice.so。 为了实现一个具体功能的Camera,在最底层还需要一个硬件相关的Camer库(例如通过调用videoforlinux驱动程序和Jpeg编码程序实现)。这个库将被Camera的服务库libcameraservice.so调用。1.2Camera的接口与架构Camera的整体框架图Camera的各个库之间的结构可以用下图的表示: 在Camera系统的各个库中,libui.so位于核心的位置,它对上层的提供的接口主要是Camera类,类libandroid_
7、runtime.so通过调用Camera类提供对JAVA的接口,并且实现了android.hardware.camera类。 libcameraservice.so是Camera的服务器程序,它通过继承libui.so的类实现服务器的功能,并且与libui.so中的另外一部分内容则通过进程间通讯(即Binder机制)的方式进行通讯。 libandroid_runtime.so和libui.so两个库是公用的,其中除了Camera还有其他方面的功能。 Camera部分的头文件在frameworks/base/inclu
此文档下载收益归作者所有