App相关
1优化启动时间:
1App包瘦身
卡顿性能优化:
2.1界面渲染时间计算
(1)my_viewDidLoad开始 my_viewDidAppear结束,时间差
(2)KVO巧妙利用KVO实现精准的VC耗时检测
2.2卡顿监测
2.3GPU渲染优化
2.4CPU优化
3.debug能力
3.1收集崩溃
3.2分析崩溃
3.3解决(预防)奔溃
内存性能优化
存储性能优化
线上应用,怎么采集崩溃日志?
采集后怎么分析解决?
崩溃类型
数组问题:1.数组越界 2.数组添加nil时
解决办法:
iOS数组防止越界crash
2.多线程问题:1.子线程中进行 UI 更新 2.多个线程进行数据的读取操作
3.主线程无响应,主线程超过一点时间无响应,会被系统杀死
崩溃问题对应的异常编码是 0x8badf00d
4.野指针,还在使用中的已经释放的指针
收集崩溃日志
方法1:
打包上架时上传app’s symbols
方法2:收集可捕捉的崩溃信号
监听崩溃发出的信号,并在崩溃前保存堆栈信息
iOS中的奇怪崩溃Signal和EXC_BAD_ACCESS错误分析
收集不到的崩溃日志
1.后台崩溃问题
问题:
应用被退到后台后,有几秒执行时间,可以用beginBackgroundTask
延迟执行时间(3分钟),但如果3分钟内没执行完,应用进程会被强制杀死。
解决:
执行后台读写任务时,先判断网络情况和数据大小,如果太大可以考虑下次启动或者后台唤醒后再执行。
问题:怎么判断应用是否正在执行?
判断应用状态,是否挂起
网友评论