sunwengang blog

developer | android display/graphics

  1. 1. About This Web
  2. 2. Doing
  3. 3. Planing
  4. 4. Tips
    1. 4.1. Android Graphics
    2. 4.2. Android系统

About This Web

博客园的Blog(旧): https://www.cnblogs.com/1996swg
个人导航页: http://wizzie.top/html/nav.html


Doing

  1. 整理文档
  2. Android Graphics相关的技术(阅读Android Q AOSP)

可参考学习夕月风博客: https://www.jianshu.com/u/f92447ae8445
技术书籍: 《深入理解Android系统》(代码变动大),《精通Android5多媒体开发》(很多代码变动大),《Android三维程序设计》(未读)
调试书籍:《软件调试实践》,《软件调试的艺术》

  • SurfaceFlinger合成的细节
  • Vsync(Tuning,Prooerty,Offect,requestNextVsync)
  • Angle
  • FrontBuffer&BackBuffer双缓冲
  • Fence同步机制
  • gpu(opengl java -> opengl c++ + Adreno -> kgsl)
  • opengl API熟悉
  • hwui工作原理
  • SurfaceFlinger opengl的应用
  • Gralloc和hwcomposer的工作原理
  • View子系统
  1. CPP

Planing

  1. 图形基础

阅读《计算机图形基础》,主要了解二维图形和三维图形的概念

  1. OpenGL了解和学习

目前还不清楚怎么学习,因为Opengl在Adndroid很常用,但是Vulkan又是新起的API库,通过Angle了解到这个渲染库一定程度上更高效。

  1. vulkan学习

书籍:《Vulkan应用开发指南》
参考博客: https://www.cnblogs.com/heitao/tag/Vulkan/default.html?page=2
awesome资源链接 http://www.vinjn.com/awesome-vulkan/#apps
博客园翻译博客 https://www.cnblogs.com/bitzhuwei/p/bitzhuwei-cnblogs-com-index.html
如何学习: https://www.jeremyong.com/c++/vulkan/graphics/rendering/2018/03/26/how-to-learn-vulkan/
实时渲染: http://www.realtimerendering.com/
遍历图形管线: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index
Learn Computer Graphics From Scratch: https://www.scratchapixel.com/
opengl案例: http://ogldev.atspace.co.uk/

  • 3D图像学基础
  • 渲染机制和案例
  • renderdoc分析渲染流程(了解原理pipeline, renderpass, swapchain …)

Tips

Android Graphics

  • debug调试技巧
    • adb
    • shell
    • dump SF
    • 抓取systrace
    • fastboot
    • 源码堆栈debug调试
  • Surface创建
  • 硬件加速
  • 软件绘制
  • CTS/VTS(GSI)
  • 测量,布局,绘制
  • BufferQueue
  • Handler消息处理机制(MessageQueue)
  • Color Mode(色彩空间)
  • Surface销毁(析构)
  • WMS
  • View子系统

Android系统

  • Binder跨进程
  • JNI
  • init进程(system进程,zygote进程)
  • Android Property
  • Android Q中的Java注释变更@hide
  • Makefile

本文作者 : sunwengang
本文使用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文链接 : https://alonealive.github.io/Blog/about/index.html

本文最后更新于 天前,文中所描述的信息可能已发生改变