怎么在iOS开发中对性能进行优化

  介绍

怎么在iOS开发中对性能进行优化?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>一、快

应用启动慢,使用时经常卡顿,是非常影响用户体验的,应该尽量避免出现。卡顿的场景有很多,按场景可以分为4类:UI绘制,应用启动,页面跳转,事件响应。引起卡顿的原因很多,但不管怎么样的原因和场景,最终都是通过设备屏幕上显示来达到用户,归根到底就是显示有问题,

根据iOS系统显示原理可以看的到,影响绘制的根本原因有以下两个方面:

1。绘制任务太重,绘制一帧内容耗时太长。
2。主线程太忙,根据系统传递过来的VSYNC信号来时还没准备好数据导致丢帧。

绘制耗时太长,有一些工具可以帮助我们定位问题。主线程太忙则需要注意了,主线程关键职责是处理用户交互,在屏幕上绘制像素,并进行加载显示相关的数据,所以特别需要避免任何主线程的事情,这样应用程序才能保持对用户操作的即时响应。总结起来,主线程主要做以下几个方面工作:

1。UI生命周期控制
2。系统事件处理
3。消息处理
4。界面布局
5。界面绘制
6。界面刷新

除此之外,应该尽量避免将其他处理放在主线程中,特别复杂的数据计算和网络请求等。

<强>二、稳

应用的稳定性定义很宽,泛影响稳定性的原因很多,比如内存使用不合理,代码异常场景考虑不周全,代码逻辑不合理等,都会对应用的稳定性造成影响。其中最常见的两个场景是:崩溃和ANR,这两个错误将会使得程序无法使用,比较常用的解决方式如下:

1。提高代码质量,比如开发期间的代码审核,看些代码设计逻辑,业务合理性等。
2。代码静态扫描工具。常见工具有叮当声静态分析器,OCLint、推断等等。
3.事故监控。把一些崩溃的信息,异常信息及时地记录下来,以便后续分析解决。
4.事故上传机制。在崩溃后,尽量先保存日志到本地,然后等下一次网络正常时再上传日志信息。

<强>三、省

在移动设备中,电池的重要性不言而喻,没有电什么都干不成。对于操作系统和设备开发商来说,耗电优化一致没有停止,去追求更长的待机时间,而对于一款应用来说,并不是可以忽略电量使用问题,特别是那些被归为“电池杀手”的应用,最终的结果是被卸载,因此,应用开发者在实现需求的同时,需要尽量减少电量的消耗。

<强> 1。CPU

不论用户是否正在直接使用,CPU都是应用所使用的主要硬件,在后台操作和处理推送通知时,应用仍然会消耗CPU资源
应用计算的越多,消耗的电量越多。在完成相同的基本操作时,老一代的设备会消耗更多的电量,计算量的消耗取决于不同的因素

<强> 2。网络

智能的网络访问管理可以让应用响应的更快,并有助于延长电池寿命。在无法访问网络时,应该推迟后续的网络请求,直到网络连接恢复为止。此外,应避免在没有连接WiFi的情况下进行高宽带消耗的操作。比如视频流,众所周知,蜂窝无线系统(4 g LTE, 3 g等)对电量的消耗远远大于无线信号,根源在于LTE设备基于多输入,多输出技术,使用多个并发信号以维护两端的LTE链接,类似的,所有的蜂窝数据链接都会定期扫描以寻找更强的信号。因此:我们需要

1)在进行任何网络操作之前,先检查合适的网络连接是否可用
2)持续监视网络的可用性,并在链接状态发生变化时给与适当的反馈
3)。定位管理器和* * GPS * *

我们都知道定位服务是很耗电的,使用GPS计算坐标需要确定两点信息:

1)时间锁每个GPS卫星每毫秒广播唯一一个1023位随机数,因而数据传播速率是1.024 mbit/s GPS的接收芯片必须正确的与卫星的时间锁槽对齐
2)频率锁GPS接收器必须计算由接收器与卫星的相对运动导致的多普勒偏移带来的信号误差

计算坐标会不断的使用CPU和GPS的硬件资源,因此他们会迅速的消耗电池电量,那么怎么减少呢?

1)关闭无关紧要的特性

判断何时需要跟踪位置的变化,在需要跟踪的时候调用startUpdatingLocation方法,无须跟踪时调用stopUpdatingLocation方法。
当应用在后台运行或用户没有与别人聊天时,也应该关闭位置跟踪,也就说说,浏览媒体库,查看朋友列表或调整应用设置时,都应该关闭位置跟踪

怎么在iOS开发中对性能进行优化