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

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

他曾经在就职于英特尔公司,是与芯片设计相关的,这课程标题虽然是与安卓相关的,但对于 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. Python学习(六)模块 —— 第三方库

    Python 第三方库 安装第三方库 在Python中,安装第三方库包,是通过setuptools这个工具完成的.Python有两个封装了setuptools的包管理工具:easy_install和p ...

  2. 5 cocos2dx 3.0源码分析 渲染 render

    渲染,感觉这个挺重要了,这里代入一个简单的例子 Sprite 建立及到最后的画在屏幕上, 我们描述一下这个渲染的流程:   1 sprite 初始化(纹理, 坐标,及当前元素的坐标大小信息) 2 主循 ...

  3. fonts.conf 中文手册

    FONTS-CONF(5) FONTS-CONF(5) 名称 fonts.conf -- 字体配置文件 文件概要 /etc/fonts/fonts.conf /etc/fonts/fonts.dtd ...

  4. ubuntu14.04如何卸载mysql

    1. 删除mysql的数据文件 sudo rm /var/lib/mysql/ -R 2. 删除mqsql的配置文件 sudo rm /etc/mysql/ -R 3. 自动卸载mysql的程序 su ...

  5. [简谈]绕过HR破门而入的求职智慧

    以往我们在网上看到的非常多求职文章或指导性纲领,譬如啥自信.做功课.良好形象.华丽的简历.工作经验.口才啥的,事实上到了21世纪尤其是互联网快速发展的今天,前面这些技巧就显得无比空洞: 1.由于自信谁 ...

  6. [Webpack] Create Separate webpack Configs for Development and Production with webpack-merge

    The development and production modes in webpack optimize the output in different ways. In developmen ...

  7. python中各类时间的计算

    python获取当前系统时间: nowTime=time.localtime() 获取当前系统日期: nowDate=datetime.datetime(nowTime[0],nowTime[1],n ...

  8. JQuery 控制div滚动条保持最下

    $("#session_show").animate({ scrollTop: $("#session_show").scrollHeight },1000); ...

  9. android 程序更新(没有sdcard)

    今天总结一下我们写的程序需要更新(默认用户已经安装上旧版本了),而用户更新时却没有sdcard的情况,如果有sdcard,那就不用废话了... 先说一下软件更新的基本原理,从服务器下载一个程序的apk ...

  10. Android之GPS定位详解

    一.LocationManager LocationMangager,位置管理器.要想操作定位相关设备,必须先定义个LocationManager.我们可以通过如下代码创建LocationManger ...