技术沉思录

技术沉思录

(Unity) -- [Android] -- [Performance] -- [Interview]

OpenGL教程

OpenGL的概念,相信大家都听说过,应用场景非常广泛,音视频、图形渲染、游戏等等。学习OpenGL是有一定的门槛,期间也看过很多其他OpenGL教程,有些写的是非常不错的,例如LearnOpenGL,能够系统性的学习OpenGL概念和应用。本系列教程,主要会从Android OpenGL ES入手,系统性的介绍图形学渲染技术,结合音视频进行相关应用,并分析两个教科书级别的项目,更加巩固OpenGL技术。

Android Camera-系列文章

最近比较忙,文章也很久没有更新了。
最近项目中用到Camera,做了一些功能,发现Camera涉及到很多内容,可以做成一个系列来分析。随着5G时代的到来,音视频相关的内容,会越来越流行,而Camera应该算是最基础的设施了,所以接下来会对Camera这块进行分析,通过下面这些文章,可以对Camera有个更深入的理解。

Android知识体系

建立一套比较完整的 Android 知识体系,对Android开发或者面试都有裨益,以及后面对某个垂直领域的深入,或者成为该领域的技术专家,甚至是架构师,也有一定的路线指导作用。
夯实基础是重中之重,深入某个垂直领域,都是根据当前的业务需求,一步步深入,从而成为该领域专家。
下面列表的内容,都是经过实例验证,做到真正掌握才会写到自己的博客里。比较完整的提纲是在最后的思维导图中,提纲中的内容,如果经过了自己验证,就会更新到博客里(持续更新)。

OpenGLES 3.0 - 简介和基础绘制流程

简介

OpenGL

pPK8x4P.jpg
OpenGL(Open Graphics Library,开放图形库),是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口规范。
它本身并不是一个API,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。它的实现由显示设备厂商提供,并且非常依赖该厂商提供的硬件。
当你使用Apple系统的时候,OpenGL库是由Apple维护的。在Windows上,OpenGL库可能是Direct3D接口的一个封装(Wrapper)。表面上调用OpenGL接口,实际上是间接调用了Direct3D接口。

Android Camera-相机尺寸、方向和图像数据

前面几篇文章介绍了Camera1,Camera2,CameraView和CameraX的使用,对各个API的使用,应该问题不大,不过在真正开发过程中,也会遇到各种不同的问题,本篇文章继续介绍相机开发过程中遇到的问题,主要是相机预览、拍照尺寸,方向,以及图像数据的处理。

Android Camera-Camera2使用

上篇文章介绍了Camera1的使用,本篇介绍Camera2的使用。
Camera2(android.hardware.camera2)是从 Android 5.0 L 版本开始引入的,并且废弃了旧的相机框架Camera1(android.hardware.Camera)。
相比于Camera1,Camera2架构上也发生了变化,API上的使用难度也增加了。Camera2将相机设备模拟成一个管道,它按顺序处理每一帧的请求并返回请求结果给客户端。

Android Camera-Camera1使用

Android Camera API和Android版本一样,也是碎片化比较严重,所以Google官方推出了CameraView,提供给开发者参考和学习,现在最新的可以使用Jetpack CameraX来开发,大大简化了开发的复杂度。本系列从Camera1->Camera2->CameraView->CameraX,一步步讲解Camera的进化过程,本篇先介绍Camera1的使用。