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

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

他曾经在就职于英特尔公司,是与芯片设计相关的,这课程标题虽然是与安卓相关的,但对于 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. Host 'localhost' has multiple addresses. 解决办法

    phpstorm调试php 错误提示: Host 'localhost' has multiple addresses. You must choose one explicitly!Couldn't ...

  2. 测试markdown 博客功能

    欢迎使用 Cmd - 在线 Markdown 编辑阅读器 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 -- 我们 ...

  3. springmvc跨域+token验证

      1)app后台跨域设置      2)拦截器中设置http报文header中token      3)token的生成实现 ==================================== ...

  4. 异类的Javascript处理和解析URL的方式

    通常来说,我们使用Javascript处理和解析URL是使用location对象.在今天这个代码小技巧中,我们使用另外一个比较异类的方式处理和解析URL. 代码如下: function parseUR ...

  5. span中内容随着数字长度的添加而增大

    场景:导航条中数据,当数据量不大时.仅仅会显示几页,数字仅仅有1,2.3,4..,数字写在span标签中, 则span不须要多宽.设置固定宽度就能够,但当数据量很大的.比如:日志管理--有增 删 改就 ...

  6. vscode - 移动端适配(cssrem)

    建议使用Chrome浏览器. 1.第一步,安装扩展以及配置 2.第二步,使用(记得按一下↓)

  7. 【转】使用python编写网络通信程序

    文章主体现部分来自:http://openexperience.iteye.com/blog/145701 1. 背景知识 如果使用TCP协议来传递数据,客户端和服务器端需要分别经过以下步骤: ser ...

  8. Xcode 打包 ipa 包

    原地址:http://zengwu3915.blog.163.com/blog/static/27834897201362831449893/ 上次介绍了木有证书的打包ipa.如果安装证书后,我们还有 ...

  9. zuul源码分析-探究原生zuul的工作原理

    前提 最近在项目中使用了SpringCloud,基于zuul搭建了一个提供加解密.鉴权等功能的网关服务.鉴于之前没怎么使用过Zuul,于是顺便仔细阅读了它的源码.实际上,zuul原来提供的功能是很单一 ...

  10. servlet request getQueryString 汉字的URI编码如何转码

    JavaScript中编码有三种方法:escape.encodeURI.encodeURIComponent,地址栏中那些%XX就是汉字对应的字节被encodeURI编码格式转了.一个字节对应一个% ...