240 发简信
IP属地:吉林
  • 字节码插装统计

    参考文档: https://asm.ow2.io/asm4-guide.pdf[https://asm.ow2.io/asm4-guide.pdf] https://asm....

  • 性能监控与线上问题定位

    主题 定位卡顿、掉帧、GPU 耗时过高等问题 【监控 - 定位 - 优化】的完整闭环 线下优化≠线上无问题 线下测试机性能好,无法复现低配机的卡顿; 用户操作场景复杂(如弱网...

  • Android 渲染全链路性能优化(CPU+GPU 整合篇)

    全链路渲染流程 核心环节 CPU 耗时环节:布局测量(Measure)、布局排版(Layout)、Canvas 绘制、主线程阻塞; GPU 耗时环节:过度绘制、着色器计算、纹...

  • OpenGL ES 进阶(3D 渲染)

    3D 渲染的核心原理(坐标系统、矩阵变换),掌握纹理映射与基础光照,实现带旋转动画的 3D 立方体 关键问题 3D 坐标系统:如何描述物体的 3D 位置(x,y,z 三轴);...

  • GLSurfaceView 2D

    屏幕坐标与 OpenGL 标准化坐标的映射 1、OpenGL 标准化设备坐标(NDC) 坐标范围是 [-1, 1],中心点是 (0,0),与屏幕的像素坐标完全不同; 例如:屏...

  • 120
    SurfaceView、GLSurfaceView、OpenGL

    我们用 SurfaceView + Canvas 实现高频动画,其核心是 CPU 串行绘制 —— 每一个像素的计算都由 CPU 逐个处理,在 2D 简单场景下足够流畅,但面对...

  • 120
    Surface 与 BufferQueue 机制

    Surface 到底是什么?它和 View/Window 的关系是什么? App 绘制的像素数据是如何存储在 Surface 中的? Surface 是如何跨进程把数据传递给...

  • Choreographer 与 VSync 机制

    今日问题 为什么绘制必须等 VSync 3个问题 VSync 信号是什么?从哪里来? Choreographer 是如何接收 VSync 信号并触发绘制的? 为什么说「错过 ...

  • 问题总结

    问题 为什么 requestLayout () 会触发 Measure 和 Layout,但不一定触发 Draw? 1、requestLayout () 的核心目的reque...

  • 从invalidate 到performTraversals

    今日核心问题 invalidate() 如何一步步触发 performTraversals() 绘制的终点 ViewRootImpl.performTraversals() ...

  • 屏幕渲染的性能

    本文聚焦 App 层的 Measure/Layout/Draw 阶段,是最易落地、收益最高的优化方向。 1. 减少过度绘制(Overdraw) 过度绘制:同一个像素被多次绘制...

  • 屏幕渲染

    具体内容 屏幕渲染的本质 掌握核心角色与整体链路 搭建宏观知识框架 什么是屏幕渲染 App / 系统的 UI 数据,通过软件调度 + 硬件执行,最终输出到物理屏幕 渲染过程 ...

  • Vulkan的四个核心组件

    Vulkan 是一个分层架构,由 Vulkan Application、Loader、Layer 和 ICDs (Installable Client Drivers) 四个...

  • 120
    Android Native Looper 机制

    Native Looper 是 Android 底层(C/C++ 层,libutils)实现的线程专属事件循环核心,用于监听文件描述符事件、处理 Native 消息,并与 J...

  • epoll 机制

    IO 多路复用: 简单说就是用一个线程 / 进程管理多个 IO 描述符(比如 socket、文件) 监听这些描述符的状态变化(可读 / 可写 / 异常) 只有当描述符就绪时才...

  • 120
    知识集合

    HTTP 协议与状态码 200(请求成功)、301(永久重定向,如域名跳转)、302(临时重定向,如未登录跳登录页)、304(资源未修改,走协商缓存)、404(资源未找到)、...

  • UEventObserver 源码分析

    什么是 UEventObserver 是 Android 框架中一个隐藏的抽象类(@hide),位于 frameworks/base/core/java/android/os...

  • SurfaceFlinger

    SurfaceFlinger 是 Android 系统中负责屏幕内容合成和显示的核心组件,属于系统服务层。它主要用于管理、合成和渲染应用程序的图形界面,确保屏幕上显示的内容平...

  • Linux进程间通信机制

    1. 管道 (Pipes) 匿名管道:用于有亲缘关系(如父子进程)的进程间通信,通过 pipe() 系统调用创建。数据单向流动,类似文件读写。 命名管道 (FIFO):通过 ...

  • 视频的编解码

    编码 是将原始视频数据(通常是较大的未压缩数据)压缩为更小格式 的过程,目的是减少存储空间或传输带宽需求,同时尽量保留画质。 数据压缩 (去除冗余信息):通过算法(如H.26...

个人介绍
有道无术,术尚可求
有术无道,止于术