實戰之ios電量獲取大對比

背景交代
最近有一款遊戲要上線,性能檢測雖然在安卓上已經檢測通過,但ios上還是第一次檢測,尤其是近年來移動端用戶越來越重視手機的續航能力,所以我們對遊戲的電量消耗等指標的關注程度也越來越重視;
然而ios性能檢測的相關文檔相對安卓來說還是少很多,以前我們常用的就是Instruments,最近perfdog也出了iOS電量測試功能,特來對比一下。

這裏首先給出ios手機wifi連接Imac的方法
1.打開Xcode,選擇菜單欄中 Window ——>Devices and Simulators 彈出相應的對話框
2.將Connect via network複選框選中
3.將數據線從蘋果電腦上拔掉,此時真機回顯示爲 DisConnected,點擊手機 彈出一個快捷菜單
4.選中其中的Connect Via IP Address 命令,彈出對話框,輸入手機的IP地址然後單擊Connect按鈕 此時真機就通過無線就連接到蘋果電腦了,

1.Instruments獲取ios能耗

首先我們要打開ios的開發者選項,簡單來說你需要登錄Xcode,把IOS手機連接電腦,這樣就可以打開開發者,接下來:
1.iOS 設置選項 ->開發者選項->logging ->start recording
在這裏插入圖片描述
2.打開需要測試電量的遊戲場景操作後開始跑遊戲
3.進入開發者選項點擊stop recording
4.將iOS設備和Mac連接
5.打開Instrument,選擇Energy Diagnostics
6.選擇 File > Import Logged Data from Device

此時可能會有一些卡頓,稍等後會出現結果
在這裏插入圖片描述
要注意的是:
測試過程中要斷開 iOS設備和電腦、電源的連接
電量使用level爲0-20,1/20:表示運行該app,電池生命會有20個小時;20/20:表示運行該app,電池電量僅有1小時的生命,這裏表示電量消耗有點大啊,我測試的時候手機有75%的電量,玩遊戲也就是說大概20/17=1.17小時就會沒電了;
下面還有屏幕亮度,CPU,網絡使用,GPS,藍牙等等電量消耗
不過此處的數據無法保存,而且由於無法標註場景,所以在測試時要儘量保證場景單一;
爲了分析詳細數據,找到問題,筆者開始採用其他常見方法測試遊戲電量;

2.Perfdog獲取ios能耗

1.打開perfdog,選擇要連接的IOS手機,注意選擇wifi模式。
2.選擇要捕獲的數據,wifi模式不能截圖比較可惜
3.選擇要測試的應用就可以了;

這裏介紹一些常用的技巧,由於不能截圖,我們最好對場景做一些批註,

1)批註及標定(鼠標左鍵雙擊,則批註。左鍵雙擊已生成的批註,則取消。鼠標左鍵單擊,則標定)
2)可以通過鼠標框選/拖動查詢時間週期內,統計數據等。同時可對框選數據進行保存。右邊可以設定對應的性能參數統計分析閾值等。
3)通過標籤按鈕給性能數據打標籤,鼠標左鍵雙擊顏色區域可修改對應區域標籤名
具體技巧可以參考:Perfdog使用說明
在這裏插入圖片描述
當我們測試完畢上傳後臺的時候記得勾選Save就可以在本地保存所捕獲的所有數據,點擊文件夾既就可以看到,數據就保存在包名所命名的文件夾裏.
在這裏插入圖片描述
這是平臺的電量數據信息,
整機實時Current電流:單位毫安(mA)、Voltage電壓:單位毫瓦(mW)、Power功耗:單位毫伏(mV)
在這裏插入圖片描述
這裏可以多場景組合分析,可以看到在資源下載的時候功耗明顯上升,在資源結束的時候仍在上升,這裏懷疑在解壓資源,通過cpu也可以完全證實這一點;而在遊戲開始,副本戰鬥的時候功耗開始下降。如果想要優化,可以從資源處理的方面入手。
在這裏插入圖片描述

3.sysdiagnose獲取ios能耗

1.官網下載證書Profiles and Logs。(需要開發者證書)
2.下載完成後通過 AirDrop 發到測試手機上安裝。
3.在不重啓手機的情況下,等待10到30分鐘。
4.手機連上電腦,通過 iTunes 同步到電腦上。
5.去 ~/Library/Logs/CrashReporter/MobileDevice 目錄下,打開 powerlog_xxxx.PLSQL 文件。

在這裏插入圖片描述
簡單介紹下表名的意思
PLBatteryAgent_EventBackward_Battery: 整臺機器的電量數據,包含電流、電壓、溫度等,每 20 秒 左右一條數據
PLBatteryAgent_EventBackward_BatteryUI: 電量百分比數據,每 20 秒一條數據
PLIOReportAgent_EventBackward_EneryModel: 整機的詳細電量數據。包含 CPUGPUDRAMISP 等關鍵信息。每半小時到一小時一條數據。
6.接來下需要 知道你要測試的App 的 Bundle Identifier ,可以通過pp助手或者其他應用獲取,有很多方法;
7.得到每個 App 的唯一標識後,我們就可以去 PLAccountingOperator_Aggregate_RootNodeEnergy biao 表裏看電量消耗數據了,這裏的單位在 iOS 9 是 mAh ,iOS 9 及以上應該是 1/1000 mAh,也就可以執行 SQL 語句計算出來,不過一番操作下來比較複雜,費時費力;

在這裏插入圖片描述
在這裏插入圖片描述

4.Energy Impact獲取ios能耗

在開發過程中,運行調試模式就可以在Xcode裏直接查看Energy Impact。有3個區域,紅色代表有嚴重問題。下面的柱狀圖會告訴你耗電的組成部分:CPU,Network,Location,GPU。其中Overhead表示不是由你的App引起的耗電。
如果有問題,可以進一步通過快捷入口打開Time Profile,Network Profile,Location Profile做進一步細緻排查問題點。
這個沒什麼複雜的,自己研究下就可以。缺點只適合開發人員;而且對於耗電只能給出定性,沒有定量的顯示。
在這裏插入圖片描述

名字 上手難度 優點 可優化功能 推薦指數
Perfdog 簡單 測試報告數據清晰,可以查看當時的cpu等其他維度數據,可添加批註,所以可以多個場景同時測試,數據可以保存到本地,電量指標較爲詳細 wifi連接無法截圖比較可惜,人工添加批註有時容易不及時 ✰✰✰✰✰
Instruments 簡單 數據清晰,操作簡單,可以查看當時的cpu等其他維度數據 無測試報告,無法添加批註,爲保證數據準確性儘量保證單一場景,詳細數據無法保存 ✰✰✰✰
sysdiagnose 複雜 捕獲的數據豐富 需要開發者證書,操作較爲複雜,無測試趨勢圖,僅有數值 ✰✰✰
Energy Impact 簡單 上手簡單,開發時運行調試模式就可以 需要有項目源碼權限,而且對於耗電只能給出定性,沒有定量的顯示 ✰✰✰

綜合以上數據來看,還是推薦使用Perfdog進行測試,無論是從用戶的交互方式還是從數據指標的豐富程度,Perfdog都達到了較高的水準,至於參考標準可以從精品產品獲取數據作爲對比參考;

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