关于android手机充电时间的计算公式
2013-01-14 14:33
197 查看
最近在做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单位都为毫安,这两个数值是物理学上给出的粗略系数,但是对于电池管理来说具备一定的参考价值,谢谢!
首先先解释几个概念:
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单位都为毫安,这两个数值是物理学上给出的粗略系数,但是对于电池管理来说具备一定的参考价值,谢谢!
相关文章推荐
- 关于android手机充电时间的计算公式
- android 电池充电时间计算方法
- 电容充电放电时间计算公式
- android电池充电时间计算
- Android5.1 电池充电剩余时间计算
- Android5.1 电池充电剩余时间计算
- 手机电池充电时间计算方法
- 关于TelephonyManager的使用与手机电池电量小知识(Android学习随笔五)
- 关于 android 远程控制(pc 控制手机)
- 递归方程时间复杂度计算公式
- VC中几个关于时间计算的函数
- 算法基础(1)关于时间复杂度计算之函数增长
- 关于计算Java程序运行时间
- 关于三角形面积的公式与格点多边形面积计算算法的讨论
- 关于android 指定视频播放某段时间
- RC充放电时间计算公式
- android 小玩意儿 关于科学计算器,多则多项多级计算的算法实现
- Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性
- Android手机开发:日期函数之判断某日期格式是否之前+计算某日期之前N天或之后N天的日期
- 争辩:关于输出大电流的移动电源给小电流的手机充电的问题