【背景】
目前輸出的 app 已經(jīng)出現(xiàn)多次因?yàn)橘Y源釋放不當(dāng)導(dǎo)致的異常耗電,嚴(yán)重的影響了用戶在F 產(chǎn)品使用中的體驗(yàn)碳蛋。性能測(cè)試雖然引入了耗電量測(cè)試,但是當(dāng)前的手段效率相對(duì)較低(通過(guò)長(zhǎng)時(shí)間使用來(lái)觀察耗電狀況)胚泌。
【解決思路】
- 軟件監(jiān)控 app 解決思路,目前已經(jīng)有市面上的開(kāi)源項(xiàng)目供使用,F 技術(shù)組也有針對(duì)的做了引入和優(yōu)化,但是使用軟件做換算,存在測(cè)試誤差,且工具本身存在兼容性。
- 硬件耗電電量測(cè)量,更可靠的方案是購(gòu)買安捷倫,不過(guò)太貴了,以下使用一種相對(duì)便宜的解決方案來(lái)硬件測(cè)試耗電量肃弟。
【耗電量測(cè)試要點(diǎn)】
- 引用資源時(shí),不存在過(guò)分的使用和無(wú)效的使用 — 表現(xiàn)在耗電量上,使用功能時(shí)有較高的使用電流玷室。
- 功能關(guān)閉時(shí),釋放掉運(yùn)用的資源 — 表現(xiàn)在,關(guān)閉應(yīng)用后,還有較高的電量消耗°岛酰【操作指南】
可變恒壓電源一個(gè),https://item.taobao.com/item.htm 某寶上 350 塊的某產(chǎn)品一個(gè)阵苇。電壓控制范圍 0~15v壁公。調(diào)整間隔 0.1V感论。電流進(jìn)度 1ma。別問(wèn)我為啥不考慮安捷倫,我都強(qiáng)調(diào)某寶上 350 了紊册。
不過(guò) 0.1v 的電壓精度,1ma 的電流進(jìn)度對(duì)于測(cè)試來(lái)說(shuō)已經(jīng)足夠了,這個(gè)誤差已經(jīng)比軟件實(shí)現(xiàn)的測(cè)試方案高很多了比肄。如下圖,本身輸出的電壓也還是比較精準(zhǔn)的快耿。如下圖,在4v 的電壓輸出時(shí),輸出大約是 3.99。誤差已經(jīng)很小了芳绩。
操作步驟第一步,確定手機(jī)的正反接線柱掀亥。如圖所示,參考電池連接的位置即可。電源關(guān)機(jī)連接線妥色。
開(kāi)機(jī),確定輸出的電壓設(shè)置為 4v搪花。如果不是 4v,按 9 增加電壓,按 3 降低電壓。需要說(shuō)明下,通常手機(jī)電池的電壓輸出再 3.7~4.2嘹害。但是并不是絕對(duì)的,有的手機(jī)比如三星會(huì)到 4.35撮竿。另外說(shuō)明一下,手機(jī)的電量是通過(guò)電壓的變化來(lái)?yè)Q算的,但是電壓變化不是線性的,不同的廠商定義的計(jì)算方式都不同。會(huì)在不少手機(jī)上看到充滿 100%之后第一個(gè)百分點(diǎn)能用很久,或者最后幾個(gè)百分點(diǎn)能用很久笔呀。確定連接無(wú)誤之后,啟動(dòng)手機(jī)開(kāi)機(jī)就可以了幢踏。如下圖左側(cè)顯示的就是當(dāng)前手機(jī)顯示的耗電量了。開(kāi)機(jī)后,啟動(dòng)本身耗電量是比較大的,等待一分鐘左右,耗電量會(huì)處于一個(gè)穩(wěn)定狀態(tài),如下圖大約降到 209mA,這個(gè)值需要記下來(lái),這是手機(jī)處于 idle 且開(kāi)啟屏幕的耗電量许师。
然后開(kāi)始測(cè)試我們的 app,如測(cè)試某谷直銷銀行在啟動(dòng)時(shí)的耗電量房蝉。當(dāng)然了本身啟動(dòng)的過(guò)程是不同的進(jìn)程交匯的結(jié)果,耗電上自然也不是絕對(duì)的一條直線,而是有一定的抖動(dòng),這個(gè)階段我們可以使用拍照方式,取下這段時(shí)間的數(shù)據(jù)求均值。如下面前三個(gè)圖片,耗電量約在 360mA,減去 idle 狀態(tài)的耗電 209,啟動(dòng)瞬間的耗電量大約為 150mA微渠。而在加載完畢后,耗電量會(huì)有所下降搭幻。如下圖四
剛已經(jīng)有說(shuō)明,耗電量測(cè)試主要是測(cè)兩點(diǎn),資源是不是有過(guò)渡使用,另外就是是否正確被釋放。所以接下來(lái)就是分別測(cè)試 app 到后臺(tái)的耗電狀況,以及 app 退出的耗電狀況逞盆。如下圖,app 退出后,耗電量降到 213mA,和啟動(dòng)前相當(dāng)粗卜。
在 app 使用中直接鎖屏,等待若干秒后,耗電量下降到 5mA。不要問(wèn)我為什么之前耗電不是要看半小時(shí)用多少電量么纳击。那我得說(shuō),距離等于速度乘以時(shí)間续扔。
iOS 的操作也是一樣的,發(fā)個(gè)截圖瞅瞅