时间: 2021-08-03 09:50:01 人气: 20 评论: 0
文章作者结合自身经验分享了关于APP耗电优化的相关知识,希望能够给你带来帮助。
虽然市面上出现了各种大容量的电池或者快充技术,但是目前在没有新材料的支撑下,都不可能完全解决app耗电这个难题,作为产品经理在设计产品的时候无论是否考虑耗电这个因素,用户对某一个app耗电的多少其实是不容易感知的,即便是这样,也希望大家能够了解app耗电和优化的一些基础知识,在移动互联网时代下,这或多或少对于用户来说都是有益的。
先来说一说手机耗电,一般来讲,手机耗电分为以下五个因素:
我们可以使用专业的测试手机电流的软件测试手机的电流,这样是非常精确的,或者下载三方app,最简单是在手机设置的电量管理中观察不同app消耗的电量多少。
了解这块之前要知道CPU为什么**耗电?CPU在运行复杂度不同的任务是采用调频处理的,当手机处理复杂任务时,频率也**提高,自然对于电量的需求**增加。另外,当APP进程的CPU使用率**过1%的时候,都是耗电比较大的。应用软件为什么**耗电?又是通过什么途径来耗电的?总结起来大概有以下几点:
正常情况下,关闭后台软件,在玩王者荣耀游戏和听音乐的时候手机耗电一定是差别很大的,因为玩游戏的时候**和屏幕产生很多的交互,但是听音乐就不**这样,频繁的交互式非常耗电的,
当我们设计交互动画的效果时,调用的都是view或者其子类,比如按钮在点击前是效果1,点击后变成效果2,设置更复杂的动画,此时view的重绘让CPU或GPU不断计算,耗电量同样**增加。
直接地说,app的布局文件影响着app展示给用户的效果,当布局过于复杂,布局文件嵌套太多时,布局xml文件越来越繁多,查找、加载这些文件显示时**造成CPU计算加重,也**影响手机耗电。
安卓时基于轻量级数据库sqllite,关系型数据库的特征就是**有复杂的数据表关系,频繁地调用数据库查询语句**加重系统的负担,同样的也**耗电,甚至**影响整体的性能。
安卓CPU休眠时一种安卓极致省电的一种模式,如果你息屏一段时间,CPU**自动进入休眠,但是唤醒CPU和亮屏不是一个概念,有这样一个过程,当某个应用唤醒CPU,给你推送了某条通知,当你亮屏打开手机后**看到这条通知,那么它就是唤醒了手机的CPU,而我们知道CPU工作时需要电量了,尤其是在频繁唤醒的情况下,或者发送心跳包。
切换网络往往需要硬件的支持,硬件需要跑起来也是需要电量的,并且数据网络比wifi更加耗电,2G,3G,4G网络耗电都不同。
比如解析json这类耗时时间较长的数据格式,或二进制编码解码等。
除了上述几个原因之外,后台常驻service、任务堆积的队列太多,导致循环执行太多(log日志的保存)Wake Lock使用不当导致没有及时的释放等都**加重安卓手机的耗电。
比如长时间让应用动态地翻滚显示不同的页面,当然除此之外还包括用户和屏幕的交互,在设计app的时候适当简化用户的操作流程,简化掉可以帮助用户做的,不仅仅是为了省电,也可以提高用户的效率。
有些复杂的动画效果完全可以省略,采用静态的app启动页,或者是点击事件的交互、页面跳转时就用尽量减少不必要的动画效果。
在设计app时,在某一页上应该尽量简化布局,例如三星S8负一屏,用卡**方式呈现,布局就很简洁
在做搜索功能时,要特别注意,搜索文件、联系人、短信、通话记录这些都是要进行数据库或者SD卡操作的,一方面我们要设计合理的数据表,另一方面也要尽量减少这类的搜索,能避免使用时就不用。
基于定时任务的意义,大部分的定时任务都不容易取消。
除了产品经理可以做这些,程序开发者能够做的有以下几点:
虽然我们很清楚耗电的原因,但是我们还是做不好,涉及的因素方方面面,我们无法改变重构底层代码、无法优化整个系统、技术瓶颈、不得不定时发送心跳包…但是作为一名产品经理我们能够做到是尽量减少交互、改善产品交互逻辑、优化动画效果、简化布局…其实我们能够做的还很多。
本文由 @虚伪的温柔 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自unsplash,基于CC0协议