WolfcsTech


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 公益 404

从工作中得到了什么?

发表于 2017-08-12 | 分类于 程序人生 | | 阅读次数:

记得去年来网易面试的时候,跟 HR 聊,当时我说,我觉得从工作中最主要获得两种乐趣,一种是创造的乐趣,另一种是探索的乐趣。所谓创造的乐趣,是指将一件东西,从无到有的创造出来;而探索的乐趣,则是不断的获得新的知识和认识,不断地了解、知道曾经不了解不知道的东西,拓展自己认知的边界,甚至是拓展全人类,认知和认识的边界。

如果利用的好,同事大概可以像自己的手,像自己的脑,延伸了自己所能创造的东西的规模,拓展了自己的认识的边界。

会话描述协议

发表于 2017-08-03 | 分类于 网络协议 | | 阅读次数:

会话描述协议 (SDP) 是一种描述流媒体通信参数的格式。最初的规范是 IETF 以 IETF 建议标准 的形式于 1998 年四月发布的,后来于2006 年七月发布了一个修订版规范,为 IETF 建议标准 RFC 4566 。

SDP旨在描述用于会话通知、会话邀请和参数协商目的的多媒体通信会话。SDP 自身不传送任何媒体,但它被用于端点之间的媒体类型,格式和所有相关属性的协商。属性和参数的集合经常被称作 会话规范。

阅读全文 »

游戏循环

发表于 2017-07-23 | 分类于 Android 图形系统 | | 阅读次数:

实现一个游戏的一种非常流行的方式看起来像这样:

1
2
3
4
5
while (playing) {
advance state by one frame
render the new frame
sleep until it’s time to do the next frame
}
阅读全文 »

TextureView

发表于 2017-07-22 | 分类于 Android 图形系统 | | 阅读次数:

TextureView 类是在 Android 4.0 中引入的,且是这里讨论的最复杂的 View 对象,它结合了 View 和 SurfaceTexture。

阅读全文 »

SurfaceTexture

发表于 2017-07-22 | 分类于 Android 图形系统 | | 阅读次数:

SurfaceTexture 类是在 Android 3.0 中引入的。就像 SurfaceView 是 Surface 和 View 的结合一样,SurfaceTexture 是 Surface 和 GLES texture 的粗糙结合(有几个警告)。

当你创建了一个 SurfaceTexture,你就创建了你的应用作为消费者的 BufferQueue。当一个新的缓冲区由生产者入对时,你的应用将通过回调 (onFrameAvailable()) 被通知。你的应用调用 updateTexImage(),这将释放之前持有的缓冲区,并从队列中获取新的缓冲区,执行一些 EGL 调用以使缓冲区可作为一个外部 texture 由 GLES 使用。

阅读全文 »

SurfaceView 和 GLSurfaceView

发表于 2017-07-22 | 分类于 Android 图形系统 | | 阅读次数:

Android 应用框架 UI 是基于一个从 View 开始的对象层次体系的。所有的 UI 元素经历一个复杂的测量和布局过程来将它们适配入一个矩形区域,所有可见的 View 对象被渲染进一个 SurfaceFlinger 创建的 Surface,而后者由 WindowManager 在应用程序回到前台时建立。应用程序的 UI 线程执行布局并渲染进一个单独的缓冲区(无论 Layouts 和 Views 的个数,也不管 View 是否是硬件加速的)。

阅读全文 »

Vulkan

发表于 2017-07-21 | 分类于 Android 图形系统 | | 阅读次数:

Android 7.0 添加了对 Vulkan 的支持,一个高性能 3D 图形的低开销跨平台 API。像 OpenGL ES 一样,Vulkan 提供了在应用中创建高质量,实时图形的工具。Vulkan 的优势包括 CPU 开销降低及支持 SPIR-V Binary Intermediate 语言。

阅读全文 »

EGLSurfaces 和 OpenGL ES

发表于 2017-07-21 | 分类于 Android 图形系统 | | 阅读次数:

OpenGL ES 定义了一个渲染图形的 API。它没有定义窗口系统。为了使 GLES 可以工作于各种平台之上,它被设计为与知道如何通过操作系统创建和访问窗口的库相结合。Android 使用的库称为 EGL。如果你想绘制纹理多边形,你使用 GLES 调用;如果你想将渲染的东西放在屏幕上,则使用 EGL 调用。

阅读全文 »

Surface 和 SurfaceHolder

发表于 2017-07-21 | 分类于 Android 图形系统 | | 阅读次数:

Surface 类自 1.0 版本开始就是公共 API 的一部分了。它的描述简单地说,“处理由屏幕合成器管理的原始缓冲区”。该陈述在最初编写时是准确的,但在现代系统上却与事实相去甚远。

Surface 表示一个常常(但不总是!)由 SurfaceFlinger 消费的 buffer queue 的生产者端。当你渲染到 Surface 上时,结果最终将进入被传递给消费者的缓冲区中。Surface 不简单地是一块你可以随意涂鸦的原始内存块。

阅读全文 »

SurfaceFlinger 和 Hardware Composer

发表于 2017-07-21 | 分类于 Android 图形系统 | | 阅读次数:

拥有图形数据缓冲区是很精彩的,但是当你在你的设备屏幕上看到它们时生活甚至更美好。那就是 SurfaceFlinger 和 Hardware Composer HAL 做的事情。

阅读全文 »
1…101112…21
Han Pengfei

Han Pengfei

207 日志
19 分类
30 标签
GitHub 豆瓣 知乎 E-Mail
Links
  • Android Developers
  • Android Open Source Project
  • 蚂蚁网
© 2016.09.16 — 2020 Han Pengfei
由 Hexo 强力驱动
|
主题 — NexT.Mist v6.0.3