[發明專利]一種用戶界面渲染的方法及裝置有效
| 申請號: | 201710755049.1 | 申請日: | 2017-08-29 |
| 公開(公告)號: | CN107729094B | 公開(公告)日: | 2020-12-29 |
| 發明(設計)人: | 李沛;楊朝楷 | 申請(專利權)人: | 口碑(上海)信息技術有限公司 |
| 主分類號: | G06F9/451 | 分類號: | G06F9/451 |
| 代理公司: | 北京清源匯知識產權代理事務所(特殊普通合伙) 11644 | 代理人: | 馮德魁;竇曉慧 |
| 地址: | 200135 上海市浦東新區自由*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用戶界面 渲染 方法 裝置 | ||
本申請公開了一種用戶界面渲染的方法,包括:基于主線程觸發針對待渲染對象的用戶界面渲染;從所述主線程切換至子線程,通過所述子線程繪制所述待渲染對象對應的位圖;回調所述主線程,將繪制好的位圖應用到所述待渲染對象的顯示內容當中;根據所述待渲染對象的顯示內容渲染用戶界面。所述用戶界面渲染的方法將原本在主線程執行的位圖繪制操作轉移到子線程進行,從而減輕了主線程的負荷,避免主線程在任務繁重時及時處理渲染任務造成的用戶界面卡頓。
技術領域
本申請涉及UI渲染技術領域,具體涉及一種用戶界面渲染的方法。本申請同時涉及一種用戶界面渲染的裝置,以及一種電子設備。
背景技術
在終端設備中,CPU(中央處理器)、GPU(Graphics Processing Unit,圖形處理器)和顯示器在進行用戶界面(UI,User Interface)渲染時,是通過下述方式協同工作:在幀同步信號到達后,會通知應用程序進行用戶界面渲染,應用程序的主線程開始在CPU當中計算顯示內容,比如視圖的創建、布局計算、圖片解碼、文本繪制等,計算完成后CPU會將顯示內容提交到GPU,由GPU根據顯示內容進行變換、和成和渲染,渲染完成后GPU會將渲染結果放入幀緩存區,等待下一次幀同步信號到達后將幀緩存區的數據傳遞給顯示器進行顯示。
以iOS系統為例,應用程序通過系統提供的UIKit和CoreAnimation等框架進行用戶界面渲染,但這些框架都要求必須在主線程進行操作,內部的實現也都是主線程在CPU上進行的,比如準備視圖的層級關系、設置圖層屬性、繪制位圖以及圖片解碼等。當用戶界面層級較為復雜或者繪制的內容較為繁雜時,一個刷新周期內無法完成任務,導致用戶界面內容不能及時更新到屏幕上,會引起用戶界面卡頓。此外,如果主線程在進行其他繁重任務,比如在主線程中響應用戶的觸摸、點擊等操作,可能會導致主線程無法及時處理渲染任務,同樣會導致用戶界面卡頓。
發明內容
本申請提供一種用戶界面渲染的方法,以解決現有技術存在的用戶界面卡頓的問題。
本申請同時涉及一種用戶界面渲染的裝置,以及一種電子設備。
本申請提供一種用戶界面渲染的方法,包括:
基于主線程觸發針對待渲染對象的用戶界面渲染;
從所述主線程切換至子線程,通過所述子線程繪制所述待渲染對象對應的位圖;
回調所述主線程,將繪制好的位圖應用到所述待渲染對象的顯示內容當中;
根據所述待渲染對象的顯示內容渲染用戶界面。
可選的,所述從所述主線程切換至子線程,通過所述子線程繪制所述待渲染對象對應的位圖步驟執行前,執行下述步驟:
確定所述待渲染對象的視圖層級樹;
對所述視圖層級樹中的節點進行光柵化;
其中,所述待渲染對象對應的位圖根據所述視圖層級樹中節點的光柵化結果進行繪制。
可選的,所述用戶界面渲染的方法,包括:
根據所述待渲染對象的屬性信息確定所述視圖層級樹中節點的節點屬性;
其中,所述節點屬性包括:光柵化屬性和非光柵化屬性;
相應的,所述視圖層級樹中的節點包括:光柵化根節點、光柵化子節點和非光柵化節點。
可選的,所述光柵化根節點設置有狀態標識,所述狀態標識包括:允許與光柵化子節點進行光柵化的第一狀態標識,以及不允許與光柵化子節點進行光柵化的第二狀態標識。
可選的,所述對所述視圖層級樹中的節點進行光柵化,采用如下方式實現:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于口碑(上海)信息技術有限公司,未經口碑(上海)信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710755049.1/2.html,轉載請聲明來源鉆瓜專利網。





