- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android的Camera架构介绍?Android 的 Camera 包含取景器(viewfinder)和拍摄照片的功能。目前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中定义的类是一个,有些方法通过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/camera/libcameraservice/ ?这部分内容被编译成库libcameraservice.so。?? ? ?为了实现一个具体功能的Camera,在最底层还需要一个硬件相关的Camer库(例如通过调用video for linux驱动程序和Jpeg编码程序实现)。这个库将被Camera的服务库libcameraservice.so调用。Camera的接口与架构Camera的整体框架图Camera的各个库之间的结构可以用下图的表示:? ? 在Camera系统的各个库中,libui.so位于核心的位置,它对上层的提供的接口主要是Camera类,类libandroid_runtime.so通过调用Camera类提供对JAVA的接口,并且实现了android.hardware.camera类。? ? ?libcameraservice.so是Camera的服务器程序,它通过继承libui.so的类实现服务器的功能,并且与libui.so中的另外一部分内容则通过进程间通讯(即Binder机制)的方式进行通讯。?libandroid_runtime.so和libui.so两个库是公用的,其中除了Camera还有其他方面的功能。?? ? ?Camera部分的头文件在frameworks/base/include/ui/目录中,这个目录是和libmedia.so库源文件的目录frameworks/base/libs/ui/相对应的。?? ? ?Camera主要的头文件有以下几个:?? ? ? ? ? ? ICameraClient.h? ? ? ? ? ? ?Camera.h ?? ? ? ? ? ? ICamera.h? ? ? ? ? ? ?ICameraService.h? ? ? ? ? ? ?CameraHardwareInterface.h??在这些头文件Camera.h提供了对上层的接口,而其他的几个头文件都是提供一些接口类(即包含了纯虚函数的类),这些接口类必须被实现类继承才能够使用。?整个Camera在运行的时候,可以大致上分成Client和Server两个部分,它们分别在两个进程中运行,它们之间使用Binder机制实现进程间通讯。这样在客户端调用接口,功能则在服务器中实现,但是在客户端中调用就好像直接调用服务器中的功能,进程间通讯的部分对上层程序不可见。?从框架结构上来看,ICameraService.h、ICameraClient.h和ICamera.h三个类定义了的接口和架构,ICameraService.cpp和Camera.cpp两个文件用于Camera架构的实现,Camera的具体功能在下层调用硬件相关的接口来实现。从Camera的整体结构上,类Camera是整个系统核心,ICamera类提供了Camera主要功能的接口,在客户端方面调用,CameraService是Camera服务,它通过调用实际的Camera硬件接口来实现功能。事实上,图中红色虚线框的部分都是Camera程序的框架部分,它主要利用了Android的系统的Binder机制来完成通讯。蓝色的部分通过调用Camer
您可能关注的文档
- 006-Linux服务器的配置.doc
- 06-服务器状态监控.doc
- 8盘位威联通企业存储TS-CN859 Pro拆解.doc
- 08上半年下午.doc
- 10g上做透明网关访问sql2000.doc
- 10年8月11日 标书1.doc
- 10月月考TM107Server 2003.doc
- 011-Samba服务器的配置.doc
- 11年《网络操作系统》网络实验教学进度表.doc
- 11月全球Web服务器: Microsoft和Nginx份额上涨.doc
- apache2.2.8+mysql5.0.51+php5.2.5+snmp5.14(详细说明)+rrdtool+cacti 配置.doc
- Apache2.2+Tomcat5.5负载均衡+集群forAS4&Solaris.doc
- apache2整合weblogic虚拟主机下的ssl配置.doc
- apache 2压缩功能的启用和配置,并发配置.doc
- Apache for windows虚拟主机配置方案.doc
- apache James使用入门.doc
- Apache Tomcat7.0.23管理初始密码设置.doc
- Apache Tomcat 部署 Web service.doc
- apache 安装及配置-new.doc
- Apache_Tomcat_7配置.doc
最近下载
- 俄国构成主义设计运动报告.ppt VIP
- 2025南方电网保山供电局项目制用工招聘(3人)笔试参考题库附答案解析.docx VIP
- 2025年广东省中学生天文知识竞赛试题(及答案).docx VIP
- 电镀基础知识100问.pdf VIP
- 党课:9.3纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵PPT课件.pptx VIP
- 高中数学--等差数列知识点归纳和习题检测.doc VIP
- 云南省2025年中考英语真题含答案.pptx VIP
- SW硅墨烯免拆模外墙保温系统工程作业指导书.docx VIP
- 2025-2026学年粤教花城版(2024)初中音乐七年级上册教学计划及进度表.docx
- 2025杭州电力设备制造有限公司招聘70人(第二批)笔试备考试题及答案解析.docx VIP
文档评论(0)