美文网首页Android
基于Telegram二次开发 --- 学习 AsyncDispl

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

作者: 试图与自己和解 | 来源:发表于2022-12-04 09:57 被阅读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 代码:

    相关文章

      网友评论

        本文标题:基于Telegram二次开发 --- 学习 AsyncDispl

        本文链接:https://www.haomeiwen.com/subject/zbvsfdtx.html