精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Facebook Litho:高性能安卓UI的構建框架

責任編輯:editor005

作者:Abel Avram

2017-04-28 11:53:29

摘自:INFOQ

Facebook開源了Litho。Litho是一種創建安卓應用用戶圖形界面的框架,使用了類似于React的聲明式風格,考慮了界面的滾動性能。

Facebook開源了Litho。Litho是一種創建安卓應用用戶圖形界面的框架,使用了類似于React的聲明式風格,考慮了界面的滾動性能。

使用Facebook Litho,開發人員可以調用聲明式API創建不可變的UI組件。由于組件是不可變的,因此可以另開一個用于準備渲染和布局的線程,然后將組件傳遞給UI線程,實現在屏幕上的實際渲染。Litho使用了代碼生成和針對渲染的組件優化,通過對組件分組降低了安卓ViewGroups的數量,使用更少視圖層級生成更為平面化的界面。據Facebook宣稱,這些做法降低了內存的使用,增加了界面的滾動速度。

Litho使用Yoga布局組件,該過程可以同步完成,也可以異步完成。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等一系列屬性。

Litho API相當龐大,其中包含多個軟件包,具有超過300個Java類和接口。Litho支持用戶化布局、單元測試、事件處理、RTL(right-to-left)文本、可訪問性等多種功能。

Litho已用于多個Facebook的安卓應用,例如Facebook、Facebook Lite、Messenger和Workplace等。Facebook聲稱在界面滾動功能上,Litho比安卓RecyclerView的性能提高了35%。這是通過“將繁重工作轉移到后臺線程,并將渲染工作分布在多個幀中”實現的。此外:

Litho將復雜視圖分解為多個較小部分,例如文本、圖像和視頻等,然后增量地渲染各部分,并將需完成的工作分布到多個幀中。它還能在回收利用各個小部分,以無限可能的方式重組它們,這降低了在內存中需要創建并存儲的視圖個數。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 漳平市| 余姚市| 桐城市| 富平县| 平乡县| 通许县| 博客| 诸城市| 通州市| 瓦房店市| 民和| 汕尾市| 满城县| 宁城县| 罗平县| 浦江县| 隆尧县| 临泉县| 北海市| 巴中市| 乌拉特中旗| 紫金县| 永福县| 盐池县| 英山县| 仲巴县| 平原县| 军事| 璧山县| 中方县| 峨山| 宿迁市| 宾川县| 金坛市| 平乐县| 遵义县| 平武县| 鄱阳县| 崇明县| 五常市| 余姚市|