1. 程式人生 > >避免過度繪製的解決方法

避免過度繪製的解決方法

檢測過度繪製:進入設定 -> 開發者選項 -> 除錯GPU過度繪製 -> 顯示GPU過度繪製

提示色值:真實對比:

藍色,淡綠,淡紅,深紅代表了4種不同程度的Overdraw情況,

  • 藍色: 意味著overdraw 1倍。畫素繪製了兩次。大片的藍色還是可以接受的(若整個視窗是藍色的,可以擺脫一層)。
  • 綠色: 意味著overdraw 2倍。畫素繪製了三次。中等大小的綠色區域是可以接受的但你應該嘗試優化、減少它們。
  • 淡紅: 意味著overdraw 3倍。畫素繪製了四次,小範圍可以接受。
  • 深紅: 意味著overdraw 4倍。畫素繪製了五次或者更多。這是錯誤的,要修復它們。

看到紅色的儘量減少,藍色區域的比較正常

處理辦法:

  1. 去掉window的預設背景
  2. 去掉其他不必要的背景
  3. 佈局層級優化
  4. ......等

相關推薦

避免過度繪製解決方法

檢測過度繪製:進入設定 -> 開發者選項 -> 除錯GPU過度繪製 -> 顯示GPU過度繪製 提示色值:真實對比: 藍色,淡綠,淡紅,深紅代表了4種不同程度的Overdraw情

Android過度繪製解決方案

過度繪製的危害以及產生的原因,可以參考網路資料。 優化過度繪製,是為了保證APP的流暢度,而APP卡頓不全部是因為佈局問題導致的, 佈局問題會導致渲染時間延長 從而造成卡頓。 所以當有掉幀的時候,不一定是佈局的問題 PS:除錯APP過度繪製,先開啟開發者選項中的:GPU呈現模式分析和除錯

Android效能優化-過度繪製解決方案

過度繪製: 螢幕上某一畫素點在一幀中被重複繪製多次,就是過度繪製。 下圖中多個卡片跌在一起,但是隻有第一個卡片是完全可見的。背後的卡片只有部分可見。但是android系統在繪製時會將下層的卡片進行繪製,接著再將上層的卡片進行繪製。但其實,

如何避免過度繪製

1. 儘量多使用RelativeLayout和LinearLayout, 不要使用絕對佈局AbsoluteLayout, 1. 在佈局層次一樣的情況下, 建議使用LinearLayout代替RelativeLayout, 因為LinearLayout效能要稍高一點. 2

Android關於overdraw過度繪製問題的解決辦法getWindow().setBackgroundDrawable(null);

其實過度繪製通俗點來說就是給佈局設定上背景,那麼就會造成Overdraw,那麼當我們給頁面的最大的父類容器設定背景的時候,肯定會造成Overdraw了,那麼解決辦法大家可能都能在網上找到一二,其中辦法之一就是在頁面呼叫: getWindow().setBackgroundDrawable

ajax請求,避免快取解決方法

js快取問題 優點: 避免了對服務端頻繁的呼叫,提高效能 缺點: 會對重複的請求進行自動快取,造成某些功能不好使 舉個栗子: 積分專案,我頁面有兩個按鈕,啟用,停用。 選中一條記錄,啟用,停用,好使,再

(Overdraw)過度繪製什麼時候出現,如何檢視及如何解決

什麼是Overdraw? Overdraw就是過度繪製,是指在一幀的時間內(16.67ms)畫素被繪製了多次,理論上一個畫素每次只繪製一次是最優的,但是由於重疊的佈局導致一些畫素會被多次繪製, 而每次繪製都會對應到CPU的一組繪圖命令和GPU的一些操作,當這個操作耗時超過16.67ms時

Android 過渡繪製檢測和部分解決方法

過渡繪製 1.什麼是過渡繪製 過度繪製(Overdraw)是螢幕上的某個畫素在同一幀的時間內被繪製了多次。在多層次重疊的 UI 結構裡面,如果不可見的 UI 也在做繪製的操作,會導致某些畫素區域被繪製了多次,同時也會浪費大量的 CPU 以及 GPU

解決MySQL事務未提交導致死鎖報錯 避免死鎖的方法

解決mysql 事務未提交導致死鎖報錯:        當 sessionA 嘗試修改 B 表資料,因為 sessionB 當前為鎖定狀態,而且 sessionB 對 B 表中資料具有鎖定狀態中,則出現死鎖。sessionB 會自動終止嘗試修改 A 表資料事務, 兩個事務操作

ios 避免程式crash的有效解決方法

程式崩潰經歷 原始碼地址 https://github.com/frankzhuo/AvoidCrash   歡迎fork 其實在很早之前就想寫這篇文章了,一直拖到現在。 程式崩潰經歷1 我們公司做的是股票軟體,但整合的是第三方的靜態庫(我們公司和第三方公司合作,他們提供股

Canvas 在高清屏下繪製圖片變模糊的解決方法

問題: 用canvas繪製圖片的時候會模糊,但是用img顯示的時候就不會,canvas和img的大小是相同的  至於為什麼會變模糊,這和瀏覽器處理 canvas 的方式有關,相關的文章可以參考這篇 High DPI Canvas,這裡不作深入介紹。 下面是相關的程式碼:

學習過程遇到問題的解決方法

_exit 變量 prot 預定義變量 void col malloc() lee 項目組 1.select.sh 用sh -x 和bash -x的進行腳本調試時,前者會報錯誤,這是內置shell的原因。 2.awk內置函數使用時,定義變量需要用-v ;awk -v s

xcode 沒有 iphone4s 模擬器 的解決方法..

net 項目 time base 下載 word imu iphone bsp 我們的項目是8.0的, 要支持iphone 4s 讓我覺得很蛋疼。 首先是Xcode 8 沒有 iphone 4s的模擬器了。 由於線上安裝的方式,不管是在code的add si

ssh框架提交表單數據後,數據庫表出現問號?的解決方法

div nco pla play character isp 指定 提交表單 span 解決方法如下:連接數據庫的時候需要指定編碼方式,如下所示: jdbc.url = jdbc:mysql:///dbName?useUnicode=true&charact

Android SDK安裝時出錯“android Failed to rename directory”的解決方法

add size android-s 目錄 解決 androi director lpack lis Android SDK安裝時出錯“android Failed to rename directory”的解決的方法 安裝Android SDK時遇到Faile

登錄不了MySQL的解決方法

cal ble sql安裝 mysq where update 數據庫 安裝目錄 upd ERROR 1045 (28000): Access denied for user [email protected]/* */ (using password: NO)

bash: ./make_ext4fs: No such file or directory 錯誤解決方法

nodes tor for locks exec ++ 能夠 ipp option 一般出現該錯誤是因為應用程序是32位導致的,能夠使用file命令來查看: [email protected]/* */:~/Desktop$ file make_ext4fs

連接Mysql提示Can’t connect to local MySQL server through socket的解決方法

127.0.0.1 方式 mic div conn 三種 問題 ati my.cnf 轉:http://aiezu.com/article/mysql_cant_connect_through_socket.html 有時候,當我們使用“mysql”、“mysqladmin

谷歌瀏覽器提示Adobe flash player不是最新版本的解決方法

png per style bsp pla 重啟 mage mrm 管家 參考資料 https://jingyan.baidu.com/article/a3a3f811c3d5058da2eb8a39.html 如果電腦裏面有安裝各種軟件管家助手之類的的可以直接在