博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Facebook Litho:高性能安卓UI的构建框架
阅读量:7166 次
发布时间:2019-06-29

本文共 1329 字,大约阅读时间需要 4 分钟。

Facebook开源了。Litho是一种创建安卓应用用户图形界面的框架,使用了类似于React的声明式风格,考虑了界面的滚动性能。

\\

使用,开发人员可以调用声明式API创建不可变的UI组件。由于组件是不可变的,因此可以另开一个用于准备渲染和布局的线程,然后将组件传递给UI线程,实现在屏幕上的实际渲染。Litho使用了代码生成和针对渲染的组件优化,通过对组件分组降低了安卓ViewGroups的数量,使用更少视图层级生成更为平面化的界面。据Facebook宣称,这些做法降低了内存的使用,增加了界面的滚动速度。

\\

Litho使用布局组件,该过程可以同步完成,也可以异步完成。Yoga是一个跨平台的布局引擎,它也是由Facebook开源发布的。考虑到组件是不可变的,而创建大量组件的代价很大,因此Litho允许一个组件被当前视图弃用后,可在其它视图中重用。

\\

使用Litho定义一个“Hello, World!”文本组件的代码如下:

\\
\public class MyActivity extends Activity {\  @Override\  public void onCreate(Bundle savedInstanceState) {\    super.onCreate(savedInstanceState);\    final ComponentContext c = new ComponentContext(this);\    final LithoView lithoView = LithoView.create(\        this /* 上下文 */, \        Text.create(c)\            .text(\"Hello, World!\")\            .textSizeDip(50)\            .build());\    setContentView(lithoView);\  }\}\
\\

LithoView相当于安卓的ViewGroup,实现Litho定义组件与安卓View间的关联。Text是一个Litho提供的小部件,具有text、textColor、textSize、textStyle等一系列属性。

\\

相当庞大,其中包含多个软件包,具有超过300个Java类和接口。Litho支持用户化布局、单元测试、事件处理、RTL(right-to-left)文本、可访问性等多种功能。

\\

Litho已用于多个Facebook的安卓应用,例如Facebook、Facebook Lite、Messenger和Workplace等。安卓的性能提高了35%。这是通过“将繁重工作转移到后台线程,并将渲染工作分布在多个帧中”实现的。此外:

\\
\

Litho将复杂视图分解为多个较小部分,例如文本、图像和视频等,然后增量地渲染各部分,并将需完成的工作分布到多个帧中。它还能在回收利用各个小部分,以无限可能的方式重组它们,这降低了在内存中需要创建并存储的视图个数。

\
\\

。如需了解更多细节,可参考和。

\\

查看英文原文:

转载地址:http://stqwm.baihongyu.com/

你可能感兴趣的文章
android-Activity
查看>>
hql封装dao_2
查看>>
怎么搭讪陌生妹子
查看>>
使用php的curl根据关键词爬取百度搜索结果页
查看>>
Ubuntu安装MySQL及使用Xshell连接MySQL出现的问题(2003-Can't connect to MySql server及1045错误)...
查看>>
h5学习-webstorm工具的激活
查看>>
猫猫学安卓——Android布局详解
查看>>
深入理解javascript原型和闭包(11)——执行上下文栈
查看>>
[十七]基础类型BigDecimal简介
查看>>
c# 导出附件
查看>>
使用C#开发ActiveX控件(新)
查看>>
js冒泡排序及计算其运行时间
查看>>
mysql表加锁、全表加锁、查看加锁、解锁
查看>>
Python yield 使用浅析
查看>>
python之函数
查看>>
ADO.NET
查看>>
Exchange服务无法启动案例分享
查看>>
我的友情链接
查看>>
SQL- @@ROWCOUNT -返回上一行执行影响的行行数
查看>>
ulimit -SHn 65535
查看>>