在09年Google IO大会Jeffrey Sharkey的演讲(Coding for Life — Battery Life, That Is) 中就探讨了这个问题,指出android应用的耗电主要在以下三个方面: 大数据量的传输。 不停的在网络间切换 。 解析大量的文本数据。 并提出了相关的优化建议: 在需要网络连接的程序中,首先检查网络连接是否正常,如果没有网络连接,那么就不需要执行相应的程序。 使用效率高的数据格式和解析方法,推荐使用JSON和Protobuf。 目在进行大数据量下载时,尽量使用GZIP方式下载。 其它:回收java对象,特别是较大的java对像,使用reset方法;对定位要求不是太高的话尽量不要使用GPS定位, 可能使用wifi和移动网络cell定位即可;尽量不要使用浮点运算;获取屏幕尺寸等信息可以使用缓存技术,不需要进行多次请求; 使用AlarmManager来定时启动服务替代使用sleep方式的定时任务。 作为app开发者,或许很少有人会注意app对电量的损耗,但是用户对电量可是很敏感的,app做好电量损耗的优化会为自己的app加分不少。 如果是一个好的负责任的开发者,就应该限制app对电量的影响,当没有网络连接的时候,禁用后台服务更新, 当电池电量低的时候减少更新的频率,确保自己的app对电池的影响降到最低。 当电池充电或者电量比较饱和时,可以最大限度的发挥app的刷新率 CPU被唤醒的次数越多,耗电量会越大。现在很多应用为了维持心跳、拉取数据、主动PUSH会不同程度地注册alarm服务, 导致Android系统被频繁唤醒。 这就是为什么雷军说Android手机在安装了TOP100的应用后,待机时间会大大缩短的重要原因。