• 03、同事分享课程的笔记 —《Android应用低功耗设计》


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

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

           他曾经在就职于英特尔公司,是与芯片设计相关的,这课程标题虽然是与安卓相关的,但对于 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)动态调整屏幕亮度。深色主题更节省电能
  • 相关阅读:
    An introduction to parsing text in Haskell with Parsec
    Kafka and ZooKeeper
    Kotlin + Anko for Android
    LibGDX
    OpenCV
    大中型网站技术实践系列
    Go by Example
    Benchmarks for the Top Server-Side Swift Frameworks vs. Node.js
    The Languages and Frameworks You Should Learn in 2017
    RabbitMQ
  • 原文地址:https://www.cnblogs.com/hebeiDGL/p/4265233.html
Copyright © 2020-2023  润新知