iOS开发之如何优化App的电量
终于有时间整理一下,以前没来的及记录的知识点了,话不多说,开始表演......
程序的耗电主要是四个方面:CPU处理,定位,网络,图像;
对于这四个方面的优化,我们可以这么做:
CPU处理:
1、尽可能降低CPU、GPU的功耗,比如:少用定时器;
2、优化I/O操作(什么,你不懂什么是I/O操作?简单的来说就是对数据的处理,读写操作),比如:不要频繁的写入小数据,而是积累到一定的数量再写入;读写大量的数据可以使用Dispatch_io,GCD内部已经做了优化;数据量比较大的时候,使用数据库;
定位:
1、如果只是需要快速确定用户位置,最好用CLLocationManager的requestLocation方法,定位完成后,会自动让定位硬件断电;
2、如果不是导航应用,尽量不要实时更新位置,定位完毕关闭定位服务;
3、降低定位精度,设置pausesLocationUpdatesAutomatically为YES,这样用户不太可能移动的时候系统高会自动暂停位置更新;
4、尽量不要使用startMonitoringSignificantLocationChanges,优先考虑startMonitoringForRegion;
网络:
1、网络数据相同,使用NSCache进行缓存;
2、使用断点续传,避免因网络失败后重新下载;
3、网络不可用时,不尝试进行网络请求;
4、设置超时时间或提供可取消网络请求的操作;
5、采取批量传输,下载视频流时,尽量一大块一大块的进行下载,广告可以一次下载多个
图像:
1、保证UI真的需要变化时,进行屏幕更新;
2、避免blurs(模糊处理);
节省电量的四个基本原则:
1、Identify:想清楚你需要app在特定时刻需要完成哪些工作,如果是不必要的工作,考虑延后执行或者省去;
【iOS开发之如何优化App的电量】2、Optimize:优化app的功能实现,尽可能以更有效的方式去完成功能;
3、Coalesce:合并内容,避免重复;
4、Reduce:减少做重复工作的频率;
相关文章:
https://www.jianshu.com/p/f0dc653d04ca
推荐阅读
- 开学第一天(下)
- 20170612时间和注意力开销记录
- 深入理解Go之generate
- 开花店的前景怎么样()
- 眉头开了
- 上班后阅读开始变成一件奢侈的事
- 2020-04-07vue中Axios的封装和API接口的管理
- 小影写在2018九月开学季
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 从蓦然回首到花开在眼前,都是为了更好的明天。