Android-Camera-架构及应用简析(补汉6个汉字字).pdfVIP

Android-Camera-架构及应用简析(补汉6个汉字字).pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android Camera 架构及应用简析 1. 前言 整体看一下Android Camera 部分的代码,从APP 层的Camera 到Framework 的 Camera 应用框架,再到 Hardware 的Camera HAL ,再到 Kernel 的 Camera Driver。 2. 架构概述 要了解Android Camera 架构,还是得先从Android 本身的架构说起。 图1 Android 架构图 从Android 框架看,分为四层:应用层、应用框架层、库层、内核层。 应用层主要工作在Android SDK 之上,利用Android 提供的API 进行开发,生成 APK 包。 应用框架层整合了Android 自带各种控件和类,为应用开发提供高效、方便的API 接 口。这个对上实现统一的接口,对下也提供统一的标准方便各种库的移入。 库层是Android 与底层硬件通信接口,它封装底层硬件接口实现该模块的具体逻辑, 并以服务的形式通过Binder 通讯机制暴露给应用框架。 内核层则是直接与硬件联系的一层,可以理解为设备驱动。 3. Camera 层次简析 说完Android 整体框架,我们以Camera 为例来说明一下Camera 在各层是如何实现。 下图是Camera 部分在Android 上各层的分布图 图2 Camera 结构分布图 ➢ 3.1 应用层 Camera 的应用层在Android 上表现为直接调用SDK API 开发的一个Camera 应用 APK 包。代码在\android\packages\apps\Camera 下。主要是Java 写的基于 android.hardware.Camera 类调用的封装,并且实现Camera 应用的业务逻辑和UI 显 示。android.hardware.Camera 就是Android 提供给上层调用的Camera 类。这个类 用来连接或断开一个Camera 服务,设置拍摄参数,开始、停止预览,拍照等。它也是 Android Camera 应用框架封装暴露出来的接口。一个Android 应用中若要使用这个类, 需要在Manifest 文件声明Camera 的权限,另外还需要添加一些uses-feature元素 来声明应用中的Camera 特性,如自动对焦等。具体做法可如下: uses-permission android:name=android.permission.CAMERA / uses-feature android:name=android.hardware.camera / uses-feature android:name=android.hardware.camera.autofocus / ➢ 3.2 应用框架层 Camera 框架层将应用与底层的实现隔离开来,实现了一套Android 定义的对上对下 接口规范,方便应用及底层硬件的开发和移植。这一层对上以Java 类的形式包装出 android.hardware.Camera ,提供给应用层调用;对下在 CameraHardwareInterface.h 头文件中定义了Camera 硬件抽象层的接口,这是一个 包含纯虚函数的类,必须被实现类继承才能使用。这个实现类也即是下层中将讲到的用户库 层,它继承CameraHardwareInterface 接口,实例化对底层硬件驱动的封装,最终生成 libcamera.so 供框架的libcameraservice.so 调用。这样做的好处是让Camera 的应用 框架代码独立,不受底层硬件驱动改变的影响,方便在不同平台上porting 驱动代码,而 保持上层的代码不用变化。 从代码上看,这一层包含Java 到JNI 到C++的代码。 \android\frameworks\base\core\java\android\hardware\Camera.java 这个类作为Android SDK Camera 部分提供给上层应用,并通过JNI 的方式调用本地 C++代码。 \android\frameworks\base\core\jni\android_hardware_Camera.cpp Camera 的JAVA 本地调用部分,是承接JAVA 代码到C++代码的桥梁。编译生成 libandroid_runtime.so

文档评论(0)

文档终结者 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档