IOS手机耗电量测试
1.耗電量原始測試方法
1.1 方法原理:
根據(jù)iPhone手機右上角的電池百分比變化來計算耗電量。
1.2實際操作:
在iOS通用設(shè)置中打開電池百分比數(shù)值顯示,然后操作30分鐘,60分鐘,90分鐘,看開始時和結(jié)束時電池百分比數(shù)值的差值。
1.3 優(yōu)缺點分析:
1、電池百分比數(shù)據(jù)非常粗略,并且電池從90%掉電至80%與80%掉電至70%不一定相等
2、測試時需要關(guān)閉手機所有后臺應(yīng)用除待測應(yīng)用外,但統(tǒng)計的耗電量仍然把亮屏耗電、通訊模塊耗電都統(tǒng)計進去,因此會發(fā)現(xiàn)OLED和LCD屏幕的手機耗電量不一樣,使用wifi模塊和3G網(wǎng)絡(luò)的耗電量不一樣
綜上所述:如果耗電量是看整個手機的耗電情況,那么受影響的因素比較多,干擾大,無法準(zhǔn)確得出被測應(yīng)用的真實耗電數(shù)據(jù)。
2.耗電量文藝測試方法
2.1方法原理:
從iOS8系統(tǒng)開始,iPhone手機在電量選項中會看到前后臺運行時長和電池消耗占比數(shù)據(jù)(如下圖所示),這些數(shù)據(jù)會自動收集在iPhone手機數(shù)據(jù)庫里,并會上報給蘋果服務(wù)器,因此通過HTTP劫持工具可以截獲手機上報的這些數(shù)據(jù)。
2.2實際操作:
步驟1:在iMac機上安裝HTTP劫持工具mitmproxy,打開iMac機上的終端命令輸入界面,然后輸入以下命令:
sudo easy_install php
sudo pip install mitmproxy
注:使用mitmproxy原因是支持手機端,并且有Mac版本,比Fiddler、HttpWatch要方便很多。
步驟2:將解析HTTP請求并保存文件的capture.py腳本放置在iMac機上,然后運行命令:
mitmdump -s “capture.py --bat”
步驟3:將待測手機和iMac都連接到同一個wifi網(wǎng)絡(luò)下,然后打開手機中的wifi設(shè)置,設(shè)置手機的HTTP代理服務(wù)器IP為iMac的IP,端口為8080(如下圖所示)
步驟4:打開iPhone手機上的Safari,輸入http://mitm.it,選擇蘋果圖標(biāo)并安裝mitm證書,證書只需首次測試時需要安裝。
步驟5:回到Safari瀏覽器,輸入diags://進入iOS診斷信息界面,在報告編號中輸入:123456,點擊擴展測試(如圖1所示),待該界面左上角出現(xiàn)“完成”后,在capture.py的相同目錄會出現(xiàn)power-YYYYMMDD-hhmmss.tar.gz的壓縮文件(如圖2所示)。
圖1
圖2
步驟6:雙擊ID開頭的文件,會出現(xiàn)以PLSQL結(jié)尾的文件,可以通過MesaSQLite打開,切換到“SQL Query”選項頁,輸入SQL語句即可。
以上紅框的記錄表明:2015年10月23號,com.qq.tencent.dailybuild進程在8:00至9:00在3600秒時間內(nèi)耗電量為436.9832mW/h。
查看后臺運行時長的SQL語句:
select datetime(timestamp, unixepoch','localtime') AS Time,* from PLAppTimeService_Aggregate_AppRunTime where BundleID= 'com.tencent.qq.dailybuild';
查看耗電量的SQL語句:
select datetime(timestamp,'unixepoch','localtime') as time, * from PLBLMAccountingService_Aggregate_BLMAppEnergyBreakdown where BLMAppName='com.tencent.qq.dailybuild';
查看溫度的SQL語句:
select datetime(timestamp,'unixepoch','localtime') as time, * from PLBatteryAgent_EventBackward_Battery;
更多數(shù)據(jù)表說明見:http://www.lyonanderson.org/blog/2014/11/05/ios-diagnostics-part-2/
2.3 優(yōu)缺點分析:
優(yōu)點:
1)此方法獲取的數(shù)據(jù)即iOS系統(tǒng)統(tǒng)計的數(shù)據(jù),因此數(shù)據(jù)具備較強的說服力;
2)能夠獲取應(yīng)用的耗電量數(shù)據(jù),不再是統(tǒng)計整機的耗電量。
缺點:最短只能統(tǒng)計1個小時內(nèi)的耗電量數(shù)據(jù),對于響應(yīng)時間較快操作的耗電量建議還是用powermonitor進行測試。
3.常見問題
問題:在mitmdump運行capture.py出現(xiàn)command not found提示怎么辦?
解答:出現(xiàn)mitmdump指令查找不到說明mitmproxy安裝有問題,需要運行sudo pip install mitmproxy重新進行mitmproxy的安裝。
問題:在安裝mitmproxy出現(xiàn)libxml/xmlversion.h file not found提示,怎么解決?
解答:這是在安裝依賴包lxml報錯,首先根據(jù)警告執(zhí)行下圖紅框的命令,然后再執(zhí)行xcode-select --install命令
問題:為什么在手機的QQ瀏覽器或UC瀏覽器中輸入http://mitm.it沒有看到mitm證書安裝界面?
解答:必須要在iPhone手機的Safari瀏覽器中輸入地址,同理diags://也必須要在Safari瀏覽器中輸入。
總結(jié)
以上是生活随笔為你收集整理的IOS手机耗电量测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32学习篇-蜂鸣器
- 下一篇: 神奇的莫比乌斯带(mobius)