ComputerKnowledgeandTechnology
电脑知识与技术
第 9 卷第 18 期 (2013 年 06 月)
多媒体技术及其应用
本栏目责任编辑:唐一东
基于 Android 系统的二维码相机系统的构建
黄徐根,崔琳
(宿州学院 信息工程学院,安徽 宿州 234000)
摘要: 在多媒体应用非常普及的今天,很多应用软件需要完成对手机内置相机的调用来实现软件的功能。而近几年快速
发展的二维码使 Android 系统二维码扫描器深受广大用户的青睐。把 Android 下的 Camera 和二维码扫描器相结合进行研
究,研发基于 Android 系统的二维码相机技术,研究内容主要包括相机的调用、二维码生成器的植入、二维码图片的生成。
关键词:Android 系统;相机;二维码扫描器;二维码相机技术
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)18-4311-03
Building of Two-Dimensional Code Camera System Based on Android
HUANG Xu-gen, CUI Lin
(School of Information Engineering, Suzhou University, Suzhou 234000, China)
Abstract: Multimedia applications are very popular today, many application softwares need to complete the call to the mobile
phone's built-in camera to achieve the functions of the software. In recent years, the rapid development of two- dimensional
code has made the scanner of Android system be favored by the majority of users. This paper combined camera of Android with
two-dimensional code scanner to study and develped Android-based two-dimensional code camera technology, research main⁃
ly include the call of the camera, the implantation of the two-dimensional code generator and the generation of two-dimension⁃
al code image.
Key words: Android system; Camera; Two-dimensional code scanner; Two-dimensional code camera technology
Android 是一种以 Linux 为基础的开放源代码操作系统,主要使用于便携设备。Android 的系统架构采用了分层的架构。An⁃
droid系统由应用程序、应用程序框架、系统运行库和 Linux内核这四层结构构成
[1]
。Android 下的Camera 模块和 Android系统一样采
用分层结构,主要分为应用层、HAL 层、Linux驱动层三层,Camera模块功能实现主要在 HAL 层和 Linux驱动层,其中 Linux驱动层又
分为 Camera 控制器驱动和 Camera Sensor 驱动。
1 系统设计
在 Android 系统下,Camera 模块开发的主要工作是把在主机端开发的 Android 关于 Camera 的 HAL 层和 Linux 内核里的 Camera
控制器与 Camera Sensor 驱动编入 Android 文件系统和 Linux 内核,通过 Boot loader 提供的烧写功能把它们存储到开发板的 nand 存
储器上,使开发板能够在运行时正确的使用Camera 设备。
系统主要在应用层实现,所以,Camera 系统架构设计以应用层设计为例。传统 Android 下的 Camera 包含取景器和拍摄照片两
个功能。Android下的Camera 架构主要分为客户端和服务器两个部分,它们建立在Android 的进程间通讯Binder 的结构上
[2]
。
Camera 实现的 JAVA程序在路径 packages/apps/Camera/src/com/android/camera/下,且 frameworks/base/core/java/android/hardware/
Camera.java 是主要实现的文件。主要的头文件在 frameworks/base/include/ui/的目录中
[3]
。Camera.java 通过 frameworks/base/core/jni/
android_hardware_Camera.cpp 调用本地代码,编译成库 libandroid_runtime.so。Camera 底层库在 frameworks/base/libs/ui/的目录中,这
部分的内容被编译成库 libui.so。frameworks/base/camera/libcameraservice/为 Camera 服务器部分,这部分内容会被编译成库 libcam⁃
eraservice.so。具体实现 Camera 功能,还需要一个 Camer 硬件库,这个库将被 Camera 的服务库 libcameraservice.so 调用
[4]
。基于 An⁃
droid系统的二维码相机系统详细设计结构如图 1所示。
2 Android 系统下 Camera 实现
对于一般传统的 Android 下的 Camera,相片生成获取的具体实现主要依靠代码 Camera.java。除去相片的浏览及布局,以相片
收稿日期:2013-05-22
基金项目:宿州学院 2012 年度国家级大学生创新创业训练计划项目(No.201210379004);宿州学院第六届大学生科研项目(No.
KYLXLKYB12-33、No.KYLXLKYB12-31)资助
作者简介:黄徐根(1990-),男,安徽安庆人,主要研究方向为二维码技术;崔琳(1979-) ,女,安徽砀山人,讲师,硕士,主要研究方向
为数据挖掘。
E-mail: eduf@dnzs.net.cn
http://www.dnzs.net.cn
Tel:+86-551-65690963 65690964
ISSN 1009-3044
ComputerKnowledgeand Technology
电脑知识与技术
Vol.9, No.18, June 2013.
4311