Flex 移動應用效能 之 快速優化

2021-06-27 02:47:20 字數 2984 閱讀 4237

引用 sina blog  

關於 flex 移動應用的效能優化, 我把它總結為 快速優化 和深度優化, 此篇博文我只介紹 快速優化 這一塊, 至

於 深度優化 我以後有時間再考慮寫吧.

以下是我個人開發經驗的總結, 教你10招快速優化 flex 移動應用:

installer.html

具體的安裝教程, 請參見我以前 這篇博文 的第3部分

direct 渲染模式比預設的 auto 渲染模式快很多.

注意不要將渲染模式設定為 gpu, 因為 flex 應用不大相容此模式.

4.注意 

requesteddisplayresolution

標籤可能不只1個, 記得全部找到並啟用(即反注釋).

設定為 high 是為了適應配備了視網膜螢幕的裝置(包括移動和桌面裝置), 以便後期實現應用程式的 dpi 自動縮放.

5. 在 flex 專案中, 將主應用程式 mxml 根標籤的 framerate (幀率)屬性設定為 24 - 30, 推薦 30.

最低不要低於 24, 否則應用裡的所有動畫效果會沒有連續感;

最高不要超過 30, 否則應用裡的

動畫效果在

6.(注意, 此步驟僅適用於 flex 移動應用, 不要在 桌面 或瀏覽器

應用上進行如下設定)

大部分測試全部在標清電腦螢幕上進行(也就是現在常見物理畫素密度為 96 dpi 的顯示器了), 然後 runtimedpiprovider 屬性一定要設定為自己的實現類, 比如 runtimedpiprovider="providers.******runtimedpiprovider".

以下是我實現的 ******runtimedpiprovider 類的源**, 只提供截圖, 有心的程式設計師自己敲一遍, 浮躁的程式設計師請直接離開 : d

設定好runtimedpiprovider 屬性以後,

你的 flex 移動應用就可以動態執行時自動縮放整體 ui 來適應所有主流的(但不是全部的) 手機 和 平板裝置的螢幕, 如果你用的都是向量素材, 那麼縮放將不會失真.

在這個例子中

縮放的比率 =

對於要執行在 ios 平台的 flex 移動專案, 其主應用程式 mxml 根標籤上最好不要設定 splashscreenimage, splashscreenscalemode 和 splashscreenminimumdisplaytime 這些屬性, 這會拖慢應用的啟動速度, 推薦的方法是用 ios 平台自己的啟動畫面機制, 即直接在 flex 專案的 src 目錄下放置下圖中列出的1個或多個啟動畫面的檔案:

有關 ios 啟動畫面的詳細使用說明, 請參見 adobe 官方教程: ios 啟**像

8. 編寫 flex 移動應用時要注意,

減少不必要的渲染是首要目標, 記憶體**

只是其次, 這一點跟桌面平台恰好相反.

舉個例子, 如果想做乙個移動平台上用的列表元件, 那麼正確的做法是:

列表的所有專案呈現器盡量在同乙個渲染時機一起渲染, 而不要等乙個專案呈現器渲染完了再接著渲染下乙個, 同時限制列表裡專案呈現器

的總個數, 要學會分頁顯示, 比如規定列表1次最大只承載24個專案呈現器, 當使用者滾動到列表尾部的時候, 先將列表頭部的6-12個專案資料來源刪除, 再往列表尾部加入後面的6-12個專案資料來源, 或者直接將24個專案資料來源的內容進行平移更新(這種方法叫資料平移), 這樣可以大大減少反覆渲染專案呈現器

的次數.

在移動平台上, 列表元件典型的錯誤做法是:

允許列表一次性承載幾十個上百個甚至更多的專案呈現器, 不分頁顯示, 只將螢幕上當前能看到的專案呈現器進行渲染, 而將螢幕上當前看不到的專案呈現器進行記憶體**, 這樣一來當使用者滾動列表的時候, 會出現頻繁地建立和渲染新的專案呈現器, 並且頻繁地

移除和**舊的專案呈現器, 這樣做雖然節省了記憶體, 但是嚴重消耗了 cpu 的效能, 以至於列表滾動稍微快一點程式就會爆卡, 因此這種做法只適合桌面平台, 而不適合移動平台.

這也就是為什麼我說移動平台在效能優化方面的考慮跟桌面平台剛好相反了, 在移動平台上減少不必要的渲染是最重要的, 而記憶體**必須在不增加渲染負擔的情況下進行!

9. 學會正確使用 cacheasbitmap 和 opaquebackground 等這些動態快取點陣圖的特性, 它們雖然會提高應用的記憶體消耗, 但可以有效減少對向量圖的反覆渲染.

其關鍵點是, 這2個屬性只適合在 需要頻繁移動位置, 但不頻繁改變自身寬高和子內容的顯示, 自身寬高不是太大(寬高各不超過 500 px) 的向量顯示物件上, 比如在 專案呈現器 上常有必要用

, 而不要在大型顯示物件上用, 那樣記憶體會耗盡, 應用反而會變慢甚至崩潰.

10. 匯出發行版的最終應用, 即在 flash builder 裡對專案進行 export release build.

在 flash builder 的 export release build 視窗下點了 next 按鈕之後, 在下乙個頁面裡點 customize launch... 按鈕, 在彈出的視窗中點 add parameter... 按鈕, 在 name 一欄填入 -uselegacyaot, 在 value 一欄填入 no, 在 place before 右邊的下拉框中選中 -provisioning-profile, 如下圖所示:

然後按下 ok 按鈕儲存, 接下來把證書和要打包的檔案之類的都配置好, 按下 finish 按鈕後即可用新的 adt 打包引擎開始打包 ipa 檔案.

以上就是我教給大家的10招快速優化 flex 移動應用效能的方法, 按上面的步驟做了以後, 你 flex 移動應用的效能會有明顯提公升, 但也許還不足以達到產品級別, 要達到產品級別需要進行深入優化, 這個等哪天我心情好再寫吧 : )

移動應用效能優化技術 摘抄1

測試的執行過程是被監控的,在所有針對不同使用者負載的應用程式響應被測試完之後,其結果也會對比事先定義好的服務水平協議得到全面的分析。效能測試工具可提供問題診斷功能,幫你找出根本原因從而快速解決。七 移動應用效能優化技術 移動應用的效能優化技術取決於特定的應用極其瓶頸特性。我們在這裡分享幾個通用的優化...

Android應用效能優化

記憶體,ui,電量 1.記憶體 首先簡單介紹一下android系統記憶體管理機制.記憶體共享 預設情況 string vmheapsize systemproperties.get dalvik.vm.heapsize 16m 只有16m.可以通過在device.mk檔案中設定 product pr...

Android應用效能優化

1 anr 2 listview 卡頓,不流暢 3 activity啟動慢 4 動畫不流暢,啟動前卡頓 5 自定義view啟動慢 6 oom 7 資料庫大量操作 8 長時間執行後,程式變慢 1 語言層解決問題,語法上提高效能 2 合理的資料結構和演算法 3 布局優化,布局深度控制 4 工作執行緒與u...