2016-10-06 95 views
0

我正在做一個臉部識別應用程序,我想在它裏面做一個小小的基準測試。想要測量電池的一些幫助。我是想這樣的事情:基準電池android

public float calcBattery(float init){ 
     float batteryValue; 
     int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
     int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 
     batteryValue = (init - (level/(float)10000)); 
     if (batteryValue<0) batteryValue*=-1; 
     return batteryValue; 
    } 

但因爲我的應用程序在2至17秒運行一次根據臉部的數量麪糊水平始終顯示爲不變。我想知道是否有沒有第三方在Android上進行電池基準測試的正確方法。

在此先感謝

編輯:

我想有測量電池更精確的某種方式,則電池的水平,像毫安實例。我不知道如何以毫安測量,但我知道是可能的,因爲有應用程序這樣做。

回答

1

要做任何具有真正意義的基準測試,您都需要運行您的應用程序的時間比這個長得多。您應該能夠包含一個循環,該循環將繼續運行,直到通過給定的百分點,或者您可以創建一個循環按鈕。我的建議是將目標從90%提高到10%左右。電池壽命指標有一點是非線性的 - Is Battery Life Linear?。此外,您應該確保禁用了許多其他應用程序和後臺進程(非系統關鍵),以消除某些其他應用程序正在吃電池的可能性。

記錄電池從90%耗盡到10%需要多長時間。如果您將時間除以80,那麼您平均需要多長時間才能使應用程序使用電池壽命的一個百分點。

讓我們用一些數字來使這個數學更具體。說完1小時後,擊球手從90%降到10%。一小時是3600秒。 3600/80 = 45。所以平均每45秒你的應用程序使用1%的電池壽命。

請記住,有各種設備,所以最好在不同質量的不同設備上重複此操作。

還有一件事要記住。如果您的應用程序足夠密集,以便在運行時加熱手機而不僅僅是加熱(我認爲這可能會發生在面部識別),那麼隨着電池變熱,電池會開始更快地耗盡。如果是這種情況,你應該嘗試做很多較短的試驗(一次可能是5%)。這並不理想,因爲它增加了更多錯誤機會,但可能是必要的。在這種情況下,你將除以5而不是80,然後將你的試驗平均在一起。

+0

謝謝。但即使我接受了你的建議,我也想有一些更精確的方法來測量電池的電量,比如mA。我不知道如何衡量。 – EduardoMaia

+0

好的,從最初的問題來看還不清楚。我不確定,但你可能能夠以同樣的方式得到mA,OP在這個問題中獲得mV http://stackoverflow.com/questions/28043112/get-the-exact-battery-level-on-android?rq = 1 但我會說,我不確定你希望通過獲得這個數字來實現什麼。硬件中具有不同級別計算能力的不同設備將使用不同速率的功率。另外,Amp是電流的一個單位,它不會告訴您設備中剩餘多少電量,只是在給定時刻使用電力的速度有多快。 –