1. 程式人生 > >Android性能測試 一些適用於Android Studio的代碼審查和性能測試工具

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

保存 cpu apk 例如 conf 性能控制 app .org 位置

導言:

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:[email protected]/blog/static/121650342201312551147909/

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

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