1. 程式人生 > >Android應用UI效能分析

Android應用UI效能分析

一 如何對android應用進行記憶體效能分析?

     在使用App時會發現有些介面啟動卡頓、動畫不流暢、列表等滑動時也會卡頓出現這種情況,可以考慮對UI效能分析。首先要清楚卡頓的原因,有以下幾種情況:

  1. 人為在UI執行緒中做輕微耗時操作,導致UI執行緒卡頓;
  2. 佈局Layout過於複雜,無法在16ms內完成渲染;
  3. 同一時間動畫執行的次數過多,導致CPU或GPU負載過重;
  4. View過度繪製,導致某些畫素在同一幀時間內被繪製多次,從而使CPU或GPU負載過重;
  5.  View頻繁的觸發measure、layout,導致measure、layout累計耗時過多及整個View頻繁的重新渲染;
  6.  記憶體頻繁觸發GC過多(同一幀中頻繁建立記憶體),導致暫時阻塞渲染操作;
  7.  冗餘資源及邏輯等導致載入和執行緩慢;
  8.  臭名昭著的ANR;

二 如何分析UI效能?

       在android的sdk中提供了HierarchyViewer工具,我們可以通過HierarchyViewer來進行UI佈局複雜程度及冗餘等分析,啟動方式:

第一種:

  • 開啟terminal ,使用cd進入到sdk的tools目錄,如下我的:
$ cd /Users/xxx/programFiles/android-sdk-macosx/tools
  • 然後輸入啟動HierarchyViewer
$ hierarchyviewer

當然你也可以直接手動進入到sdk的tools目錄,找到HierarchyViewer工具,雙擊HierarchyViewer就可以啟動了。

第二種(推薦):

  • 開啟開發工具的ADM新增HierarchyViewer工具如下:


一個Activity的View樹,通過這個樹可以分析出View巢狀的冗餘層級,以及每個View在繪製的使用時長也有表示。

三 使用Android Lint進行資源及冗餘UI佈局等優化

    就是將滑鼠放在程式碼區點選右鍵->Analyze->Inspect Code–>介面選擇你要檢測的模組->點選確認開始檢測,等待一下後會發現如下結果:


參考: