Android效能測試 一些適用於Android Studio的代碼審查和效能測試工具

來源:互聯網
上載者:User

標籤:androidstudio   android   效能測試   

 

導言:    

      Android應用在CPU佔用,記憶體消耗方面的效能指標是影響產品品質的重要因素,由於QQ管家,360手機小幫手等應用都提供直觀的記憶體消耗,流量監控功能,致使使用者比以往更加關注軟體的效能,並以此進行軟體選用的決策。

     目前,已經有很多可以監控android app 效能的工具可以供開發人員使用,如:基於Eclipse外掛程式體系的MAT,其通過產生.hprof檔案對記憶體泄露情況進行排查;記憶體偵查工具APT:提供CPU利用率即時曲線圖,方便對比測試記憶體泄露問題[圖0-1]

圖 0-1  通過APT即時監測android應用的記憶體和CPU使用方式

 

    目前最成熟的android效能監測工具往往是發跡於eclipse-ADT時代,而在android-studio日益穩定的如今,android開發人員已經有了更好的選擇(遙想3年前用的第一個版本的android studio,跟現在比已經不可同日而語),從 google官網已經不再提供adt整合開發境的下載可以看出,android-studio已經是大勢所趨。本文由淺入深的總結幾個適用於android-studio的android品質控制工具

 

一 lint for android studio工具

     在效能測試之前,首先要對工程源碼進行排錯和調優。Android Lint 可以通過掃描和檢查對Android工程可能存在的問題進行審查,其是一種靜態測試載入器,通過發現代碼中可能存在的問題來在應用發布前保證程式品質。 早期的lint工具可以與Eclipse整合,如今android-studio已經內建這一工具。通過在工程標題上右鍵->Analyze->Inspect Code可以開啟該工具。

圖   1-1   在android-studio中調用lint

 Android Lint可以檢查出的錯誤包括:

  1. Missing translations (and unused translations) 沒有翻譯的文本
    2. Layout performance problems (all the issues the old layoutopt tool used to find, and more) 布局效能
    3. Unused resources未使用的冗餘資源
    4. Inconsistent array sizes (when arrays are defined in multiple configurations)在多個配置中的數組大小不一致檔案
    5. Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
    6. Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
    7. Usability problems (like not specifying an input type on a text field)
    8. Manifest errors

     雙擊錯誤資訊,可以看到錯誤的詳情介紹和在代碼中的位置。(這裡的錯誤往往不是異常或error,而是你代碼中可以進一步最佳化的部分)

                圖1-2  使用android studio lint 最佳化代碼

 

    代碼沒有問題後,就可以將程式run起來,進行下一步的記憶體和CPU監測了。

 

二 Memory Monitor

 

    Memory Monitor 是android studio 提供的效能分析工具, 可以通過視圖直觀的看到android應用的記憶體,CPU佔用情況。

    程式運行後,觀察IDE底部的如下視圖:

                  圖 2-1  Memory Monitor 視圖(1)

     現在可以再avd上或真機上對應用進行操作,Memory Monitor可以反映出當前操作帶來的CPU和記憶體變化。

                    圖 2-2  Memory Monitor 視圖(2)

 

    作為Android初學者感覺android-studio內建的監控工具已經非常直觀和強大,不知道以後會不會接觸到更加優秀的開源效能測試項目。 作為美中不足,android-studio的監控功能不能夠輸出,所以也不方便統計和橫向對比。 同時,流量的監控也不被包括其中。下面介紹一種可以輸出表單的,直接運行於真機/模擬器的開源項目:Emmagee

 

三 Android效能測試工具:Emmagee

 

  Emmagee的功能包括:

  • 檢測被測應用佔用的CPU使用率和總體使用量
  • 檢測被測應用的記憶體佔用量及百分比
  • 檢測流量消耗

 

改項目的真正流弊之處還在於,它不是一種嵌入式工具,而是一個單獨的app。所以完全不依賴於開發環境。

Git 地址: https://github.com/kevinkong/Emmagee

Apk地址:http://code.google.com/p/emmagee/downloads/list

使用方式:

  • 啟動Emmagee
  • 選擇被監控程式
  • 對被監控程式進行操作
  • 返回Emmagee介面,結束監控
  • 匯出結果表單

 

Emmagee 介面如所示,我選擇監控自己的一個app:alicom-in 。

圖 3-1  Emmagee啟動介面

       開始測試後,被測應用會自動啟動。 這裡可以對被測應用進行一些操作,然後返回Emmagee介面,選擇結束應用。結果表單會被儲存到指定目錄。

        

            圖3-2   Emmagee 結束錄製      

 使用excel開啟表單。

                  表3-1  Emmagee 輸出結果

     通過excel內建的表格工具可以對該表單進行分析,也可以進一步比對不同app的測試結果。

                  圖3-3  使用excel直觀觀察各指標檢測結果

 

四 總結和展望

 

Android應用效能指標是開發人員和使用者所關注的重點,為了對今後的用戶端開發工作進行技術儲備,為團隊提供先驗知識,今天瞭解了適用於Android Studio的效能保證工具。包括:

1 android studio靜態代碼審查工具 lint

2 android studio 記憶體,CPU即時監測工具Memory Monitor

3 android應用資料統計工具Emmagee

 

      這三種工具具有初步支援android開發人員對程式效能進行關注的能力。同時,也存在一些不足,比如說Memory Monitor和Emmagee需要互補對方的缺點,如果有一個工具既能即時監控,又能輸出表單(包括流量監控結果),就更好了。 另外,Emmagee工具雖然可以對整個應用的效能指標作出觀測,但是具體由哪一個函數或服務引起了效能問題,則需要開發人員的進一步排查。 當需求不僅僅是效能控制,而是需要效能調優時,這種功能上的缺憾就不容忽視了。

 

實際上,今天也瞭解到另一個工具:Traceview , 其可通過在關鍵代碼前後設定監視斷點來統計各個函數對應用效能帶來的影響,這將對提高應用效能起到關鍵作用,也是我下一步學習的重點。

 

參考文獻:

1 《效能測試 - Android篇》http://www.atatech.org/articles/36920

2《Android系統效能調優工具介紹》http://www.atatech.org/articles/16013

3《Android效能測試工具Emmagee介紹  》http://blog.163.com/[email protected]/blog/static/121650342201312551147909/

4《Android效能測試工具:Emmagee》http://www.open-open.com/lib/view/open1367026451078.html

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android效能測試 一些適用於Android Studio的代碼審查和效能測試工具

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.