Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • tutorial
  • jetpack

  • components

  • androidx

  • 动态化
  • apm

  • module

  • harmony

  • tool

  • other

    • Flutter 高频面试问答
    • 生产环境Message分发处理设计
    • 事件分发机制
    • 调研抖音对harmonyOS4的优化
    • Android 评论at功能的实现
    • 探索抖音禁止录屏
    • 对32位手机崩溃的优化记录
    • GradientDrawable
    • android window
    • color
    • webview白屏检测
    • android Resource
    • deeplink技术
    • android-xml
    • ANDROID IPC
    • BottomSheetBehavior研究与思考
    • viewPager
    • Android密钥系统
    • compiler
    • 提升UI加载速度的几点思考
      • 背景
      • AsyncLayoutInflater
      • 链接
    • Android零耗时首帧体验
    • jsbridge
    • retrofit动态代理设计
    • gif与属性动画的对比
  • kotlin

  • 《android》
  • other
Jacky
2023-08-15
目录

提升UI加载速度的几点思考

# 背景

# AsyncLayoutInflater

源码 (opens new window)

AsyncLayoutInflater 代码不多, 原理也很简单:

  • 创建 AsyncLayoutInflater 时异步线程启动, 然后被阻塞队列 take 方法阻塞
  • 通过 inflate 方法传入构造 View 的信息与回调对象, 然后从对象池中取出 InflateRequest 对象进行信息更新, 然后放入阻塞队列中
  • 阻塞队列 take 获取到元素, 异步线程开始执行 View 的创建, 并在执行完成后发送消息给 Handler
  • Handler 回调主线程, 执行 OnInflateFinishedListener 回调对象, 然后回收 InflateRequest 对象

注意事项

# 链接

  • Android AsyncLayoutInflater 限制及改进 (opens new window)
上次更新: 2025/10/09, 23:53:03
compiler
Android零耗时首帧体验

← compiler Android零耗时首帧体验→

最近更新
01
npx 使用指南
10-12
02
cursor
09-28
03
inspect
07-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式