如何在電腦上監控安卓手機應用程序運行的CPU、內存等資源情況,並做成曲線圖


  做測試工程師十多年,手機測試接觸太少,請叫我小白吧。當我們拿到一個趨於成熟的安卓應用程序APP,老板發話了:幫我監控下這個APP的運行情況,我要知道這個APP短時間內執行某些操作,在手機上的內存、CPU占比情況,並做成曲線圖。平常我們抱着手機玩的時候,有哪位朋友會一直關注自己手機APP的性能呢,答案就是:老板。帶着這個問題,小白的我也是摸摸頭腦,想想辦法吧。

試過了幾種不同的方法:

1、直接在手機上安裝**監控應用,但效果不理想,果斷放棄;

2、在電腦上安裝了DDMS(Dalvik Debug Monitor Service),並成功連接手機,打開應用,終於看到連接進來了,有點小開心

 

選擇相應的應用,然后點擊Cause GC之后就可以看到我們應用的內存情況,如下圖:

 

雖然看到了內存的使用情況,但是沒辦法時時自動變化,形成曲線圖,而且也沒有顯示CPU占比,好吧,只能再次放棄了。

3、繼續尋找其他的辦法,就想到了使用adb shell,最終成功解決了,以下詳細介紹如何使用。

一、電腦要先安裝adb環境

安裝過程詳見我以往寫的博客https://www.cnblogs.com/bzdmz/p/10358152.html

確保adb命令可以正常使用。

二、打開APP進行監控

1、打開電腦運行cmd,打開運行窗口

2、進入shell腳本模式

D:\android>adb shell

3、打開APP,並在步驟2的窗口運行以下命令

PD1616B:/ $ top -d 1 |grep com.test.cc > /sdcard/test_01.log

-d 1:代表每1秒取一次數據

com.test.cc 為應用程序的包名,即只監控這個應用程序

也可以PD1616B:/ $ top -d 1 -p 8398> /sdcard/test_01.log

 -p 8398:即這個APP的進程號,不管你用哪種方法,只要確認監控的包沒錯即可。

 > /sdcard/test_01.log:將結果輸入到/sdcard/路徑下的test_01.log文件里

4、結束抓包,直接用ctrl + c

5、退出shell模式

PD1616B:/ $ exit

6、回到命令窗口,將文件導出到電腦

D:\android>adb pull /sdcard/test_01.log

[100%] /sdcard/test_01.log

7、在excel打開,並對數據進行過濾,再做成圖表

 

注意這里使用分隔符號

 

 

第二步使用空格隔開

 

 

第三步,可根據需要,把一些不需要的列,跳過即可

導進來的數據很亂,可進行整改,最后可調成為如下:

 

 

最后再將CPU和MEM做成圖表的形勢:

選中列數據,然后插入圖表,搞定。

 

 

 

8、如果覺得第7步操作太麻煩,而且很浪費時間,可以使用以下方法做成圖表:

1)將文件上傳到linux機器上

2)使用命令將CPU和內存數值讀取出來,然后再放到excel,做成曲線圖,完美,是不是感覺有點火箭般的速度了,

當然小白也是吃過苦的,因為前面第7步,要做表格的整理,實在太慢了,所以想到這個方法。

獲取內存%值:

cat test_01.log   |grep '8398' |awk '{print $10}'

 

獲取CPU%值:

cat test_01.log   |grep '8398' |awk '{print $9}'

 整個過程就是這么的辛酸,所以總結了一下,然后對大家有所幫助,如有高手還有其他更快捷的方法,歡迎留言賜教!

備注:此博客為本人原創,如有轉載請注明出處。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM