林丽速
摘 要:基于Android系统的智能手机已得到了广泛的应用,本文进行对基于Android平台的Camera系统核心架构进行研究与设计。文中基于笔者的实践经验,详细分析了基于Android平台的Camera系统功能,阐述了Camera系统的核心架构,并给出了Android Camera实现具体功能的设计方案。该Camera不仅拥有的高清晰拍照功能,且控制键更健全,为开发和设计Camera系统提供了参考。
关键词:Android;Camera;取景器;服务器
中图分类号:TP391.41
Android系统是谷歌公司研究推广的新一代移动互联网操作系统,该系统由操作系统、中间件、用户界面和应用软件组成,已经在智能终端领域得到了广泛的应用,尤其是智能手机应用领域,Android系统已经在智能手机领域得到了广泛的开发和设计[1]。人们在使用智能手机、ipad等移动智能设备过程中,可以使用Camera系统进行拍照,将照片保存在智能终端硬盘中,也可以发布到网络上,以便与朋友分享。因此,基于Android平台的Camera系统已经成为了许多学者研究的热点,得到了长足的进步。
1 基于Android平台的Camera功能分析
目前,基于Android平台的Camera系统主要包括取景器(viewfinder)和拍摄照片两种关键的功能,已经发布的基于Android平台的Camera程序实现的功能虽然较为简单,但是其程序架构分别包括两个关键组成部分,分别是客户端(Client)和服务器(Server),是非常完整的,能够有效确保通信系统的正常运行[2]。Camera系统架构实现进程之间的通信是依赖于Binder结构的,具体描述如下:当基于Android平台的Camera系统工作运行的时候,可以将工作程序分成两个关键组成部分,分别是客户端(Client)和服务器(Server),两者之间的通信可以使用Binder机制实现,客户端调用接口服务程序,具体的执行功能则在服务器中实现,具体的进程之间的通信对于客户端来讲是不可见的[3]。
2 Camera系统核心架构分析
目前,基于Android平台的Camera系统核心架构主要分为四个层次,分别是应用层、应用框架层、库层和内核层。
2.1 应用层
应用层是指应用程序直面客户的层次,应用程序可以采用Android系统提供的API进行编程实现,通常采用Java语言进行编程,使用各种源文件,将Java源文件程序和资源文件集成在一起,通过编译生成一个完整的APK包。Camera系统在应用层上表现为一个APK包,APK包在拍照功能实现过程中调用了应用框架层中的API函数,能够实现拍照等逻辑业务功能和UI显示,该功能的实现文件命名为Camera.java,该文件关联的类是android.hardware.Camera。
2.2 应用框架层
应用框架层能够为应用软件开发者提供许多的API,是一个应用程序实现的基本框架。在框架内部,程序员可以获取UI界面需要的各种控件,比如使用网格和列表等,都采用必要的接口,提供给外部用户。Camera系统可以通过应用框架层将应用和底层硬件实现逻辑隔离开,基于Android定义实现一套上下通信的接口,能够有效地加强应用层、底层硬件的开发和移植。在应用框架层,应用层可以通过android.hardware.Camera种类调用软件服务功能,同时可以使用CameraHardwareInterface.h头文件中包含的硬件服务接口为下层提供调用服务的功能。
2.3 库层
对于嵌入式软件系统来讲,库层是一个非常重要的中间层,也是Android应用层与实际硬件层进行通信传输的接口,其可以将硬件的行为与功能封装起来,通过接口提供给应用框架层,以便能够进行通信。在Camera系統中,库层实际上就是硬件抽象层,用户空间的驱动程序代码就在库层实现。库层的上级层次为应用框架层,其为Camera硬件抽象层提供了包括虚函数的类,作为一个接口进行调用服务。
2.4 内核层
内核层又被称为操作系统层,内核层与硬件直接关联,主要能够为应用程序、硬件设备提供逻辑驱动程序,以便能够启动硬件。为了更好地服务移动终端系统,在Linux内核上进行很大的改进和优化。在基于Android平台的Camera系统中,其通常采用具体的驱动规范,可以将Camera基本物理功能提供给硬件抽象层,供其进行调用。Camera系统的主要功能包含了图像视频数据的采集、转换图像的格式、缩放图像和传输数据
3 具体功能实现设计
针对以上的分析来设计Android Camera的实现方案,图1给出了preview和拍照时的数据流设计方案,图2给出了视频录制时数据流设计方案。数据都是从java层送到Camera Service,并在HAL层准备好组件,最后送到Driver层解析。Preview与拍照时的数据流类似,视频录制时则需要考虑缓存数据。图中Preview data、Capture Image data、Recoding data指出了数据从上层到下层的流向。
由图1和图2给出的Android Camera的设计方案设计出的Camera不仅拥有的高清晰拍照功能,且控制键更健全,为开发和设计Camera系统提供了参考。
4 结束语
本文分析了基于Android平台的Camera系统能够实现取景、拍照、保存和上传等核心功能的实现技术,同时总结了Camera系统通常采用的核心架构,并给出了具体功能实现的设计方案,以便为系统设计和开发做出贡献。
参考文献:
[1]胡江楠,刘高平.Android中Camera类库分析及其典型应用[J].浙江万里学院学报,2014(01):11-12.
[2]胡伟.Android系统架构及其驱动研究[J].广州广播电视大学学报,2010(04):96-101.
[3]张仕成.基于Google Android平台的应用程序开发与研究[J].电脑知识与技术,2009(28):24-25.
作者单位:福州大学物理与信息工程学院,福州 350108