[發明專利]一種用戶界面繪制層級、過度繪制的檢測方法及裝置有效
| 申請號: | 201910143733.3 | 申請日: | 2019-02-25 |
| 公開(公告)號: | CN111611032B | 公開(公告)日: | 2023-05-26 |
| 發明(設計)人: | 王玉鵬 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/451 | 分類號: | G06F9/451;G06F8/38 |
| 代理公司: | 北京思格頌知識產權代理有限公司 11635 | 代理人: | 楊超 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用戶界面 繪制 層級 過度 檢測 方法 裝置 | ||
本發明公開了一種用戶界面繪制層級、過度繪制的檢測方法及裝置。其中,用戶界面繪制層級的檢測方法包括:在用戶界面的刷新過程中,獲取所述用戶界面的頂層視圖的控件樹;所述控件樹包括所述視圖的控件;確定所述控件樹的層級數量作為所述用戶界面的繪制層級。能夠自動檢測繪制層級,節省了人力成本,提高了檢測效率和準確度;可以更好的幫助研發人員發現問題,最終提高應用的用戶體驗度。
技術領域
本發明涉及應用檢測技術領域,特別涉及一種用戶界面繪制層級、過度繪制的檢測方法及裝置。
背景技術
操作系統,例如安卓系統的應用程序(Application,APP)中常常會存在用戶界面(User?Interface,UI)的過度繪制。過度繪制是指屏幕上的某個像素區域在同一幀的時間內被繪制了多次。手機為了保持視覺的流暢度,其屏幕刷新頻率通常設為60hz,即在1000/60=16.67ms內更新一幀,過度繪制因為浪費了大量的CPU以及GPU資源,使得有時UI無法在設定頻率內更新到下一幀而發生掉幀,造成UI卡頓。
現有技術中,安卓提供了UI過度繪制的檢測工具,在手機的開發者模式中,打開“調試GPU過度繪制”,選擇其中的“顯示GPU過度繪制區域”,開啟后系統會在不同渲染復雜度的元素上渲染上不同的顏色,具體是:一層過度繪制的顯示為藍色,二層過度繪制的顯示為綠色,三層過度繪制的顯示為淡紅色,四層過度繪制的顯示為深紅色。然后開發者可以對手機屏幕做截圖,并對截圖做分析,肉眼查看截圖中渲染為紅色的區域的面積大小及紅色的渲染程度,判斷過度繪制的程度,決定是否需要調整原代碼。
上述技術方案通過人工肉眼觀察的方法來判斷費時費力,且人工主觀判斷容易出現錯誤,尤其是在檢測人員視覺疲憊的情況下。
發明內容
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的一種用戶界面繪制層級、過度繪制的檢測方法及裝置。
第一方面,本發明實施例提供一種用戶界面繪制層級的檢測方法,包括:
在用戶界面的刷新過程中,獲取所述用戶界面的頂層視圖的控件樹,所述控件樹包括所述視圖的控件;
確定所述控件樹的層級數量作為所述用戶界面的繪制層級。
在一些可選的實施例中,確定所述控件樹的層級數量,包括:
按照預設的算法遍歷所述控件樹,每獲取到一級控件,所述控件樹的層級數量增加1,并繼續獲取下一級控件,直至獲取不到下一級控件。
在一些可選的實施例中,在用戶界面的刷新過程中,獲取所述用戶界面的頂層視圖的控件樹,包括:
在用戶界面的刷新過程中,通過預先插入的探針獲取所述用戶界面的頂層視圖的控件樹,所述探針為用于獲取控件樹的執行代碼。
在一些可選的實施例中,所述探針通過下述方式預先插入:
在對應用程序的源碼編譯過程中,遍歷所述源碼搜索出所有的Activity的子類,每個所述子類對應一個用戶界面;
在所述子類的頂層視圖源碼的刷新方法部分插入探針。
在一些可選的實施例中,在所述子類的頂層視圖源碼的刷新方法部分插入探針前,還包括:
獲取所述子類的頂層視圖的標識;
若獲取失敗,按照設定的規則在所述源碼中設置所述視圖的標識,再執行所述在所述子類的頂層視圖源碼的刷新方法部分插入探針;
若獲取成功,查找預先建立的免檢視圖列表中是否有所述視圖的標識;若否,再執行所述在所述子類的頂層視圖源碼的刷新方法部分插入探針。
在一些可選的實施例中,獲取所述子類的頂層視圖的標識,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910143733.3/2.html,轉載請聲明來源鉆瓜專利網。





