Android Camera 架构简析1

1. 前言

最近整体看了一下Android Camera 部分代码,从FrameworkCamera 应用框架到 HardwareCamera HAL 再到 Kernel Camera Driver。把对Camera部分的学习整理成笔记,方便理解。

2. 概述

要了解Android Camera架构,还是得先从Android本身的架构说起。

1. Android 架构图

Android框架看,分为四层:应用层、应用框架层、库层、内核层。

应用层主要工作在Android SDK之上,利用Android 提供的API进行开发,生成APK包。

应用框架层整合了Android自带各种控件和类,为应用开发提供高效、方便的API接口。这个对上实现统一的接口,对下也提供统一的标准方便各种库的移入。

库层是Android与底层硬件通信接口,它封装底层硬件接口实现该模块的具体逻辑,并以服务的形式通过Binder通讯机制暴露给应用框架。

内核层则是直接与硬件联系的一层,可以理解为设备驱动。

通过对上面框架的简要说明,我们大致明白一个应用自上而下的各个层起什么作用,这样有助于我们对代码的理解和修改。如果要做基于Android porting工作,就要明白在哪个层次的porting,怎么porting

3. Camera层次简析

说完Android整体框架,我们以Camera为例来说明一下Camera在各层是如何实现。下图是Camera部分在Android上各层的分布图

2. Camera结构分布图

l 应用层

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" /> 

(未完待续)

st1\:*{behavior:url(#ieooui) } st1\:*{behavior:url(#ieooui) }

本文出自 “rnmichelle” 博客,请务必保留此出处http://rnmichelle.blog.51cto.com/2729211/491743

更多 1

发表评论

更多相关文章

  1. android中fragment与activity之间通信
  2. 【Android】用retrofit2和rxjava2搭建网络请求框架
  3. Android中list集合的排序方法
  4. Android(安卓)WIFI框架分析(2)
  5. Android数据库ContentProvider封装原理
  6. go 1.4支持Android的说明(译文)
  7. binder实例分析
  8. 最简单的android studio调用ffmpeg动态库
  9. Android本地APP集成Mui框架

随机推荐

  1. Android String Placeholders
  2. Android退出程序(三)——Android事件总线
  3. usb 配置
  4. Android 系統存在設計漏洞,釣魚網站隨時出
  5. ListView 取消点击效果
  6. 【Android的从零单排开发日记】之入门篇(
  7. android 基础知识整理 1
  8. 详解Android 触摸事件处理和传递过程的来
  9. android 访问SD卡的方法
  10. Android(安卓)API demos 阅读笔记 4