日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

APP性能测试之功耗测试

發(fā)布時間:2023/12/20 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 APP性能测试之功耗测试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

功耗,通俗的理解即電流通過導(dǎo)體使設(shè)備運行,導(dǎo)體本身的電阻將電能轉(zhuǎn)換為熱能的過程,因此,通常功耗測試也叫電量測試

耗電量測試是指測試App在運行過程中消耗的能量。設(shè)備運行期間消耗能量公式:W = w * t = U * I * t

  • w表示單位時間耗電量
  • U為電池供電電壓
  • I為電流值
  • t為測試時間 通常來說U可以認為不變,對于平穩(wěn)的測試過程,耗電量與測試時間成正比。

移動設(shè)備功耗

由于移動設(shè)備的電池容量限制,所以對于App的功耗也是需要考慮的一個方面。Android的很多特性都比較耗電(如屏幕、GPS、sensor傳感器、喚醒機制wakelock、CPU、連網(wǎng)等等),我們必須要慎重檢查APP的電量使用,以免導(dǎo)致用戶手機過度耗電發(fā)熱,帶來不良體驗。

主要的耗電場景有:

  • screen:屏幕顯示畫面會耗電。
  • cpu:復(fù)雜的運算邏輯、死循環(huán)等會直接導(dǎo)致CPU負載過高,會導(dǎo)致耗電;
  • wakelock:喚醒鎖,只要有應(yīng)用拿到wakelock這個鎖,系統(tǒng)就無法進入睡眠狀態(tài)。頻繁wakelock或者申請了wakelock沒有釋放,會導(dǎo)致耗電;
  • wifiscan和wifilock:wifiscan和wifilock也會導(dǎo)致手機的wifi模塊處于激活狀態(tài),頻繁的wifiscan或者wifilock不釋放,會導(dǎo)致耗電;
  • sensor:傳感器打開后會導(dǎo)致系統(tǒng)持續(xù)監(jiān)聽設(shè)備外圍環(huán)境的數(shù)據(jù)變化,使用后不及時關(guān)閉,會導(dǎo)致耗電;
  • network:大量的數(shù)據(jù)傳輸,或者長時間的移動網(wǎng)絡(luò)數(shù)據(jù)傳輸會導(dǎo)致耗電;
  • gps:gps也是一種傳感器,定位中完成后沒有及時關(guān)閉,會導(dǎo)致耗電。

Android功耗

目前很多定制Android 系統(tǒng)支持查看App耗電量查看,如下圖所示是魅族Flyme系統(tǒng)的應(yīng)用電量消耗圖。

Android 電量測試

API

按照Android 系統(tǒng)規(guī)則,設(shè)備制造商必須在/frameworks/base/core/res/res/xml/power_profile.xml中提供組件的電源配置文件,該配置文件定義了每個耗電項的具體計算單位,內(nèi)容樣例可以點擊查看 power_profile.xml

但是從Android 4.4開始系統(tǒng)電量權(quán)限做了嚴格的限制,隨著現(xiàn)在系統(tǒng)版本越來越高,使用API獲取電量不太現(xiàn)實。

硬件工具

基于基于硬件的測試方案,使用用電量表來測試手機耗電量。該方法優(yōu)點是測試比較精準,同樣缺點也很明顯缺點:采購成本高,測試的是整個手機,不是被測APP,測試時要減少系統(tǒng)本身和其他app的干擾。得到數(shù)值無法直接參考,不知道合理還是偏高。不能給出進一步參考,比如具體哪個app方面消耗電量比較多。

batterystats

使用dumpsys batterystats 命令可用來生成關(guān)于設(shè)備電池使用情況的統(tǒng)計數(shù)據(jù),這些數(shù)據(jù)按唯一用戶 ID (UID) 進行整理。統(tǒng)計信息包括以下內(nèi)容:

  • 電池相關(guān)事件的歷史記錄
  • 設(shè)備的全局統(tǒng)計信息
  • 每個UID 和系統(tǒng)組件的大致用電量
  • 單個應(yīng)用的每個數(shù)據(jù)包占用的移動網(wǎng)絡(luò)毫秒數(shù)
  • 系統(tǒng) UID匯總統(tǒng)計信息
  • 應(yīng)用 UID 匯總統(tǒng)計信息

bugreport

Android為了方便開發(fā)人員分析整個系統(tǒng)平臺和某個App在運行一段時間之內(nèi)的所有信息,專門開發(fā)了bugreport工具。輸入命令adb bugreport [filepath]/即可執(zhí)行信息采集,并生成zip或者txt文件格式的數(shù)據(jù)文件。

Battery Historian

Batterystats 是包含在 Android 框架中的一種工具,用于收集設(shè)備上的電池數(shù)據(jù)。您可以使用 adb 將收集的電池數(shù)據(jù)轉(zhuǎn)儲到PC,并創(chuàng)建一份可使用分析的報告。Battery Historian 會將報告從 Batterystats 轉(zhuǎn)換為可在瀏覽器中查看的 HTML報告。

注意:要使用 Batterystats 和 Battery Historian,您需要一臺搭載 Android 5.0 或更高版本且啟用了 USB 調(diào)試功能的移動設(shè)備。

電量數(shù)據(jù)收集

1、收集電池的歷史數(shù)據(jù)

