- 博客(4)
- 收藏
- 关注
原创 Flutter Engine 绘制流程源码解析
如果只看Flutter Engine里的关键绘制流程,其实并不复杂,就是一系列的Skia API调用。为了提高绘制效率,最理想的方式是找出相邻两帧的差异,只重绘差异的区域,所以加了layer层的设计,通过比较两个layer tree的不同来确定有差异的区域,然后调用SkCanvas::clipRect裁剪出这块区域,配合SkCanvas::quickReject做快速裁剪测试,从而确定哪些layer需要重绘,提高绘制性能。
2023-06-19 02:30:41
1138
2
原创 Kotlin 协程 基础概念&原理分析
通过上面的分析,kotlin协程在我们面前已经毫无秘密。它并不复杂,只是一个上层框架,里面封装了一个状态机,后续会通过state多次调用同个函数,即函数,当然,在每次调用后都会保存一些所需变量,在下次调用时还原现场。函数由编译器根据suspend ()->T 实例的实际情况自动生成多个case分支,函数为我们提供了在函数中直接return,中断协程体继续执行的手段,当然,在中断前会通过成员变量保存上次运行的现场,在下次调用时能在中断的位置继续执行.
2023-06-13 01:48:12
501
1
原创 2021-11-03
使用xcode instruments 分析性能 官方视频 WWDC 2019 视频 Getting Started with Instruments <sys/kdebug_signpost> 使用 // kdebug_signpost_start(3,0x65,0,0,0) 在instruments捕获的结果 如下图所示 kdebug_signpost_start(int, int, int, int, int); kdebug_signpost_end(int, int, int, i
2021-11-03 14:26:08
319
原创 windows 使用pyenv-win 管理多python 版本
链接:GitHub - pyenv-win/pyenv-win: pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do ..
2021-10-26 21:25:09
5087
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人