文章目录

  • 前言
  • 相机架构的发展
  • 相机方案的发展
  • hal的小结
  • 其他

前言

相机这里和后面都讲的是Android相机哈,后面不在赘述!

相机架构的发展

Android相机版本更迭主要表现为
1.相机子系统框架:
ap层以及fw层:Camera API版本更新(Camera API1 -> Camera API2)
hal层:Camera HAL版本更新(HAL1 -> HAL2 -> HAL3), 并且 8.0 新增了HIDL调用
drv层:增加更多的功能并且丰富相机算法

2.相机软件UI的变更,这边不关注Android 9前面的UI,Android9,10为一个UI版本,Android11,12的UI为一个版本,UI的更新可以发现与各大厂商的更新基本一致,这个更新可以参考谷歌相机。

特别注意:谷歌相机和Android原生相机不是一样的,前者是谷歌手机一大卖点,不开源的哈,内地厂家会为了秀自家的技术会更新相机软件的功能,性能,效果等。

相机方案的发展

相机应用camera1 一般对应着api1,camera2对应api2,发展过程中由于各家厂家支持力度可能出现下面各种现象
1.API1 调用 HAL1
2.API1 调用 HAL3
3.API2 调用 HAL1
4.API2 调用 HAL3

1是camera刚开始最主流的使用方案,2,3是在兼容hal3过程的发展方案
4是目前的主流方案

hal的小结

相机hal的官方解释:
https://source.android.google.cn/devices/camera/camera3
这边小结了下:

Camera HAL1
相机子系统的第 1 个版本被设计为三种运行模式的黑盒子,三种模式具有略有不同又相互重叠的功能。这样就难以实现介于其中两种运行模式之间的新功能,例如连拍模式。

Camera HAL3
大幅提高应用对于 Android 设备上的相机子系统的控制能力,版本 3 相机子系统将多个运行模式整合为一个统一的视图,您可以使用这种视图实现之前的任何模式以及一些其他模式,例如连拍模式,并且这种简化的视图还能够使应用开发者更轻松地使用相机的各种功能。

其他

由于每个厂家的hal层,底层驱动和算法实现大不相同,但也规范于Android原生设计,相机是真的有趣!

浅谈Android相机演变相关推荐

  1. 浅谈Android引用计数(2)

    在浅谈Android引用计数(1)中讲了LightRefBase实现对象计数管理的原理,这篇文章将要分析重量级的引用基类:RefBase的实现和它的作用. 下面是RefBase和相关类的类图: 图中可 ...

  2. 浅谈Android保护技术__代码混淆

    浅谈Android保护技术__代码混淆 浅谈Android保护技术__代码混淆 代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读 ...

  3. android fps 垂直同步,浅谈Android流畅度

    原标题:浅谈Android流畅度 哈哈 讲个故事 白 1 流畅度 关于流畅度谷歌官方给出的解释为:running at a consistent 60 frames per second, witho ...

  4. 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

    原文地址: http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service Manager成为Android进程间 ...

  5. android分屏模式_浅谈 Android 7.0 多窗口分屏模式的实现

    从 Android 7.0 开始,Google 推出了一个名为"多窗口模式"的新功能,也就是我们常说的"分屏模式".那么,这个功能有什么用呢?作为开发者,我们又 ...

  6. 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解

    浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解 本篇文章小编为大家介绍,Android onTouchEvent 与 onInterceptTo ...

  7. android 存储空间监控,浅谈 Android 内存监控(中)

    前言 在上篇 浅谈 Android 内存监控(上) 中,我们聊了 LeakCanary,微信的 Matirx 和美团的 Probe,它们各自有不同的应用场景,例如,在开发测试环境,我们会偏向用 Lea ...

  8. 《浅谈-Android系统越用反应越慢的问题》

    <浅谈-Android系统越用反应越慢的问题> android应用程序和iphone应用程序不一样,用过iphone的都知道,点击图标进入程序后,如果还想用其他程序,必须先按返回退出然后进 ...

  9. android获取存储设备根目录,浅谈android获取存储目录(路径)的几种方式和注意事项...

    通常, 我们创建文件/目录, 或者存储图片什么的, 我们都需要拿到手机的存储路径, 现在我们就来看一下获取手机存储路径的几种方式(作为工具类方法调用即可): 第一种: 获取 /storage/emul ...

最新文章

  1. 分享9个最棒的代码片段资源网站
  2. AICompiler编译器介绍及访存密集算子优化
  3. Spring 注入集合的成员变量属性
  4. java线程的小问题与回答
  5. 去西藏旅游一次要花多少钱,还有8/9月份去那边适合嘛?
  6. 图解CSS3----3-目标伪类选择器
  7. 基于UP30飞控系统的无人机地面站航线规划方法
  8. 小菜的Scala学习笔记,主要部分更新完成
  9. 双十一大促淘宝主图设置优化方法
  10. 【解决方案】连锁店巡店难?开发成本高?TSINGSEE青犀视频打造一站式连锁店视频上云/安防监控/AI智能分析解决方案
  11. Qt笔记(十五)之设置程序图标
  12. SpringCloud(三 Eureka集群配置)
  13. JTextField:单行文本框组件
  14. 成都、九寨、黄龙、都江堰之成都
  15. 移动机器人设计与实践-基础概念汇总
  16. 对程序员而言,有什么终身受用的底层知识?
  17. 手机端也能免费转换CAD图纸啦!
  18. 微信小程序:多功能起名查重工具
  19. CMPedometer 计步器的使用—— 基于API分析
  20. 月薪从11k到44k,一个普通程序员的三年涨薪之路...

热门文章

  1. 小白学JS,利用JavaScripty验证通过15位和18位身份证验证性别
  2. 使用jsp+servlet来实现增加和删除功能
  3. 30多年前,日本是如何输掉芯片战争的?
  4. 可能是最全的:虚拟机使用失败解决方案汇总
  5. course83_lab2_8086的寻址方式
  6. webService序列化xml 以及去掉删除string xmlns =“http://tempuri.org/”
  7. adb 禁止app联网_ADB大法好!无需ROOT也可以使用APP Ops来管理手机应用权限
  8. 上海博物馆——古代的邂逅
  9. webstorm安装eslint插件_在WebStorm中使用ESLint开发Vue项目 | 六阿哥博客
  10. Asp.Net之分页查询