adb shell dumpsys batterystats --enable full-wake-history

2、重置電池數(shù)據(jù)

adb shell dumpsys batterystats --reset

3、斷開設(shè)備與電腦的連接,以便只從設(shè)備的電池中消耗電流,然后執(zhí)行指定的App進行相關(guān)操作。

4、使用命令adb bugreport導(dǎo)出電量信息結(jié)果,這里需要注意的是Android 7.0以上系統(tǒng)版本和Android 7.0以下命令不同。

Android 7.0以上系統(tǒng)版本:

adb bugreport C:\Users\Shuqing\Desktop\bugreport.zip

Android 7.0以下系統(tǒng)版本

獲取bugreport信息(記錄了從開機之后詳細的dumpsys,dumpstate和logcat信息)

adb bugreport > [path]bugreport.txt??

獲取dumpsys信息(獲取系統(tǒng)信息:比如內(nèi)存CPU,accounts,activities,wifi等信息)

adb shell dumpsys batterystats > 存放的電腦地址/batterystats.txt

或者獲取指定的應(yīng)用程序的dumpsys信息:

adb shell dumpsys batterystats > 包名 > 存放的電腦地址/batterystats.txt

電量數(shù)據(jù)解析

Battery Historian 一款由Google提供的Android系統(tǒng)電量分析工具,從手機中導(dǎo)出bugreport文件上傳至頁面,在網(wǎng)頁中生成詳細的圖表數(shù)據(jù)來展示手機上各模塊電量消耗過程,最后通過App數(shù)據(jù)的分析制定出相關(guān)的電量優(yōu)化的方法。

1、使用Battery Historian需要在本地安裝,最簡單的方法使用docker安裝,然后執(zhí)行如下命令。

docker run -d -p 9999:9999 bhaavan/battery-historian

執(zhí)行完成后使用瀏覽器打開鏈接:http://localhost(IP):9999 即可看到Battery Historian界面。

?http://點擊鏈接加入群聊【軟件測試交流群】:https://jq.qq.com/?_wv=1027&k=Ts5N8qumhttp://點擊鏈接加入群聊【軟件測試交流群】:https://jq.qq.com/?_wv=1027&k=Ts5N8qum?_wv=1027&k=Ts5N8qum

注意

上傳生成的報告文件然后點擊submit提交即可,如果上傳后沒有顯示submit按鈕,則需要科學(xué)上網(wǎng)。原因是因為web某些資源沒有加載出來,其中的一些資源需要訪問Google服務(wù)器,但是這些資源被墻了,無法訪問。只要解決了墻的問題,submit的問題也就迎刃而解了。

如果不想在本地搭建環(huán)境,那么可以訪問在線的解析平臺:https://bathist.ef.lc/ (網(wǎng)站可能打不開,原因你懂的)

查看整體電量數(shù)據(jù)

上傳數(shù)據(jù)解析之后如下圖所示,可以查看到詳細數(shù)據(jù)展示。

  • 橫坐標是一個時間范圍。以重置為起點,獲取bugreport內(nèi)容時刻為終點。坐標的間隔,會隨著時間的長度發(fā)生改變。
  • 縱坐標是消耗電量的具體內(nèi)屬性。
  • 黑色曲線是測試過程中整體的電量信息。將Show bars的勾選去掉可以只展示該曲線。

重點參數(shù)說明:

  • battery_level:剩余電量,可以看出電量的變化。
  • plugged:充電狀態(tài),這一欄顯示是否進行充電,以及充電的時間范圍。
  • Longwakelock:該屬性記錄了長時間使設(shè)備保持喚醒的進程。
  • screen:屏幕是否點亮。可以用于考慮睡眠狀態(tài)和點亮狀態(tài)下電量的使用信息。
  • top app:該欄顯示當前時刻哪個app處于最上層,就是當前手機運行的app。用來判斷某個app對手機電量的影響。
  • Coulomb charge電量消耗值,單位毫安時mAh。
  • Temperature 電池溫度。
  • discharge rate 放電率,是表示電池放電快慢的一種度量。

查看單個進程電量消耗數(shù)據(jù)

在App Selection中選擇指定的App進程,即可查看該進程的耗電數(shù)據(jù)。

iOS功耗測試

Energy Log

啟動Instruments,選擇你的設(shè)備和要檢測的app,打開Energy Log,如下圖所示:(充電然后進行電量測試不合理)

選擇設(shè)備和應(yīng)用進行執(zhí)行之后可以查看到電量消耗情況

iOS電量測試

1、打開設(shè)置-開發(fā)者-Logging

2、打開Energy,然后點擊開始錄制。

3、執(zhí)行應(yīng)用操作

4、完成后,返回“設(shè)置”>“開發(fā)者”>“Logging”,然后點擊“stop recording”。

5、連接設(shè)備,打開instrument,啟動Energy Log,從設(shè)備導(dǎo)入數(shù)據(jù)。

6、導(dǎo)入完成后即可查看數(shù)據(jù)信息。?

?http://點擊鏈接加入群聊【軟件測試交流群】:https://jq.qq.com/?_wv=1027&k=Ts5N8qum?_wv=1027&k=Ts5N8qum

總結(jié)

以上是生活随笔為你收集整理的APP性能测试之功耗测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。