安卓性能(adb、測試報告)

安卓性能測試數據獲取及生成html測試報告

  • 獲取設備信息

獲取設備廠商:adb -s devicesid shell getprop ro.product.brand

獲取設備型號:adb -s devicesid shell getprop ro.product.model

獲取設備系統版本:adb -s devicesid shell getprop ro.build.version.release

  • adb命令監測(指定設備)app相關性能信息

1. 安裝apk

adb install <apk文件路徑>,將指定的apk安裝到設備上,安裝的apk包會放在/data/app目錄下。

幾個參數:

-r 強制安裝

-d(真機,多個設備中只有一個真機時適用)

-e(模擬器,多個設備中只有一個模擬器時適用)

-s(指定設備,後接序列號)

eg:adb –s 44a188f9 install –r test.apk(安裝測試包到指定的移動設備,其中44a188f9即序列號,通過adb devices獲取)  

     2. 卸載app

adb [-s devicesiduninstall pakagename>

     3. adb pull adb push

adb pull <設備中的文件路徑> <本地路徑>:從模擬器或設備中複製文件到本地。

adb push <本地文件路徑> <設備中的路徑>:將本地文件或目錄複製到模擬器或設備。

     4. 獲取啓動時間

adb  [-s devicesid]  shell am start -W –n <packageName>/<activityName>

如果只關心某個應用自身啓動耗時,參考TotalTime

如果關心繫統啓動應用耗時,參考WaitTime

如果關心應用有界面Activity啓動耗時,參考ThisTime

    5. 內存使用率

adb [-s devicesidshell dumpsys meminfo <pakagename>

    6. CPU佔有率

  1. adb [-s devicesidshell top -d 1| grep <pakagename>  指定設備每一秒鐘打印一次app資源使用情況無限循環,可使用control+C終止
  2. adb [-s devicesid]  shell dumpsys cpuinfo 不同設備的輸出信息有可能不同

    3.  adb [-s devicesidshell cat /proc/pid /stat 查看指定進程的cpu佔用

        adb [-s devicesidshell cat /proc/stat 查看總體的cpu佔用

    7. 功耗

adb  [-s devicesidshell dumpsys battery

    8. 流量

adb  [-s devicesid]  shell cat /proc/net/xt_qtaguid/stats|grep <uid>|grep wlan0

  •  數據分析

https://www.cnblogs.com/fightfordream/p/7072966.html

Pandas數據處理之分組統計

cut()函數可以將一個數組中的數據切分成幾個部分。

將數據分爲幾個部分,就稱爲幾個面元。

cut(數據數組,面元數組)

還可以不指定面元的界限,直接傳入一個整數參數,cut()會按照指定的數字,將元素劃分爲相應的幾部分

相應步驟:

1.切割面元:cat = pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)

2.統計每個面元有多少個元素:ser = pandas.value_counts(cat)

3.根據索引排序:ser = ser.sort_index()

4.數據名:ser.name='柱形圖原始數據

  數據字段名:ser.index.name='數據區間'

eg:數據區間

    (6.987,9.6]    1

    (9.6,12.2]     0

    (12.2,14.8]    0

    (14.8,17.4]    0

    (17.4,20.0]    1

    Name: 柱形圖原始數據,dtype: int64

將上述數據存儲爲字典列表:

data = [

       {'interval':str(ser.index[0]),'number':ser.values[0]},

       {'interval':str(ser.index[1]),'number':ser.values[1]},

       {'interval':str(ser.index[2]),'number':ser.values[2]},

       {'interval':str(ser.index[3]),'number':ser.values[3]},

       {'interval':str(ser.index[4]),'number':ser.values[4]}

    ]

  • 圖表繪製

https://antv.alipay.com/zh-cn/g2/3.x/tutorial/index.html

       //圖表繪製的數據需爲json格式

       function strToJson(str){

           var json = JSON.parse(str);

           return json;

       }

       // 安裝耗時分析柱形圖

       var data = "{{ data['Analysis']['searchInstall'] }}";  //jinja2接收數據

       data = data.replace(/&#39;/g, "\""); //將/&#39;/g替換爲字符"

       data = strToJson(data); //轉化爲json

       const chart = new G2.Chart({

           container: 'c1', 

           width : 528, 

           height : 226  

       });

       chart.source(data);

       chart.interval().position('interval*number').color('interval');

       chart.render();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章