zoukankan      html  css  js  c++  java
  • [WM]怎么让应用程序更省电

      最近搞了一下程序耗电的问题,记录一点心得.cnblogs里面貌似也有一个MVP写过这个,可以去看看.

      耗电量,其实也是性能问题.程序优化么,就是要找到程序的瓶颈,然后才能优化.程序运行的慢,可以找Profile工具查看一下,可是这个电量确实不好搞.看来只能上笨办法:对照试验.通过对照试验,才能了解程序的瓶颈具体出在什么地方,到底是什么模块在费电.

      有了方法,剩下来就是试验,发现瓶颈,解决.我想这个应该不难吧?

      下来介绍一点经验:

      1. 网络设备是相当耗电的.开始没注意,后来经过对比试验发现网络其实是最耗电的.没事干Google一下,发现一些数据(因为我不是搞硬件的),GPRS/1xRTT设备工作的时候,功耗可以达到1W+,当然Sleep的时候,功耗很小,可以忽略不计.所以,谨慎的使用网络是省电的第一要义.

      2. GPS设备很耗电??基本上可以断定,这是一个谎言.经过对照试验发现,单纯的GPS设备耗电量很少.Google出来的数据,也有一定的参考价值,就是工作电压3.7V,工作电流90ms,这样的话就只有333mW,更有甚者提供一些省电GPS模块,工作电流只有45ms.还有,GPS设备打开关闭时有一个充电的过程,这个过程是否耗电呢?测试发现,也基本上不耗电,所以推荐不用GPS的时候把他关掉(反正第二次拿GPS数据速度很快).

      3. CPU很耗电. 这个很难判定,因为我还没有那个能力让只让CPU转或者不转...........网络的一些数据表明,CPU其实也是不怎么耗电的,Cortex-A9 CPU的单核功耗不会超过300mW.

      4. 屏幕,背光灯. 背光灯我没测试,因为我暂时没有想出来什么场景需要一直把背光打开:P,屏幕么,一直开着,就意味着CPU一直转着,反正WM在那里空转7个小时也没啥问题,估计也不怎么耗电.

      5. 动不动就让WM待机会省电吧??

        这肯定是一个谎言.WM从睡眠中唤醒的时候,是一个非常耗电的过程.最开是我们的程序较短时间就唤醒WM,结果省的电并没有想象的那么多.不过Smartphone上面没这种问题,因为系统不会真正待机,只会关掉屏幕.

      因为我们的程序也就只用这么几样东西,其他的都没用过,所以只能写着么多.

      我不太鼓励刚开始写程序就考虑省电问题,就跟刚开始写程序就考虑性能问题一样,那样只会使问题变得更复杂.

      另外,关于WM电源管理,"Windows CE电源管理之三"你需要看一下;

        将睡眠的操作系统唤醒,你需要了解一下CeRunAppAtTime那一组API,比较好用;

        断开网络,我在Dopod上面实验的结果就是,断开网络不成功,再次拨号断开就可以了,实在不行就需要用RAS,请看这里.

    PS:授人以鱼不如授人以渔.

    /**********************************************************************
     * 机械教条主义
     *
     * From:          http://www.cnblogs.com/egmkang/
     * Email:          egmkang [at] outlook.com
     * Weibo:        http://weibo.com/egmkang
     * Github:       http://github.com/egmkang
     *
     **********************************************************************/

  • 相关阅读:
    函数的缺省参数和函数初始化示例以及布尔型参数的使用示例
    指针使用示例程序
    按值传递对象和按址传递对象
    详解js跨域
    CSS之BFC及其应用
    js图片预加载、有序加载
    12个非常有用的JavaScript技巧
    MySQL使用pt-online-change-schema工具在线修改1.6亿级数据表结构
    nodeJS实现一个在线填表应用
    浏览器的缓存机制
  • 原文地址:https://www.cnblogs.com/egmkang/p/1651605.html
Copyright © 2011-2022 走看看