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

來源:互聯網
上載者:User

標籤:==   lan   ror   array   資料   分享   font   視圖   開發人員   

 

導言:    

      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工具

     在效能測試之前,首先要對project原始碼進行排錯和調優。Android Lint 能夠通過掃描和檢查對Androidproject可能存在的問題進行審查。其是一種靜態測試工具。通過發現代碼中可能存在的問題來在應用公布前保證程式品質。 早期的lint工具能夠與Eclipse整合。現在android-studio已經內建這一工具。

通過在project標題上右鍵->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應用效能指標是開發人員和使用者所關注的重點。為了對今後的client開發工作進行技術儲備。為團隊提供先驗知識,今天瞭解了適用於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.