關於android手機充電時間的計算公式

最近在做android手機電池管理相關的項目,其中有一個需求是計算手機充電時間的。翻閱了一些資料和一些相關的競品,發現每個產品的在手機充電時長的計算上多不是很統一,後來翻閱了物理學的一些知識和文章,總算給出了一個相對比較準確的答案,現在把結論共享給大家。

首先先解釋幾個概念:

1.電流以及電流的單位

電流被定義爲電離子的定向移動,我們稱之爲電流,其單位爲毫安或者安培(MA/A), 1安培=1000毫安

2.充入電流

充入電流指,當前利用某種充電方式充入到手機每小時的橫向電流。

 3.AC充電與USB充電

我們稱AC充電爲直流充電,也就是通常插着充電器充電,USB充電就是將手機通過USB數據線接入PC端的充電方式。通常我們默認爲USB的充入電流爲AC的充入電流的二分之一,AC = USB * 2,一般情況下,PC端的USB充入電流爲500MA/H,AC的充入電流爲1A/H,但是由於硬件的製造商規格略有不同,數據上會存在差異。

4.電池容量

查看電池容量的方式很簡單,數據就在電池的背面,一目瞭然。

 

ok,有了以上4個結論,我們可以大概計算出一塊電池從沒有電,到滿電的充電時長了。

設,一塊電池的容量爲X毫安,充入電流爲Y毫安/小時,那麼就有結論 H = X/Y,舉例:一塊1500MA容量的電池,用USB充電需要1500/500 = 3小時,用充電器充電需要1500/1000 = 1.5小時。請注意,充電電流係數可能會有所差異,但是差異不會很大,那麼也就是是說得出的充電時間也不會差得太多。

那麼這個時候有個問題出現了,我們在開發的時候發現,android的API沒有給開發人員提供獲取電池容量的API,其實這個也不奇怪,因爲,你很可能買了個HTC的手機之後又換上了一個山寨的1800MA大電池,也就是說硬件是不提供獲取電池容量的芯片的,那麼android的sdk也自然無法獲得這個數值。那既然上面的公式是不是對開發來說就沒有任何價值了呢?

其實,還是有價值的,我換了一個思路來計算,從產品和技術兩個角度去解決這個問題。

首先你必須第一時間計算出充電時間後呈現給用戶,因爲這是用戶所期待的核心價值,不可違背。我調查了一下市面上的電池容量,差不多一般都在1200-1800MA,1800MA的電池應該說是大屏幕用的電池了,所以我取了一個平均值1500MA,當用戶首次使用電池管理軟件的時候,我統一使用1500MA作爲計算標準,計算出充電時間,由於電池容量很可能會不符合當前手機的電池容量,所以時間上會或多或少有所偏差,但是這個沒關係,我首先解決的問題是解決用戶的期待感!接着,充電開始了,我會記錄充電1%電量所花去的時間,然後就可以計算出來充電100%所花去的時間,根據充入電流係數X,就可以大概的得到這塊電池的容量了!之後保存這快電池容量的數值,當用戶下次充電的時候就可以直接獲取這個數值進行時間的計算了。

 

結論與公式:

1.鋰電池充電時間計算公式:x(電池容量) y(充入電流係數) h(充電時間)

h = x/y

2.android開發中獲取電池充電時間的基本思路:

a.獲取充1%電量所花費的時間h(電量百分比這個可以通過api獲得),計算出衝100%所花費的時間H, H 約等於 h * 100

b.如果是USB充電,那麼電池容量約等於 500 * H,如果是AC充電,那麼電池容量約等於 1000 * H ,注意單位都爲毫安,我們將這個結論定義爲A

c.那麼下次再充電的時候,我們可以通過b的結論應用公式1,就有結論:

ACTime(小時) = A/1000

USBTime(小時) = A/500

PS:1000和500單位都爲毫安,這兩個數值是物理學上給出的粗略係數,但是對於電池管理來說具備一定的參考價值,謝謝!

發佈了10 篇原創文章 · 獲贊 13 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章