快速測試Android應用性能

動機

這篇文章的目的是為了給懶人一個快速測試Android應用的方法. 能夠在不多的時間內更有效率的發(fā)現(xiàn)移動應用的性能問題.

準備

在進行測試之前, 首先要確認一下是否已經準備好了所需要的工具:

  • 待測應用(最好是debug版本)

這個不必多說, 功能不完備, 或者還存在突出功能bug的應用還是先修好再測試吧. 需要非混淆的debug版本是為了測試內存泄露.

  • Android SDK 工具

Android SDK中提供了各種各樣的工具, 我們可能會需要:

  • adb
  • DDMS
  • hprof-conv (轉換ddms上dump下來的prof文件用)
  • 抓包工具Fiddler/Charles/Wireshark (會一種就可以)
  • Android Studio
  • MAT
  • Uiautomator Viewer

開始測試

CPU占用

既然是快速測試,我們只關注一個點: 靜默時的內存消耗
你可以進入自己想要測試的畫面, 反復操作幾次, 放置一段時間, 不需要太長, 半分鐘就可以. 然后觀察CPU的消耗.

如果對于數據展示不挑剔的話, 可以使用top命令:

adb shell "top -n 50 -d 1 | grep my.app.packagename$"

my.app.packagename是待測應用的包名
-n 參數代表輸出行數
-d 參數代表輸出的間隔
這段命令就是用top命令打印出來 my.app.packagename 這個包的cpu占用和內存使用情況, 每隔1秒, 打印出來一條, 一共輸出50條

如果發(fā)現(xiàn)CPU的在應用的idle狀態(tài)下仍然持續(xù)占用, 就說明是程序的bug了.

Android Studio中集成了CPU的觀察工具, 如果是debug包, 可以通過Android Studio上的CPU窗口直觀的觀察CPU占用情況.

內存泄露

內存泄露是Android開發(fā)上很容易發(fā)現(xiàn)的問題. 可以集成第三方的泄露工具進行監(jiān)控. 也可以使用DDMS + MAT(Eclipse Memory Analyser Tool) 進行分析. 需要debug且最好非混淆的apk包.

具體步驟:

  • 從手機上進入應用, 進入要測試的頁面, 進行操作. 這里建議同樣的操作反復執(zhí)行2~3次.
  • 打開DDMS, 通過USB連接手機. 操作結束后GC 1~2次. 然后dump prof文件.
  • 使用 hprof-conv 轉化 prof 文件, 例如, 轉換 xxx.prof 文件為 result.prof文件
hprof-conv xxx.prof result.prof
  • 使用MAT打開轉換后的prof文件. MAT會自動分析文件, 然后會提示你選擇何種類型的報告, 不用選擇任何形式的報告, 直接cancel.
  • 點開 Histogram 在 Class Name 欄搜索 "activity". 搜索的結果上, Objects列不為1的對象就是泄露的對象.

流量占用

移動端的流量使用盡可能小, 接口調用次數盡可能少, 網絡圖片盡可能小, 數據傳輸不要太大.

通過抓包工具進行抓包. 抓到的結果中:

  • 查看總的流量, 一般不要太大. 打開單個頁面不宜超過 400KB. 因為3G下我們的網速可能會在50KB~80KB 之間, 使用5秒鐘以上打開一個頁面, 體驗不會好.
  • 查看單個鏈接, 不應該有重復的鏈接.
  • 觀察圖片大小, 單張圖片超過 50KB 都需要我們給與足夠重視.
  • idle狀態(tài)下是不是會有持續(xù)的網絡傳輸. 如果有, 就應該仔細調查一下.

圖層

使用Uiautomator Viewer觀察視圖結構, 越復雜描畫代價越高.

總結

性能測試包含其實很廣, 也涉及到比較深入的內容. 本文希望能夠通過盡量簡單的步驟, 讓每個人都能快速的發(fā)現(xiàn)應用瓶頸.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末剑按,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子松靡,更是在濱河造成了極大的恐慌歧寺,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異勾笆,居然都是意外死亡,警方通過查閱死者的電腦和手機桥滨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弛车,“玉大人齐媒,你說我怎么就攤上這事》柞耍” “怎么了喻括?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贫奠。 經常有香客問我唬血,道長,這世上最難降的妖魔是什么唤崭? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任拷恨,我火速辦了婚禮,結果婚禮上谢肾,老公的妹妹穿的比我還像新娘腕侄。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布冕杠。 她就那樣靜靜地躺著微姊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪分预。 梳的紋絲不亂的頭發(fā)上兢交,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天,我揣著相機與錄音笼痹,去河邊找鬼配喳。 笑死,一個胖子當著我的面吹牛与倡,可吹牛的內容都是我干的界逛。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼纺座,長吁一口氣:“原來是場噩夢啊……” “哼息拜!你這毒婦竟也來了?” 一聲冷哼從身側響起净响,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤少欺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后馋贤,有當地人在樹林里發(fā)現(xiàn)了一具尸體赞别,經...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年配乓,在試婚紗的時候發(fā)現(xiàn)自己被綠了仿滔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡犹芹,死狀恐怖崎页,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情腰埂,我是刑警寧澤飒焦,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站屿笼,受9級特大地震影響牺荠,放射性物質發(fā)生泄漏。R本人自食惡果不足惜驴一,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一休雌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肝断,春花似錦挑辆、人聲如沸例朱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洒嗤。三九已至,卻和暖如春魁亦,著一層夾襖步出監(jiān)牢的瞬間渔隶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工洁奈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留间唉,地道東北人。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓利术,卻偏偏與公主長得像呈野,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子印叁,可洞房花燭夜當晚...
    茶點故事閱讀 43,687評論 2 351

推薦閱讀更多精彩內容