iOS - 性能优化及常见知识点

2020-12-31  本文已影响0人  温柔vs先生

1.造成tableView卡顿的原因有哪些?

2.如何提升 tableview 的流畅度?

3.APP启动时间应从哪些方面优化?

App启动时间可以通过xcode提供的工具来度量,在Xcode的Product->Scheme-->Edit Scheme->Run->Auguments中,将环境变量DYLD_PRINT_STATISTICS设为YES,优化需以下方面入手

4.如何降低APP包的大小

降低包大小需要从两方面着手

5.如何检测离屏渲染与优化

6.怎么检测图层混合

1、模拟器debug中color blended layers红色区域表示图层发生了混合

2、Instrument-选中Core Animation-勾选Color Blended Layers

避免图层混合:

UILabel图层混合解决方法:

iOS8以后设置背景色为非透明色并且设置label.layer.masksToBounds=YES让label只会渲染她的实际size区域,就能解决UILabel的图层混合问题

iOS8 之前只要设置背景色为非透明的就行

为什么设置了背景色但是在iOS8上仍然出现了图层混合呢?

UILabel在iOS8前后的变化,在iOS8以前,UILabel使用的是CALayer作为底图层,而在iOS8开始,UILabel的底图层变成了_UILabelLayer,绘制文本也有所改变。在背景色的四周多了一圈透明的边,而这一圈透明的边明显超出了图层的矩形区域,设置图层的masksToBounds为YES时,图层将会沿着Bounds进行裁剪 图层混合问题解决了

7.日常如何检查内存泄露?

8.iOS的推送原理:

image.png

从图中可以很清楚的看出来推送的原理主要分为以下几步:

  1. 由App向iOS设备发送一个注册通知,用户需要同意系统发送推送。
  2. iOS向APNs远程推送服务器发送App的Bundle Id和设备的UDID。
  3. APNs根据设备的UDID和App的Bundle Id生成deviceToken再发回给App。
  4. App再将deviceToken发送给远程推送服务器(自己的服务器), 由服务器保存在数据库中。
  5. 当自己的服务器想发送推送时, 在远程推送服务器中输入要发送的消息并选择发给哪些用户的deviceToken,由远程推送服务器发送给APNs。
  6. APNs根据deviceToken发送给对应的用户。

其他面试题篇章:

原文路径:

https://www.cnblogs.com/orang123/p/12420583.html

上一篇下一篇

猜你喜欢

热点阅读