安卓原生 UI 工具包 Jetpack Compose 獲推 1.6 版更新:頁面滾動性能提升 20%、引入“穩(wěn)定”標(biāo)記等
IT之家 1 月 29 日消息,谷歌日前為安卓原生 UI 工具包 Jetpack Compose 推出了 1.6 版本,該版本主要改進(jìn)了性能表現(xiàn),據(jù)稱在“頁面滾動性能”和“啟動速度”方面有明顯提升,此外谷歌還為 Compose 編譯器引入了一項(xiàng)“穩(wěn)定”標(biāo)記,并在字體方面也有所改進(jìn)。
IT之家注意到,研究人員改進(jìn)了 Jetpack Composed 的內(nèi)存分配和延遲初始化能力,從而為 Compose 編譯器的所有 API 提供了有效性能提升,用戶可以在“文字”、“可點(diǎn)擊元素”、“延遲加載列表”等 API 等看到肉眼可見的性能改進(jìn)。
官方聲稱,Jetpack Compose 1.6 的性能得到了全面提升,號稱“頁面滾動性能增加了 20%。啟動時(shí)間縮短了約 12%”,允許用戶更流暢地進(jìn)行開發(fā)工作。
此外,谷歌還為 Compose 編譯器添加了一個(gè)名為“穩(wěn)定”的標(biāo)注選項(xiàng),允許用戶將任意類、庫標(biāo)記為“穩(wěn)定”,號稱能夠在不犧牲開發(fā)者靈活性的前提下,讓 Compose 編譯器通過標(biāo)記智能判斷 UI 何時(shí)需要重新組合(自動刷新),從而提升應(yīng)用程序性能。
谷歌同時(shí)表示,Compose 編譯器插件生成的代碼也得到了改進(jìn)。由于 Compose 編譯器會跟蹤 Compose 的狀態(tài)對象,以判斷在狀態(tài)值發(fā)生變化時(shí),哪些項(xiàng)目需要被重新組合。
不過谷歌提到,上述內(nèi)容中許多狀態(tài)值僅會被讀取一次,甚至部分狀態(tài)值從未被讀取,但仍然會被頻繁跟蹤重組,因此造成了性能損耗。因此谷歌引入了一項(xiàng)名為內(nèi)在記憶(Intrinsic Remember)的功能,號稱能夠記錄狀態(tài)對象的 remember 函數(shù),從而僅重組“該重組的項(xiàng)目”,避免不必要的重新渲染過程。
除了性能方面的更新外,谷歌還改善了 Jetpack Compose 的默認(rèn)字體填充能力,默認(rèn)關(guān)閉過時(shí)的 includeFontPadding 字間距屬性,從而令文字布局“更符合設(shè)計(jì)規(guī)范”。
▲ 圖源 谷歌官方新聞稿(下同)
該 UI 工具包還支持了非線性字體縮放,以提升文本可讀性和可訪問性;并引入了平臺級拖放能力,允許用戶將文件內(nèi)容從一個(gè)應(yīng)用拖到另一個(gè)應(yīng)用,有點(diǎn)類似錘子的 OneStep 和榮耀的任意門功能。