一种基于功耗的应用分类方法及移动终端
技术领域
本发明涉及移动终端应用领域,特别涉及一种基于功耗的应用分类方法及移动终端。
背景技术
现有移动终端的功能非常强大,除了拥有传统的电话、短信功能外,还集成了拍照、GPS定位、WIFI上网、蓝牙/红外传输、应用下载等功能。随着不同功能的应用下载,给用户的生活和工作带来了便捷、提高了娱乐性和智能性,但是也存在一些问题:例如当电池电量较低时,如果用户打开高功耗的应用会使移动终端迅速关机,甚至损伤电池。
目前在应用商店中可以下载到基于功耗的应用管理软件。这类软件均是根据事先划定的功耗级别进行管理,例如,默认打开WIFI属于高功耗的应用,默认打开通讯录为低功耗的应用。这种事先对应用进行功耗级别归类的方法操作比较简单,多数软件开发商注重于这种应用管理软件的开发。但是这些软件普遍存在以下缺陷:
每个厂商生产的移动终端软硬件各不相同,有的厂商对原先高功耗的应用经过优化后转换成超低功耗,需要实时掌握各种应用的优化情况并更新这些信息,否则出现功耗归类错误的问题,这样势必增加软件开发公司的工作难度。
随着移动终端应用的迅速发展,适应用户的各种需求,每天可能有许多新应用被开发出来,由于每人下载的应用不同,要将新应用进行功耗级别的归类比较麻烦且工作量很大,而且需要及时更新,否则对新应用管理的不完善,出现遗漏。采用现有的预先划定功耗级别的方式已经不再适用于当前的应用发展。
因而现有技术还有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于功耗的应用分类方法及移动终端,以解决现有技术对应用功耗分类不准确、以及新应用功耗管理不完善的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种基于功耗的应用分类方法,用于根据被测应用打开时的功耗进行分类,其包括:
A、移动终端启动飞行模式,保持屏幕常亮;
B、启动应用分类模式,获取并记录电池的初始电压和初始时间,打开被测应用后每隔预设时间获取一次电池电压及时间,并判断当前的时间是否为被测应用的功耗稳定时间点;若是,则记录当前的电池电压和时间;
C、根据当前的电池电压和时间,初始电压和初始时间计算出被测应用的功耗值,根据该功耗值对被测应用进行功耗级别分类。
所述的基于功耗的应用分类方法中,所述步骤A还包括:
A1、判断电池的充电状态,当正在充电时自动停止充电并提示暂停充电;当没有充电时保持当前的状态并提示可以检测;
A2、设置一电压变量并赋值为0。
所述的基于功耗的应用分类方法中,在所述步骤B具体包括:
B1、获取并记录电池的初始电压和初始时间;
B2、打开被测应用并同时启动定时器;
B3、判断定时器的预设时间是否到达,若是,则获取当前的电池电压和时间;
B4、判断当前的电池电压与电压变量的差值是否小于预设阈值:若小于,则当前的时间为被测应用的功耗稳定时间点,记录当前的电池电压和时间,执行步骤C;否则,将当前的电池电压赋值给电压变量,返回步骤B3。
所述的基于功耗的应用分类方法中,在所述步骤C之前,还包括:设置功耗对应表:当0mV<|差值|≤50mV,为第一级功耗应用;当50mV<|差值|≤100mV,为第二级功耗应用;当100mV<|差值|≤150mV,为第三级功耗应用;当150mV<|差值|≤200mV,为第四级功耗应用;当200mV<|差值|≤250mV,为第五级功耗应用;当250mV<|差值|≤300mV,为第六级功耗应用;当300mV<|差值|≤350mV,为第七级功耗应用;当350mV<|差值|≤400mV,为第八级功耗应用;当400mV<|差值|≤450mV,为第九级功耗应用;当450mV<|差值|≤500mV,为第十级功耗应用。
所述的基于功耗的应用分类方法中,所述步骤C具体包括:
C1、计算当前的电池电压与初始电压的差值,查询功耗对应表找出对应的功耗应用级别;
C2、计算当前的时间与初始时间的差值,在该功耗应用级别中根据时间差值的绝对值的大小进行排序,得出在该功耗应用级别中的应用子级别。
所述的基于功耗的应用分类方法中,第一级功耗应用为最低级别,表示被测应用的功耗最低;第十级功耗应用为最高级别,表示被测应用的功耗最高;在每级功耗应用级别中,时间差值的绝对值越小,表示该被测应用的应用子级别越低。
所述的基于功耗的应用分类方法中,在所述步骤C之后,还包括:
D、存储被测应用的功耗级别、当前的电池电压与初始电压的差值、以及当前的时间与初始时间的差值,对其余获取的电池电压和时间清零。
一种基于功耗的应用分类方法的移动终端,其包括:
定时器,用于设置预设时间;
模式控制模块,用于启动飞行模式,保持屏幕常亮;启动应用分类模式;
电压获取模块,用于获取并记录电池的初始电压,打开被测应用后每隔预设时间获取一次电池电压;
时间获取模块,用于获取并记录当前的初始时间,以及打开被测应用后每隔预设时间获取一次时间;
判断模块,用于判断当前的时间是否为被测应用的功耗稳定时间点;若是则记录当前的电池电压和时间;
功耗分类计算模块,用于根据当前的电池电压和时间,初始电压和初始时间计算出被测应用的功耗值,根据该功耗值对被测应用进行功耗级别分类。
所述的移动终端中,所述模式控制模块还用于判断电池的充电状态,当正在充电时自动停止充电并提示暂停充电;当没有充电时保持当前的状态并提示可以开始分类。
所述的移动终端中,还包括存储控制模块,用于存储被测应用的功耗级别、当前的电池电压与初始电压的差值、以及当前的时间与初始时间的差值;对其余获取的电池电压和时间清零。
相较于现有技术,本发明提供的基于功耗的应用分类方法及移动终端,在飞行模式并保持屏幕常亮的状态下进行应用功耗分类,能避免移动终端收发信号影响分类结果,提高功耗分类的准确度;记录初始电压和初始时间,打开被测应用后每隔预设时间获取一次电池电压及时间,当判断当前的时间为被测应用的功耗稳定时间点时,记录当前的电池电压和时间;再根据当前的电池电压和时间,初始电压和时间计算出被测应用的功耗值,根据该功耗值即可对被测应用进行功耗级别分类,任何应用都能计算出其实际的功耗值,由功耗值的大小对应用进行分类,提高了应用分类的准确性和兼容性,且其分类方式简单,易于实现,适合大力推广。
附图说明
图1为现有的电池等效电路示意图。
图2为一应用被打开时的电池电压波形图。
图3为本发明提供的基于功耗的应用分类方法流程图。
图4为本发明提供的基于功耗的应用分类方法的移动终端的结构框图。
具体实施方式
本发明提供一种基于功耗的应用分类方法及移动终端,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请同时参阅图1和图2,图1为现有的电池等效电路示意图。假设移动终端的电池两端的电压为V,电池的实际电压为E,电池内阻为R,电池流出的电流为I,则有V=E-R×I。从该公式可以看出,若电流I较小,电池的电压V近似等于电池的实际电压E,表明移动终端的功耗较低;若电流I较大,电池的电压V将会大幅度减小,表明移动终端的功耗较高。在使用过程中,当用户打开一高功耗的应用时,经检测发现电池的电压V会在短时间内的大幅度下降。如图2所示的波形,假设用户开始拨号,此时的电池电池如A点所示的值;过了50s后,电池电压持续下降至B点所示的值,经计算在50s内,电池电压下降的差值约为200mV。可以得出,电流越小,在一定时间内电池电压下降的差值越小,则移动终端的功耗越低,反之功耗越高。
基于上述原理,本发明通过计算电池电压在一定时间内的差值来判断应用的功耗大小,并根据功耗大小对应用进行分类,判断其为高功耗应用还是低功耗应用,可方便应用管理。请参阅图3,本发明提供的基于功耗的应用分类方法包括:
S100、移动终端启动飞行模式,保持屏幕常亮;
S200、启动应用分类模式,获取并记录当前的初始电压和初始时间,打开被测应用后每隔预设时间获取一次电池电压及时间,并判断当前的时间是否为被测应用的功耗稳定时间点;若是,则记录当前的电池电压和时间;
S300、根据当前的电池电压和时间,初始电压和初始时间计算出被测应用的功耗值,根据该功耗值对被测应用进行功耗级别分类。
基于移动终端在工作时会收发无线信号,一些模块实时处于工作状态,如手机中的SIM卡,GSM/GPRS模块。为了避免检测应用的功耗时被无线信号打扰,以及避免这些模块消耗电池电量导致功耗计算不准确,在步骤S100中,需要进入飞行模式,使移动终端的GSM/GPRS模块将被停止使用,且关掉SIM卡的功能,停止无线信号的发射和接受。同时,为了模拟应用的工作状态,需要保持屏幕常亮,进一步提高功耗计算的准确性。
由于本发明是根据电池电压来计算功耗值,要确保电池只能处于供电状态,则所述步骤S100还包括:
步骤101、判断电池的充电状态,当正在充电时自动停止充电并提示暂停充电;当没有充电时保持当前的状态并提示可以检测;
步骤102、设置一电压变量并赋值为0。
设置电压变量Vx可用于后续的计算,其数值可更改。当确定电池没有充电后,即可开始检测电池电压。本发明重点是对应用打开时的功耗进行检测、并依此作为该应用的分类条件。基于应用在刚打开时状态不稳定,此时获取的电池电压不能准确反映出功耗的实际状态,因此,本实施例中主要检测打开应用后一段时间内的电池电压变化情况,来计算该应用打开时的功耗级别。则所述步骤S200具体包括:
步骤201、启动应用分类模式,获取并记录电池的初始电压和初始时间;
为了避免应用的正常使用,本实施设置一应用分类模式,可在显示屏上由一图标表示,启动该应用分类模式后会弹出一选择框,显示还未测试的应用,用户选择需要测试的应用即可。若未启动该应用分类模式,直接点击应用为正常使用。被测应用未打开时,记录电池当前的初始电压为V0,初始时间为t0。
步骤202、打开被测应用并同时启动定时器;
步骤203、判断定时器的预设时间是否到达,若是,则获取当前的电池电压和时间;
步骤204、判断当前的电池电压与电压变量的差值是否小于预设阈值:若小于,则当前的时间为被测应用的功耗稳定时间点,记录当前的电池电压和时间,执行步骤S300;否则,将当前的电池电压赋值给电压变量,返回步骤203。
所述预设时间为5s,所述预设阈值为10mV。每隔5s获取一次电池电压和当前的时间。当第一个5s达到时,记录当前的电池电压为V1,时间为t1;用电池电压V1减去电压变量Vx(此时为0)得到差值1,若差值1的绝对值大于10mV,说明此时电池电压的差值较大,从而电流波动较大,功耗还未稳定,需要继续计算,将电池电压V1的值赋给电压变量Vx。记录第二个5s达到时的电池电压为V2,时间为t2;用电池电压V2减去电压变量Vx(此时为电池电压V1的值)得到差值2,若差值2的绝对值仍大于10mV,说明此时功耗还未稳定,需要继续计算,将电池电压V2的值赋给电压变量Vx。记录第三个5s达到时的电池电压为V3,时间为t3;用电池电压V3减去电压变量Vx(此时为电池电压V2的值)得到差值3,假设该差值3的绝对值小于10mV,说明此时功耗稳定,时间t3为被测应用的功耗稳定时间点,可以将当前的电池电压V3,时间t3作为后续功耗计算的要素。
在计算功耗之前,需要先设置功耗对应表,以便于功耗计算出来后查询该功耗对应表来确定功耗的级别。则在步骤S300之前还包括:设置功耗对应表:当0mV<|差值|≤50mV,为第一级功耗应用;当50mV<|差值|≤100mV,为第二级功耗应用;当100mV<|差值|≤150mV,为第三级功耗应用;当150mV<|差值|≤200mV,为第四级功耗应用;当200mV<|差值|≤250mV,为第五级功耗应用;当250mV<|差值|≤300mV,为第六级功耗应用;当300mV<|差值|≤350mV,为第七级功耗应用;当350mV<|差值|≤400mV,为第八级功耗应用;当400mV<|差值|≤450mV,为第九级功耗应用;当450mV<|差值|≤500mV,为第十级功耗应用。
在本实施例中,每级功耗应用以50mV的电压差作为分界值,即每相邻两级功耗应用相差50mV,在具体实施时,可以相差100mV、120mV、200mV等作为分界值。功耗划分也可以共八级或共十二级。例如:0mV<|差值|≤100mV,为第一级功耗应用;当100mV<|差值|≤200mV,为第二级功耗应用;……;依次类推共设置十二个等级。又或者,0mV<|差值|≤350mV,为第一级功耗应用;当350mV<|差值|≤700mV,为第二级功耗应用;……;依次类推共设置六个等级。功耗对应表中的数值大小和等级划分可根据实际要求设置,本发明对此不作限定。
设置好功耗对应表后,即可进行步骤S300中的功耗计算和分类。所述步骤S300具体包括:
步骤301、计算当前的电池电压与初始电压的差值,查询功耗对应表找出对应的功耗应用级别;
步骤302、计算当前的时间与初始时间的差值,在该功耗应用级别中根据时间差值的绝对值的大小进行排序,得出在该功耗应用级别中的应用子级别。
本实施例中假设当前的时间t3为被测应用的功耗稳定时间点。则计算电池电压V3减去初始电压V0的差值,查询功耗对应表找出该被测应用为第几级功耗应用。接着再计算时间t3减去初始时间为t0的差值。在该级功耗应用中与其他已存储的应用的时间差值进行比较排序,即可得到最终的功耗级别。需要注意的是,查询功耗对应表时取用的是差值的绝对值。
假设被测应用的V3=3920mV、V0=3808mV、t3=22:39:17、t0=22:39:41,V3-V0=112mV,t3-t0=24s。则该被测应用为第三级功耗应用,在第三级功耗应用中根据24s来判断其最终的功耗级别。在本实施例中,第一级功耗应用为最低级别,表示被测应用的功耗最低;第十级功耗应用为最高级别,表示被测应用的功耗最高。在每级功耗应用级别中,时间差值的绝对值越小,表示该被测应用的应用子级别越低。假设在第三级功耗应用中,有应用A的时间差值为15s,应用B的时间差值为30s,被测应用的时间差值为24s,可知被测应用的功耗比应用A高且比应用B低。则在第三级功耗应用中作进一步的分类排序,应用子级别最低的是应用A,排序第一,排序第二的是被测应用,应用子级别最高的是应用B,排序第三。
为了对与其他还未测的应用进行区别,对以后的应用功耗分类提供比较依据,在明确该被测应用的功耗级别后,即完成步骤S300后,还需要存储被测应用的功耗级别、当前的电池电压与初始电压的差值、以及当前的时间与初始时间的差值,对其余获取的电池电压和时间清零,以节省存储空间。
本发明还相应提供一种移动终端,请参阅图4,所述移动终端包括定时器10、模式控制模块20、电压获取模块30、时间获取模块40、判断模块50和功耗分类计算模块60。所述模式控制模块20用于启动飞行模式,保持屏幕常亮;在启动应用分类模式后弹出选择框显示移动终端上还未测试的应用供用户选择;其与电压获取模块30、时间获取模块40连接,用于启动电压获取模块30获取并记录电池的初始电压,以及启动时间获取模块40获取并记录当前的初始时间。所述定时器10用于设置预设时间,其连接电压获取模块30和时间获取模块40,当被测应用被打开时启动定时器10开始计时;并控制电压获取模块30每隔预设时间获取一次电池电压,以及控制时间获取模块40每隔预设时间获取一次时间。判断模块50连接电压获取模块30和时间获取模块40,判断当前的时间是否为被测应用的功耗稳定时间点;若是则记录当前的电池电压和时间。功耗分类计算模块60连接电压获取模块30和时间获取模块40,其根据当前的电池电压和时间,初始电压和初始时间计算出被测应用的功耗值,根据该功耗值对被测应用进行功耗级别分类。
其中,时间获取模块40获取的是测试时移动终端的***时间。所述模式控制模块20还用于判断电池的充电状态,当正在充电时自动停止充电并提示暂停充电;当没有充电时保持当前的状态并提示可以开始分类。
所述移动终端还包括存储控制模块70,其连接电压获取模块30、时间获取模块40和功耗分类计算模块60,用于存储被测应用的功耗级别、当前的电池电压与初始电压的差值、以及当前的时间与初始时间的差值;对电压获取模块30、时间获取模块40获取的其余的电池电压和时间清零。
综上所述,本发明在飞行模式并保持屏幕常亮的状态下进行应用功耗分类,能避免移动终端收发信号影响功耗检测的结果,提高功耗分类的准确度;打开被测应用时启动定时器,每隔预设时间获取一次电池电压及时间,找出被测应用的功耗稳定时间点的电池电压和时间,与初始电压和初始时间相减得到的差值作为功耗级别分类的参考值,查询功耗对应表即可找出对应的功耗应用级别,任何应用都能计算出其实际的功耗值,由功耗值的大小对应用进行分类,提高了应用分类的准确性和兼容性。同时,在得出的功耗应用级别中根据时间差值的绝对值的大小进行排序,得出在该功耗应用级别中的应用子级别,进一步细化了被测应用的级别,提高了分类的精确度;其分类方式简单,易于实现,适合大力推广。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。