![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android-Camera-工作相关
文章平均质量分 89
StoneDemo
这个人很懒,什么也没写哦。
展开
-
Android Camera 流程学习记录(零)—— 碎碎念以及 Android 框架初识
到公司入职了快两个月了。前一个月全是在公共培训,其中有半个月还到某个子公司(手机生产工厂)去实习,体验了生产最前线人民的日常生活……8 月开始才正式分配到软件中心的工位上,然后又开始了新一轮的内部培训,培训的内容大概就是一些 Git 的使用,软件测试那边的一些知识,还有缺陷跟踪系统比如 JIRA 的使用规范等等。这里值得吐槽一下的就是这些操作性的东西居然还要背下来考试……考试完了以后,我们新来的又被原创 2017-08-19 14:35:01 · 2962 阅读 · 4 评论 -
[Android P] CameraAPI1 转 HAL3 预览流程(三) — setPreviewCallbackFlag
总览注意一下,虽然题目主要写的是 setPreviewCallbackFlag,但实际上这对于 Camera 应用,它的动作是调用 API1 的 setPreviewCallbackWithBuffer 和 addCallbackBuffer,这样会把 Preview Callback 的 Buffer 模式设置为手动模式(由 APP 主动带 Callback Buffer 下来,底层数据回来后...原创 2019-09-28 16:00:04 · 2501 阅读 · 0 评论 -
[Android P] CameraAPI1 转 HAL3 预览流程(二) — startPreview
[Android P] CameraAPI1 转 HAL3 预览流程(二) — startPreview文章目录[Android P] CameraAPI1 转 HAL3 预览流程(二) — startPreview总览代码分析startPreview 相关内容Camera2Client::startPreviewCamera2Client::startPreviewLupdatePreview...原创 2019-09-28 15:51:40 · 3708 阅读 · 5 评论 -
[Android P] CameraAPI1 转 HAL3 预览流程(一) — 背景概述
HAL3 强制升级已经有一年左右了,和 HAL3 搭配的 Camera API2 目前已经改用的三方相机应用还并不算多,所以为了更好地 debug 三方相机相关的卡顿问题,我近期花时间专门研究了 Android Framework 层提供的 API1 转 API2 连接 HAL3 的逻辑(以启动预览、预览数据流为例),以便对转换过程有一个总体认识,并且对经常遇到的两个由于 API 逻辑转换导致的卡...原创 2019-09-28 15:41:15 · 3015 阅读 · 0 评论 -
[Android O] HAL3 之 Open Camera2 流程(三,完结)—— 从 HAL Service 到 Camera HAL
打开相机流程中,从 APP 到 CameraService 再到 HAL Service 的连路创建流程都已经简略分析了一遍。现在需要分析最后的阶段,即从 HAL Service 连接到 Camera HAL 的部分。 其实 HAL 层真正的运作流程我也还没真正弄清楚,好在现在只需要分析它的构造与初始化部分,这相对来说还是比较简单的。在 HAL3 中,Camera HAL 的接口转化层(以及...原创 2018-08-16 10:15:46 · 14454 阅读 · 14 评论 -
[Android O] HAL3 之 Open Camera2 流程(二)—— 从 CameraService 到 HAL Service
之前已经分析了从 App 到 CameraService 的连路创建流程,接下来要分析的是从 CameraService 到 HAL Service 的连接过程。由于 Android O 中加入了 Treble 机制,它带来的一个巨大变化就是将原本的 CameraServer 进程分隔成 CameraServer 与 Provider service 两个进程,它们之间通过 HIDL(一个类似...原创 2018-08-14 09:36:12 · 12645 阅读 · 12 评论 -
[Android O] HAL3 之 Open Camera2 流程(一)—— 从 App 到 CameraService
从 Application 连接到 CameraService,这涉及到 Android 架构中的三个层次:App 层,Framework 层,Runtime 层。 其中,App 层直接调用 Framework 层所封装的方法,而 Framework 层需要通过 Binder 远程调用 Runtime 中 CameraService 的函数。这一部分主要的函数调用逻辑如下图所示。 下面...原创 2018-08-09 15:33:57 · 14201 阅读 · 9 评论 -
[Android O] HAL3 之 Open Camera2 流程(零)—— 概览
近期工作上的业务将要从 HAL1 迁移到 HAL3 了,为了早日进入正常业务状态,我得提前把 Camera HAL3 的几个重要流程追踪一遍。按照 HAL1 时候的思路,我打算从 Open Camera,即打开相机的流程开始分析。打开相机的流程就是打通 APP 到相机设备之间的连路的过程,按照 Android 的五层架构从上到下依次打通下行控制路线,并通过部署回调来构建上行的状态、数据路线。 ...原创 2018-08-09 14:48:51 · 9887 阅读 · 12 评论 -
[Android O] Camera 服务启动流程简析
前言去年正式进入框架组的时候,啥也不会,瞎jb分析了一通 Android N 上面的 Camera 相关流程。其实基本上都是跟着别人的分析日志看代码,然后按照自己的理解记了些笔记而已。不过当时感觉受益匪浅,并且后来在项目开发、维护的时候,很多相关的内容都派上了用场。从正式进入项目到现在大概有 10 个月了吧,其中大概有一半时间在 Android N 上填坑,另一半就是填 Android...原创 2018-07-27 17:05:39 · 23398 阅读 · 16 评论 -
Android Camera 流程学习记录(五,完结)—— Camera.takePicture() 流程解析
在前面的几篇笔记中,我已经把 Camera 控制流的部分梳理得比较清楚了。在 Camera 流程中,还有一个重要的部分,即数据流。由于数据流的部分相对来说比较简单,所以我就将其与 Camera 的控制流结合起来,从 takePicture() 方法切入原创 2017-09-08 16:26:40 · 16150 阅读 · 10 评论 -
Android Camera 流程学习记录(一)—— Camera 基本架构
Camera 的架构与 Android 整体架构是保持一致的:原创 2017-08-21 15:32:44 · 7712 阅读 · 7 评论 -
Android Camera 流程学习记录(二)—— Camera Open 调用流程
简介这一章里,我们将 Camera.java 中的 open() 方法作为切入点。作为打开摄像头的方法,无论哪种 Camera 应用都需要调用到它。原创 2017-08-23 18:34:06 · 9881 阅读 · 2 评论 -
Android Camera 流程学习记录(四)—— Camera.startPreview() flow
通过整理前几篇笔记,我已经对整个 Camera 的框架有比较清晰的认识,并且也已经渐渐摸清楚了整个控制流的逻辑。这次,我打算通过追踪 Camera.startPreview() 方法,以加深对控制流的理解。同时尝试结合上一篇关于 module 的认识,将这个流程走到尽可能底部的位置。原创 2017-09-06 10:24:59 · 5792 阅读 · 10 评论 -
Android Camera 流程学习记录(三)—— Camera hw_get_module() 相关逻辑
这一篇笔记,我们将从 hw_get_module() 函数入手,去探究 Libraries 层是如何调用 HAL 层的库中的函数的。CameraService 是在开机时就会启动的,而当它第一次启动时,就会调用一个名为 onFirstRef() 的成员函数,我们所要探究的内容就是从这里开始的。原创 2017-08-28 10:25:46 · 3152 阅读 · 3 评论 -
[Android P] CameraAPI1 转 HAL3 预览流程(四) — Preview Data
总览预览打开完毕后,就进入了持续预览阶段。Camera API2 架构下,采用一个 Request 对应一个 Result 的规范,所以在预览期间是需要持续下 Request 来获取预览数据的,而仍然采用 API1 相机应用在 Framework 中也会被转换成这样的形式。其中,与 Request 密切相关的一个线程是 Camera3Device::RequestThread,它负责持续下预...原创 2019-09-28 16:06:29 · 3548 阅读 · 0 评论