学习笔记11-卡顿、有序广播、请求安全防护、预热prewarm

189 阅读3分钟

卡顿

卡顿常用指标:设备卡顿率(卡顿阈值可以根据项目情况指定,比如3000ms),慢函数,帧率 FPS,等 治理方式:直接方式,解决上报的卡顿问题;间接方式,通过重构技术方案,批量解决现有的或潜在的卡顿问题。 常见卡顿类型:大量计算,在主线程进行复杂或大量的计算任务。大量的文本处理,文本的渲染和处理是一个相对昂贵的操作,特别是当涉及到动态文本布局或富文本时。图片处理,图片的加载、解码和渲染都需要消耗资源,尤其是高分辨率的图片。视图层级过多,复杂的视图层级会增加CPU和GPU的负担。频繁的布局计算,尤其是在动画或滚动操作中,会导致性能问题。离屏渲染,资源竞争等。

有序广播

有序广播(Ordered Broadcast)是Android系统中一种广播通信机制。有序广播的特点是它按照一定的顺序传递,广播接收者按照优先级接收广播,并且前面的接收者有权终止广播。此外,前面的接收者还可以对广播中的数据进行修改。 在iOS中,并没有与Android有序广播直接对应的概念。iOS的广播机制主要依赖于 NotificationCenter(通知中心)和 Notification(通知),它是基于发布-订阅模式的。在iOS中,当一个对象发出通知时,所有注册了该通知的对象都会收到这个通知,这个过程是异步的,并且没有预设的顺序。所有的观察者几乎是同时收到通知的,而且没有任何机制可以让一个观察者阻止其他观察者接收通知。

请求安全防护

防范抓包:在iOS应用开发中,防范抓包主要是为了保护应用的数据传输安全,防止敏感信息如API密钥、用户凭据等被拦截和泄漏。 以下是一些常见的防范抓包的措施:使用HTTPS,确保所有的网络请求都通过HTTPS协议进行,这样可以加密数据传输,防止数据在传输过程中被窃听或篡改。证书固定,它要求客户端只接受特定的服务器证书,而不是任何可信任的CA签发的证书。验证证书链,在客户端对服务器的证书链进行验证,确保证书是由可信的CA签发,并且没有过期或被撤销。检测抓包行为,例如检查网络请求是否被重定向到第三方代理。 其它安全防护手段:认证和授权,使用OAuth2.0、JWT或其他认证机制来确保只有授权的用户可以访问API。输入验证,对用户输入进行严格的验证,以防止SQL注入、跨站脚本XSS等攻击。

prewarm

在 iOS 15 及更高版本中,系统可能会根据设备条件预热您的应用程序 - 启动非运行的应用程序进程,以减少用户在应用程序可用之前等待的时间。预热会执行应用程序的启动序列,直到但不包括 main() 调用 UIApplicationMain 时。这为系统提供了构建和缓存预期全面启动所需的任何低级结构的机会。 launch.jpg 判断是否为预热的代码如下:

if let activePrewarm = ProcessInfo.processInfo.environment["ActivePrewarm"] {
  /// 当 activePrewarm 为1时,就表示为预热
}

参考文档