android开发 wifi功率,一种基于Android系统的功耗计算方法与流程

本发明涉及系统功耗

技术领域:

,尤其涉及一种基于Android系统的功耗计算方法。

背景技术:

:为了细粒度实时分析系统各部件以及应用程序的功耗特性,并且进一步挖掘用户的日常行为,我们需要建立功耗模型。操作系统级的功耗建模,国内外已经有过很多的研究,现有技术中,对软件功耗建模方法可归纳为以下四种:(1)采用离线方式对指令的静态和动态功耗分别求和,形成指令级功耗模型;(2)选择影响功耗的关键因子作为宏建模的基本特征,而这些影响因素直接决定了模型的粒度;(3)基于性能计数器PMU的功耗建模;(4)利用体系结构功耗模拟器进行精密功耗建模。利用微体系结构的功耗模型量化了嵌入式操作系统功耗,并通过分析内核执行路径、例程以及内核服务的功耗,挖掘出内核中相对耗电的软件模块以指导功耗优化。上述的功耗模型粒度太细,往往需要硬件体系结构的支持,开销比较大,更重要的是忽略了上层应用程序的行为更乃至用户的行为。技术实现要素:为解决上述技术问题,本发明提供一种基于Android系统的功耗计算方法,包括基于Android系统的功耗系统,所述基于Android系统的功耗系统包括应用功耗单元和系统功耗单元;所述计算方法的计算公式为:Ptotal=Papp+Psystem;所述应用功耗单元的功耗计算公式为:Papp=∑Pprocess_CPU+Pwakelock+PDT+Papp_WIFI+Psensor;所述系统功耗单元的功耗计算公式为:Psystem=Pphone+Pradio+Pscreen+PWIFI+Pbluetooth+Pidle。更进一步的,所述应用功耗单元的功耗计算公式中:所述Pprocess_CPU为线程的CPU的耗电量,所述Pwakelock为应用程序的WakeLock的耗电量,所述PDT为应用程序的数据传输的耗电量,所述Papp_WiFi为应用程序使用WIFI的耗电量,所述Psensor为应用程序的传感器耗电量。更进一步的,所述Pprocess_CPU=∑((Tuser_mode+Tkernel_mode)×DCPU_ACTIVE×Sfreq),所述Pwake_lock=∑Twakelock×DCPU_AWAKE,所述Papp_WIFI=Tapp_WIFI×DWIFI_ON,所述Psensor=Pnormal+TGPS×DGPS_ON,所述PDT=(Bin+Bout)×PperByte。更进一步的,所述系统功耗单元的功耗计算公式中:所述Psystem为非应用程序造成的耗电量,所述Pphone为接打电话的耗电量,所述Pradio为不同强度基带待机+信号扫描的耗电量,所述Pscreen为开启+不同亮度持续的耗电量,所述PWiFi为开启+无数据传输运行的耗电量,所述Pbluetooth为开启+AT指令的耗电量,所述Pidle为空闲的耗电量。更进一步的,所述Pphone=Tphone×DRADIO_ACTIVE,所述Pradio=∑(Tradio_i×DRADIO_ON_i)+Tscanning×DRADIO_SCANNING,所述Pscreen=Ton×DSCREEN_ON+∑(DSCREEN_FULL×(bi+0.5f)×Tbi),所述PWIFI=TWIFI_on×0×DWIFI_ON+(Tall_WIFI-Tapp_WIFI)×DWIFI_ON,所述所述Pidle=DCPU_IDLE×(Ttotal-Tscreen)。本发明的基于Android系统的功耗计算方法,可以用于分析所述应用功耗单元和所述系统功耗单元对功耗的影响,并以此作为基础进行功耗优化,主要包括:(1)程序系统日志(创建部件/线程)分析,即基于Android系统日志,分析四大组件的生命周期和应用程序及其组件之间的跳转调用关系,四大组件包括Activity、Service、ContentProvider以及BroadcastReceiver;(2)用户使用应用程序的状况,包括时间、应用名、程序部件等。具体实施方式下面详细描述本发明的实施方式,下面描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。本发明提供一种基于Android系统的功耗计算方法,本计算方法使用Android系统自带的电量消耗统计算法进行耗电量计算,Android系统中的应用程序以UID区分,电量统计的单位是毫安秒(mA·s)。电量统计的数据来源分两部分:一部分来自Android系统中的PowerProfile.xml文件(由手机厂商提供),文件中记录了各设备不同状态对应的电流值/进行某操作需要消耗的电量值;另一部分来自系统采集模块,如某部件的执行时间或数据传输量;所述基于Android系统的功耗计算方法包括基于Android系统的功耗系统,所述基于Android系统的功耗系统包括应用功耗单元和系统功耗单元;所述计算方法的计算公式为:Ptotal=Papp+Psystem;所述应用功耗单元的功耗计算公式为:Papp=∑Pprocess_CPU+Pwakelock+PDT+Papp_WIFI+Psensor;所述系统功耗单元的功耗计算公式为:Psystem=Pphone+Pradio+Pscreen+PWIFI+Pbluetooth+Pidle。其中,所述应用功耗单元的功耗计算公式中:所述Pprocess_CPU为线程的CPU的耗电量,所述Pwakelock为应用程序的WakeLock的耗电量,所述PDT为应用程序的数据传输的耗电量,所述Papp_WiFi为应用程序使用WIFI的耗电量,所述Psensor为应用程序的传感器耗电量,具体如表1所示:表1更进一步的,所述Pprocess_CPU=∑((Tuser_mode+Tkernel_mode)×DCPU_ACTIVE×Sfreq),所述Pwake_lock=∑Twakelock×DCPU_AWAKE,所述Papp_WIFI=Tapp_WIFI×DWIFI_ON,所述Psensor=Pnormal+TGPS×DGPS_ON,所述PDT=(Bin+Bout)×PperByte。更进一步的,所述系统功耗单元的功耗计算公式中:所述Psystem为非应用程序造成的耗电量,所述Pphone为接打电话的耗电量,所述Pradio为不同强度基带待机+信号扫描的耗电量,所述Pscreen为开启+不同亮度持续的耗电量,所述PWiFi为开启+无数据传输运行的耗电量,所述Pbluetooth为开启+AT指令的耗电量,所述Pidle为空闲的耗电量;具体如表2所示:符号说明符号说明Tuser_mode用户态时间Tapp_WiFiapp使用WIFI的时间Tkernel_mode内核态时间DWIFI_ONPOWER_WIFI_ON基准DCPU_ACTIVEPOWER_CPU_AWAKE基准DGPS_ONPOWER_GPS_ON基准Sfreq该功率时间所占比例Pnormal普通传感器的耗电量Twakelockwakelock时间TGPSapp使用GPS的时间DCPU_AWAKEPOWER_CPU_AWAKE基准表2更进一步的,所述Pphone=Tphone×DRADIO_ACTIVE,所述Pradio=∑(Tradio_i×DRADIO_ON_i)+Tscanning×DRADIO_SCANNING,所述Pscreen=Ton×DSCREEN_ON+∑(DSCREEN_FULL×(bi+0.5f)×Tbi),所述PWIFI=TWIFI_on×0×DWIFI_ON+(Tall_WIFI-Tapp_WIFI)×DWIFI_ON,所述所述Pidle=DCPU_IDLE×(Ttotal-Tscreen)。各详细参数如表3所示:表3详细参数如表4所示:表4系统耗电量算法参数如表5所示:表5本发明的基于Android系统的功耗计算方法,可以用于分析所述应用功耗单元和所述系统功耗单元对功耗的影响,并以此作为基础进行功耗优化,主要包括:(1)程序系统日志(创建部件/线程)分析,即基于Android系统日志,分析四大组件的生命周期和应用程序及其组件之间的跳转调用关系,四大组件包括Activity、Service、ContentProvider以及BroadcastReceiver;(2)用户使用应用程序的状况,包括时间、应用名、程序部件等。以上所述,仅是本发明的最佳实施例而已,并非对本发明作任何形式上的限制,任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,利用上述揭示的方法内容对本发明技术方案做出许多可能的变动和修饰,均属于权利要求保护的范围。当前第1页1&nbsp2&nbsp3&nbsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值