android应用开发控制耗电量

来源:互联网 发布:淘宝热搜的关键词 编辑:程序博客网 时间:2024/05/16 18:30

智能手机耗电主要有两点,屏幕和网络通信。

正常程序是无法控制屏幕的,只能控制网络传输和连接策略。一般坚守下面几点
1.懒加载
不要预先加载大量的后续数据
2.建立缓存
减少下载重复的数据
3.选择好的交互格式
就是交互同等信息数据小,解析简单的。
4.压缩数据
对数据进行压缩处理。gzip,等方式先压缩要交互的数据



关于这个问题,你可以参考一下Android官方的一个培训教程:
http://blog.csdn.net/kesenhoo/article/details/7362512
上面是我翻译过的文章,其中以下几章节都是与电量有关的课程。
[【Android Advanced Training - 04】优化电池寿命Lesson 1 - 监测电池的电量与充电状态
[【Android Advanced Training - 04】优化电池寿命Lesson 2 - 判断并监测设备的停驻模式与类型(车载模式等)
[【Android Advanced Training - 04】优化电池寿命Lesson 3 - 判断并监测网络连接状态
[【Android Advanced Training - 04】优化电池寿命Lesson 4 - 按需操控Broadcast Receivers是否开启
[【Android Advanced Training - 05】传输数据时避免电量的浪费Lesson 0 - 章节概览
[【Android Advanced Training - 05】传输数据时避免电量的浪费Lesson 1 - 看无线电波如何影响网络操作
[【Android Advanced Training - 05】传输数据时避免电量的浪费Lesson 2 - 调整定时更新的频率(C2DM与退避算法的使用)
[【Android Advanced Training - 05】传输数据时避免电量的浪费Lesson 3 - 使用缓存来避免重复的下载
[【Android Advanced Training - 05】传输数据时避免电量的浪费Lesson 4 - 根据网络类型更改下载模式
想要全面的了解如何优化电量的使用,上面的知识点都是必不可少的,特别是第5章节的内容,介绍了一些电量控制的核心内容,希望对你有帮助!





如何降低android应用程序的耗电量

用户体验导向的Android应用开发——节省电量

随时都得插在墙上充电的设备,不叫移动设备。如果你的App让用户一直守着墙角,用户也会很快把你丢到墙角。你会问:“他怎么知道我的应用耗电?”很抱歉,目前来看,Android用户中有大量发烧友和技术高手,同时系统很不客气地记录了每个应用的耗电量,于是用户偶尔会去系统后台查查耗电大户,之后会毫不客气地打开卸载工具。

所以需注意以下几点:

第一,不要绞尽脑汁设计复杂算法,不要在后台跑服务,不要网断了还不停重试。在开发一个模块前先想想会不会费电,如果会,就不要去做。代码是为了服务用户,而不是折腾用户。

高手喜欢挑战,尤其在手机上实现精巧的算法,这样能带来更强的征服感。有人曾在手机上实现了布隆过滤器(一个庞大精巧的类哈希表,多用于在服务器端如垃圾邮件查找),其内存消耗和计算复杂度都远远高于普通的HashMap,且实现并不容易。结果App发布之后,出现用户抱怨耗电量大,并且经常出现Bug,最后还是老老实实换成了HashMap。任何算法的目的都是为了服务用户,如果简单自然的方法能更好地做到这点,何乐而不为?如果真的在客户端找不到简单的算法,则需要反思——为什么在手机上需要复杂的计算?是否该将这些计算放在服务器端?

第二,不要在后台滥用Service。Android非常开放,开发者可在后台触发任何处理逻辑,肆意占用CPU和内存。一般来说,Service的目的是为了监控变化,包括系统和网络变化。系统变化可通过注册BroadcastReceiver监听控制,比如应用安装和卸载等事件,这样耗电量非常小,完全可替代在Service中轮播。网络请求无法用BroadcastReceiver监听,但是有两个建议。

• 无严苛的实时性要求,可延长轮播间隔,如6小时自动请求一次,同时时间隔可通过服务器在线更新。这样既省电,偶尔急需实时推送时也可在线调整时间间隔。
• 对实时性有要求,考虑使用成熟的推送服务,如Google的C2DM(http://code.google.com/android/c2dm/),和亚马逊的AWS SDK (http://aws.amazon.com/sdkforandroid/)。

第三,网络请求不要太频繁。系统组件中最耗电的是屏幕,其次就是网络。前文已经提到过,网络出错重发会降低用户体验,还会耗费电力。可通过数据预取结合数据压缩算法减少网络请求次数。

总之,在开发时我们要替用户思考是否做到了“流畅、友好、省电”,以保证App拥有不错的用户体验。

* @author 张兴业
* 邮箱:xy-zhang#163.com



参考链接:
有效控制Android应用程序的耗电量
http://mobile.51cto.com/android-229128.htm




原创粉丝点击