ios 保持介面流暢的技巧
中詳細介紹了
cpu 資源消耗原因和解決方案
和 gpu 資源消耗原因和解決方案
,這裡面包括了開發中的大部分場景,可以幫助我們快速定位卡頓的原因,迅速解決卡頓。
uitableview-fdtemplatelayoutcell
善用hidden。
少用clearcolor,masktobounds,陰影效果等。
子執行緒預解碼(decode),主線程直接渲染。因為當image沒有decode,直接賦值給imageview會進行乙個decode操作。
優化大小,盡量不要動態縮放(contentmode)。
盡可能將多張合成為一張進行顯示。
uiimageview的image含有alpha channel(即使uiimageview的alpha是1,但只要image含有透明通道,則仍會導致blending)。
off-screen rendering即離屏渲染,指的是gpu在當前螢幕緩衝區以外新開闢乙個緩衝區進行渲染操作。
上下文切換,離屏渲染的整個過程,需要多次切換上下文環境(cpu渲染和gpu切換),先是從當前螢幕(on-screen)切換到離屏(off-screen);等到離屏渲染結束以後,將離屏緩衝區的渲染結果顯示到螢幕上又需要將上下文環境從離屏切換到當前螢幕。而上下文環境的切換是要付出很大代價的。
layer.mask,遮罩
layer.allowsgroupopacity為yes,layer.opacity的值小於1.0
layer.cornerradius,並且設定layer.maskstobounds為yes。可以使用剪下過的,或者使用layer畫來解決。
layer.shadows,(表示相關的shadow開頭的屬性),使用shadowpath代替。
兩種不同方式來繪製陰影: 不使用shadowpath
使用非同步進行layer渲染(facebook開源的非同步繪製框架asyncdisplaykit)。
設定layer的opaque值為yes,減少複雜圖層合成。
盡量使用不包含透明(alpha)通道的資源。
盡量設定layer的大小值為整形值。
直接讓美工把切成圓角進行顯示,這是效率最高的一種方案。
很多情況下使用者上傳進行顯示,可以在客戶端處理圓角。
使用**手動生成圓角image設定到要顯示的view上,利用uibezierpath(core graphics框架)畫出來圓角。
bitmap超過100ms沒有使用就會移除。
受系統限制,快取的大小為 2.5x screen size。
專案 開發手機app
一.安裝hbuilder,和夜神安卓模擬器 注 夜神模擬器,如過windows中安裝了hyper v,需要解除安裝,不然會宕機 二.hbuilder簡介 官網 文件 2.頁面框架架構 2.1 建立乙個html的空模板,將內容全部刪掉,通過mdo快速建立頁面 2.2 一定要指定body,不然容易將主頁...
專案 開發手機app
注 夜神模擬器,如過windows中安裝了hyper v,需要解除安裝,不然會宕機 官網 文件 2.頁面框架架構 2.1 建立乙個html的空模板,將內容全部刪掉,通過mdo快速建立頁面 2.2 一定要指定body,不然容易將主頁index覆蓋,注所有的頁面都是入口檔案index.html的子頁面 ...
手機APP系統開發流程
1.需求溝通,分析 2.原型圖設計 此階段中偶要根據需求分析的結果,對整個軟體系統進行設計,如系統框架設計 資料庫設計等。軟體設計一般分為總體設計和詳細設計。還的軟體設計將為軟體程式編寫打下良好的基礎。軟體原型圖設計可以分為概要設計和詳細設計兩個階段。實際上軟體設計的主要任務就是將軟體分解成模組是指...