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

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

他曾经在就职于英特尔公司,是与芯片设计相关的,这课程标题虽然是与安卓相关的,但对于 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. SpringMVC之HandlerMethodArgumentResolver和<mvc:argument-resolvers>

    SpringMVC提供了一个HandlerMethodArgumentResolver接口可以让我们处理方法的参数,和注解结合提来,能有很强大的功能,例如SpringMVC提供的@ModelAttri ...

  2. 数学图形(1.26)Clairaut曲线

    像瓜子样的曲线 相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 #http://www.mathcurve.com/cour ...

  3. 如何设置Win7不待机 Win7进入待机状态会断网的解决方法

    电脑一旦进入待机状态后,会断网,应用将停止运行,因此需要设置电脑不待机来解决,这种情况需要挂一些游戏或者下载应用的时非常实用,下面就与大家分享下电脑不待机的设置方法,感兴趣的朋友可以参考下 有时候我们 ...

  4. SWIG 快速入门

    SWIG 安装 本文使用了 SWIG 版本 2.0.4(参见 参考资料 获取下载站点的链接).要构建和安装 SWIG,可按照典型的开源安装流程,在命令提示符下输入以下命令: 请注意,为前缀提供的路径必 ...

  5. Symfony安装及使用

    安装Symfony,使用 brew install homebrew/php/symfony-installer 开始一直下载不了包,我手动浏览器下载了几个,发现好像都是Permission问题,运行 ...

  6. 彻底解决Odoo8.0单时区应用中的时区问题

    原文地址:http://shine-it.net/index.php/topic,17001.0.html 由于数据库中存储的是UTC时区,默认情况下数据导出和group by都存在时区问题.彻底解决 ...

  7. linux下停止tomcat

    bin/shutdown.sh -force 强行停掉tomcat 重启tomcat的脚本: /home/tomcat/bin/shutdown.sh -force/home/tomcat/bin/s ...

  8. itext测试地址

    http://demo.itextsupport.com/xmlworker/?snippetChooser=headers

  9. 算法笔记_029:约瑟夫斯问题(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 引用自<算法设计与分析基础>第三版: 约瑟夫斯问题,是以弗拉瓦斯.约瑟夫斯(Flavius Josephus)的名字命名的.约瑟夫斯是一 ...

  10. Linux 监测内存常用的工具sar free vmstat

    Linux 检测内存常用的工具sar free vmstat free 内存统计信息解释 total 内存总量used 内存使用的大小free 内存剩余大小shared 共享内存大小buffers 块 ...