Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Moosphan opened this issue Jul 22, 2019 · 14 comments
Open

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

Moosphan opened this issue Jul 22, 2019 · 14 comments

Comments

@Moosphan
Copy link
Owner

No description provided.

@dahuoyzs
Copy link

@zhaoerlei1989
Copy link

优化方案总结

(1)GPS

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

(2)Process和Service

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

(3)网络数据交互

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

(4)CPU

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

(5)减少手机硬件交互

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

@whatshappen
Copy link

关机

@ADrunkenLiBai
Copy link

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

@gabyallen
Copy link

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

@MoJieBlog
Copy link
Collaborator

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

其他的暂时想不到了。

@yangfanggang
Copy link

没做过这块

在线百度了解一下

帮顶

@roidcoder
Copy link

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

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

@roidcoder
Copy link

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

@manondidi
Copy link

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

@xiaoyunfei
Copy link

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

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

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

@aositeluoke
Copy link

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

把自己做好就行

@mlinqirong
Copy link

关掉GPS
减少网络请求

@senlinxuefeng
Copy link

APP 耗电量

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests