1. 程式人生 > >Android應用效能測試之CPU和記憶體佔用

Android應用效能測試之CPU和記憶體佔用

 最近發現自己學的很多東西沒有做好積澱的工作,也萌生了寫一些東西的念頭。本人也沒有寫部落格的習慣,下邊就寫一下手機端的效能測試

  最近公司,要我們從事對競品的效能測試,我負責CPU和記憶體的效能測試,下面就和大家來分享一下android應用程式的CPU和記憶體的效能測試。

  首先稍做分析一下測試環境:我們知道CPU和記憶體佔用是一個實時變化的狀態,而市面上還沒有具體的哪款android應用能做到實時監控CPU和記憶體佔用並使用log日誌儲存。考慮到android的底層框架是基於Linux的平臺,所有我們可以通過Linux的資源監控命令來實現對android平臺的資源實時監控。

  要做到上邊的測試環境的實現,需要具備以下幾點:

  1、被測試的手機具備root許可權:因為涉及到底層的linux命令,需要讀取或執行相應的檔案。至於如何root你的手機,不同型號的手機root的方法不一樣,這裡就不做介紹了。具體的可以在網上搜索一下自己手機型號的root教程,這裡就不做介紹了。

  2、需要搭建android的開發環境:因為我們需要監控的是具體的某個應用資源佔用的情況,所以需要知道這個應用對應的“安裝的包名”是什麼,這就需要使用android開發環境中DDMS模組中的Devices中檢視,當啟動被測軟體時,其主應用程式的安裝包名一般就會在列表的最下端出現(如google地圖等除外,開機就啟動了)。

  通過上邊的截圖我們可以看到百度

地圖的主程式包名為:com.baidu.BaiduMap

  由於篇幅有限,具體的android開發環境的搭建流程,可以參見網路上的教程,這裡就不贅述了。

  3、通過Linux命令監控。前邊都是一些初始的準備條件,下邊其實就是實際的操作流程:

  (1)adb shell (進入linux的底層)

  (2)echo 3>/proc/sys/vm/drop_caches (清除一下系統cache)

  (3)top -d 1 | grep com.baidu.BaiduMap (以百度地圖為例,每一秒列印一次資源利用情況)

  至於上邊每一列代表什麼含義呢?由於使用到了複合查詢“管道符”的方式,所以必須擁有root許可權,否則grep的命令無法識別。

  在這裡我們看到cmd並沒有顯示出所對應的列的標題,所以我們可以單獨通過top命令來了解到:

  至於以上各列的含義我不說我想大家也應該猜得到了,在這裡僅說一下我們要用到的兩個引數,其他的可以再網上查詢瞭解:

  |--CPU%:CPU佔用率

  |--RSS:實際佔用的實體記憶體數,單位KB

  我們可以針對不同的業務,打印出不同的“標籤”,用於區別現在從事的那個業務,併為後期分析各業務模組中CPU和記憶體的佔用以及對比使用。

  上邊就是對具體的某款android應用的評測的資料的獲取,我們將日誌複製到excel的表格中,並畫出相應的資料表。

  最後,可以根據得到的圖表進行效能分析(多款同類軟體進行比較),得出本公司軟體的評審標準出來。

  大家有什麼看法意見,請及時拍磚~

原創作品,轉載時請務必以超連結形式標明本文原始出處、作者資訊和本宣告,否則將追究法律責任。