Android-Daily-Interview icon indicating copy to clipboard operation
Android-Daily-Interview copied to clipboard

2019-07-22:谈谈App的电量优化?

Open Moosphan opened this issue 4 years ago • 14 comments

Moosphan avatar Jul 22 '19 00:07 Moosphan

dahuoyzs avatar Jul 22 '19 01:07 dahuoyzs

优化方案总结

(1)GPS

——使用要谨慎,如精确度不高可用WiFi定位或者基站定位,可用;非要用的话,注意定位数据的复用和定位频率的阈值

(2)Process和Service

——按需启动,用完就退出

(3)网络数据交互

——减少网络网络请求次数和数据量;WiFi比手机网络省电

(4)CPU

——减少I/O操作(包括数据库操作),减少大量的计算

(5)减少手机硬件交互

——使用频率优化和选择低功耗模式

zhaoerlei1989 avatar Jul 22 '19 01:07 zhaoerlei1989

关机

whatshappen avatar Jul 22 '19 01:07 whatshappen

Use miniature nuclear power plants as power sources!这才是王道,要不然你优化的再好,在10秒就要关机的手机上也是顶不了俩小时,优化不应该从代码层入手,要从根本解决问题,将手机的电源做大做强,未来也许手机可以给新能源汽车充电

ADrunkenLiBai avatar Jul 22 '19 01:07 ADrunkenLiBai

1.灭屏优化最省电 2.使用Wi-Fi比使用蜂窝2,3,4,5g更省电 3.减少唤起cup次数 4.减少唤起锁持续时间,长时间唤起锁会加大消耗电量 5.GPS长时间持续使用,加大电量消耗 6.减少网络与Wi-Fi之间的切换的次数

gabyallen avatar Jul 22 '19 02:07 gabyallen

  • 避免轮循。可以利用推送。如果非要轮循,合理的设置频率。
  • 应用处于后台时,避免某些数据的传输,比如感应器,定位,视频缓存。
  • 页面销毁时,取消掉网络请求。
  • 限制访问频率,失败后不要无限的重连。
  • 合理的选择定位精度和频率。
  • 使用缓存。如果数据变化周期比较长,可以出一个配置接口,用于记录那些接口有变化。没变化的直接用缓存。
  • 减少广播的使用频率。可以用观察者,startActivityForResult等代替。

其他的暂时想不到了。

MoJieBlog avatar Jul 22 '19 08:07 MoJieBlog

没做过这块

在线百度了解一下

帮顶

yangfanggang avatar Jul 22 '19 08:07 yangfanggang

Use miniature nuclear power plants as power sources!这才是王道,要不然你优化的再好,在10秒就要关机的手机上也是顶不了俩小时,优化不应该从代码层入手,要从根本解决问题,将手机的电源做大做强,未来也许手机可以给新能源汽车充电

现阶段说有这些有啥用,做好开发者该做好的事就行了。

roidcoder avatar Aug 04 '19 12:08 roidcoder

主要是现在有些应用程序,甚至大厂的app,对权限的滥用,造成app在后台还是在不断的请求网络和监听一些事件,甚至会为了所谓的保活,在全家桶内的app关联启动,造成手机电量急剧消耗。

roidcoder avatar Aug 04 '19 12:08 roidcoder

1.网络频射模块式最耗电的模块之一,做好电量优化首先就是要做好网络优化,不要频繁请求网络,因为每次调用网络之后,系统都会在一定时间内保持活跃,如果可以集中请求网络,可以减少保持活跃的时间 2.及时归还 wakeloc 比如在看视频的时候禁止息屏,退出视频的时候就要及时归还 3.gps使用完毕之后要及时释放 4.要定时轮询的,可以使用 alarmManager ,系统会优化所有的事件,会在误差不大的情况下集中区处理 5.使用jobSchedule, 判断在一定条件下 例如 wifi+充电的情况下 去做操作 6.使用workManager 的区别是 迟早要做 且一定会执行 还有, 有些不重要的事情,比方说埋点,万万不可立即上报 会频繁请求网络. 可以使用workManager 7.向轮播图这种 当不可见的时候 要停止 8.监听充电状态, 有些事情在充电时候去做

manondidi avatar Jan 20 '20 02:01 manondidi

  • 网络请求 1、减少数据量的传输,数据可以压缩之后再传递、减少非必要的数据; 2、尽量不要使用轮询,可以使用推送; 3、如果非要使用轮询,注意频率; 4、当页面销毁的时候,终止数据的请求; 5、当页面在后台的时候,部分数据可以停止传输; 6、数据请求失败的时候,不要无限重连

  • GPS 1、如果精度要求不高的情况下,可以使用WiFi 和 基站定位; 2、如果使用GPS定位,需要注意调用的频率; 3、如果多个界面需要定位,尽量做到复用; 4、当页面处于后台的时候,如非必要,可以暂停定位;

  • 手机硬件 1、传感器使用结束的时候,要及时回收; 2、当页面处于后台的时候,如非必要,可以暂停数据的传输;

xiaoyunfei avatar Aug 03 '20 12:08 xiaoyunfei

主要是现在有些应用程序,甚至大厂的app,对权限的滥用,造成app在后台还是在不断的请求网络和监听一些事件,甚至会为了所谓的保活,在全家桶内的app关联启动,造成手机电量急剧消耗。

把自己做好就行

aositeluoke avatar Dec 06 '20 05:12 aositeluoke

关掉GPS 减少网络请求

mlinqirong avatar Dec 27 '21 06:12 mlinqirong