将背景颜色 A 和叠加颜色 B 混合,得到颜色 C,可通过以下公式计算(见 https://en.wikipedia.org/wiki/Alpha_compositing )

举个例子,css 里指定使用 groove 等自动变双色的 border 时,颜色变深的逻辑是由浏览器自行实现的,而在 WebKit 里的实现方式是在原色的前面叠加 000 33% 而成。
将背景颜色 A 和叠加颜色 B 混合,得到颜色 C,可通过以下公式计算(见 https://en.wikipedia.org/wiki/Alpha_compositing )

举个例子,css 里指定使用 groove 等自动变双色的 border 时,颜色变深的逻辑是由浏览器自行实现的,而在 WebKit 里的实现方式是在原色的前面叠加 000 33% 而成。
DTCoreText 是一款 Github 上的开源库,可用于摆脱低性能的 WebView 却又以 WebView 的方式来展示 HTML。整体逻辑包含以下几个部分:
VAP(Video Animation Player)是由腾讯的企鹅电竞团队开发的一套用于播放酷炫动画的实现方案。大概在 2019 年中,VAP 还未在 Github 正式对外开源时,因为项目需要,我开始接触到 VAP。也见证了 VAP 从只能常规地去播动画,到实现了融合特效,再到在 Github 开源的过程。

在最初 VAP 还未完善时,我们也与电竞的同事一起发现、解决了一些 bug;同时在我们自己项目使用的过程中,偶尔也有对 VAP 进行二次开发以适应我们自己的需要。最终这也使我对 VAP 的源码较为了解,让我获益匪浅。
关于 VAP 的原理,在 Github 以及 KM 中都已经有较多讲解的文章了,但目前还没有源码级别的解读,而我作为 VAP 的第一批开发者(算是吧),也就尝试写一篇文章来记录一下。
随着版本不断迭代,各种新的业务代码不断被加入,IPA 包的体积也在不断增大。为了方便检测出两个版本之间安装包体积增大的原因,这里写了个小工具。
在工作中偶尔会听到 mmap 这个词。首先从出处上来说,mmap()是在 <sys/mman.h> 中定义的一个函数,此函数的作用是创建一个新的 虚拟内存 区域,并将指定的对象映射到此区域。因此,一直以来在工作中聊到的 mmap 其实就是通过 内存映射 的机制来进行文件操作。
趁着元旦假期,花了一天的时间了解了一下 iOS 和 Mac App 的逆向技术。第一次涉足逆向工程,原本只是打算了解一下逆向的知识,然后发现原来还可以利用逆向做点有趣的事,于是在完成之后记录一下下~
当我第一次打开 twitter 的时候,就被它的启动动画惊艳到了。然而分析一下这个动画其实也不难实现,于是赶紧做一个出来看看。