Android

基于Telegram二次开发 --- 学习 AsyncDispl

2022-12-04  本文已影响0人  试图与自己和解

前言

Telegram 项目中使用基于 Facebook 开源的 AsyncDisplayKit (以下简称 ASDK,目前已经停止维护,并于 2017 年迁移到新库,更名为 Texture ) + 部分自己基于 ASDK 定制的 Display 构建大部分UI;

image.png
image.png

根据 BUILD 文件,我们能清楚知道这两个包的结构,以及依赖关系;(不懂 BUILD 文件是啥?看这:基于Telegram二次开发 --- Bazel初探


1. AsyncDisplayKit 简介

ASDK(现名 Texture)是 FaceBook 开源的一款能够保持界面流畅的框架。建立在 UIKit 之上,可以保持最复杂的用户界面的流畅和响应;

ASDK 的作者是 Scott Goodson (Linkedin),他曾经在苹果工作,负责 iOS 的一些内置应用的开发,比如股票、计算器、地图、钟表、设置以及 Safari 等,当然他也参与了 UIKit framework 的开发。后来他加入 Facebook 后,负责 Paper 的开发,创建并开源了 AsyncDisplayKit;

2. AsyncDisplayKit 学习曲线

3. Telegram 与AsyncDisplayKit

Telegram 并没有将 AsyncDisplayKit 全盘接入,而是作为子模块接入,Telegram 剔除了很大一部分 AsyncDisplayKit 内容,根据自己需求最低限度的保留了核心 node ,然后自己重写了几百个 node 的子类,这些类散落在如 DisplayTelegramUIItemListUI 以及支持 Telegram UI 主要功能的其他子模块中。

image.png
如图所示:

Telegram 保留了约 35% 的 AsyncDisplayKit 代码:

上一篇下一篇

猜你喜欢

热点阅读