这是安卓组的同事一个月前分享的一节课程,听课时写了一下笔记,之前是写在本子上的,感觉内容挺不错

的,就保存在博客了吧,方便回看。

他曾经在就职于英特尔公司,是与芯片设计相关的,这课程标题虽然是与安卓相关的,但对于 windows 移动开发

应该有借鉴意义。芯片相关的专业术语不懂,不过关于应用性能消耗的建议还不错,大多是常见的:

 
1)屏幕亮度和耗电关系较大
2)节省用户不关心的电。例如,如果用户在充电时,可以把下载等密集的任务可劲的执行,因为此时消耗的电量会很快补充上
3)定位模块耗电较多。手机在无信号时,会频繁的寻找信号,此时消耗电量较多
4)漏电功耗(芯片额外的消耗,比如芯片上的 0、1电位,导体中的电流):芯片漏电,温度越高,漏电越多(指数关系)
5)功耗的测量:1>专业的工具  2> android系统的 api(猜测 win rt系统的电量统计会提供给第三方 app调用)
 
6)LazyFirst,不要过于勤快的做各种操作(我理解的是延迟加载,只做必要的网络请求和操作)
7)尽量加快文件下载,增加下载速度,减少下载时间(猜测是网络请求和文件读写是耗电主因,所以下载时间越短,电量消耗越少)
8)服务器端传递的文本内容最好进行压缩(如 GZIP 压缩。可以通过设置“请求报文头”来通知服务器进行压缩)
9)不紧急的工作和操作,积累到一起同时做(比如 把多次的 uri 请求 合并成一个 uri 请求),或者在用户充电时,在后台完成
10)按需动态加载,卸载(例如,在 wp 端 sdk 提供的 ListBox 通过 VirtualStackPanel 来动态加载 item,原理是判断当前 item 是否在屏幕内,
来动态创建和删除,如果用户连续上、下划动,对cpu 计算量较多)
 
11)小心 weaklook (我理解的是 wp 端的app,如果在用户不和屏幕进行交互时,避免调用屏幕“常亮”的api,或者阻止操作系统睡眠)
12)建议少用浮点运算,尽量改为整数运算,从而减少 cpu 消耗
13)减少复杂结构反复的生成和销毁
14)使用高效的文本格式(json、xml等)解析器
15)使用缓存,减少内存(我理解的是不频繁访问的数据缓存到本地文件中,而不是保持在内存中,需要时再加载)
 
16)使用 CPU 及其它芯片上的加速器
17)优化核心算法的复杂度
18)耗电大户:网络下载、屏幕亮度、cpu运算(还有内存占用)
19)合并必要的上传、下载请求
20)在定位时,尽量使用网络(wifi)、其次是基站定位,最后在考虑使用 GPS 定位
21)动态调整屏幕亮度。深色主题更节省电能

03、同事分享课程的笔记 —《Android应用低功耗设计》的更多相关文章

  1. 读书笔记--Android Gradle权威指南(下)

    前言 最近看了一本书<Android Gradle 权威指南>,收获挺多,就想着来记录一些读书笔记,方便后续查阅. 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南( ...

  2. Mina框架的学习笔记——Android客户端的实现

    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...

  3. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  4. Android笔记——Android中数据的存储方式(二)

    我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...

  5. 《云大课程助手》Android刷课工具来袭

    云大课程助手(Android)谨以此app纪念我这四年的大学生活.希望大家用的愉快. 下载地址:http://zhushou.360.cn/detail/index/soft_id/922292注:已 ...

  6. 王家林的81门一站式云计算分布式大数据&移动互联网解决方案课程第14门课程:Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&HTML5架构设计与实战开发

    掌握Android从底层开发到框架整合技术到上层App开发及HTML5的全部技术: 一次彻底的Android架构.思想和实战技术的洗礼: 彻底掌握Andorid HAL.Android Runtime ...

  7. Android 高级UI设计笔记07:RecyclerView 的详解

    1. 使用RecyclerView       在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...

  8. Android 开发笔记 “Android 的消息队列模型”

    Android是参考Windows的消息循环机制来实现Android自身的消息循环的. Android通过Looper.Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都 ...

  9. 趣文分享:有人将Android开发环境比作女人

    (一个移动开发者大会活动推荐:http://www.eoeandroid.com/thread-303943-1-1.html) 趣文分享:有人将Android开发环境比作女人 在日常开发工作中,我们 ...

随机推荐

  1. Kafka实战-Flume到Kafka (转)

    原文链接:Kafka实战-Flume到Kafka 1.概述 前面给大家介绍了整个Kafka项目的开发流程,今天给大家分享Kafka如何获取数据源,即Kafka生产数据.下面是今天要分享的目录: 数据来 ...

  2. getaddrinfo详解

    #include <sys/socket.h> #include <netdb.h> int getaddrinfo(const char *restrict nodename ...

  3. JNI字段描述符

    “([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码.这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors).一个数组 ...

  4. Gnome桌面的下拉式终端: Guake

    什么是Guake? Guake是应用于Gnome环境的下拉式终端.主要由Python编写,使用了一些C,它以GPL2+许可证发布,适用于Linux以及类似的系统.Guake的灵感来源于电脑游戏Quak ...

  5. ActiveMQ的环境搭建及使用

    一:环境搭建 ActiveMQ官网下载mq在windows上的安装包:http://activemq.apache.org/,解压到某个磁盘下. 运行要环境条件:jdk安装1.8,(本人这里安装版本) ...

  6. 搜集整理一些Cron表达式例子

    1.cronExpression配置说明 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / ...

  7. MyEclipse发布按钮无效的办法

    删除存放您MyEclipse项目的目录下的“/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.as ...

  8. iOS 本地通知 操作

    iOS 本地通知 操作 1:配置通知:然后退出程序: UILocalNotification *localNotif = [[UILocalNotification alloc] init]; loc ...

  9. 总想自己动动手系列·1·本地和外网(Liunx服务器上部署的web项目)按照自定义的报文格式进行交互(准备篇)

    一.准备工作 (1)有一台属于自己的云服务器,并成功部署和发布一个web项目(当然,本质上来说Java-Project也没问题),通过外网IP可以正常访问该web项目. 需要说明的是:任何web项目, ...

  10. tomcat支持中文文件名下载

    http://blog.csdn.net/wnczwl369/article/details/7483806 Tomcat 是Java开发者使用得较多的一个Web服务器,因为它占用资源小,运行速度快等 ...