我在做 App启动优化过程中发现,图片资源放在 xcode 自建目录下面和放在Images.xcassets中,加载速度差别很大。如图所示:
这是放在 xcode 自建图片目录中的加载时长
这是优化后放在Images.xcassets中的加载时长
加载时长的差别很大,所以图片一定要放在Images.xcassets目录中去。
以下是加载速度快的原因:
Images.xcassets 是 iOS 中用于存储和管理应用程序中的图像资源的一种方式。它提供了一个集中管理图像的地方,并且在构建应用程序时,Xcode 会将这些图像进行优化和打包,以便更有效地在运行时加载。
-
预编译和优化: 在构建应用程序时,Xcode 会对
Images.xcassets中的图像进行预编译和优化。这意味着图像可能会被转换成更适合目标设备的格式,以提高加载速度。 -
多分辨率支持:
Images.xcassets支持不同的图像分辨率和设备,例如@1x、@2x、@3x等。在运行时,系统会选择适合当前设备分辨率的图像,从而减少了加载不必要的高分辨率图像的开销。 -
App Thinning: 当你发布应用程序到 App Store 时,苹果会使用 App Thinning 技术,根据目标设备的特征仅仅包含所需的资源。这包括仅将适用于特定设备的图像包含在下载的应用程序包中,从而减小了应用程序的大小和提高了加载速度。
-
运行时适配: 在运行时,iOS 可以根据设备的特性和当前的运行情况选择适当的图像。例如,在不同的设备方向或暗黑模式下,系统可以动态地选择合适的图像,而无需重新加载整个资源。
总的来说,Images.xcassets 提供了一种有效的方式来组织和管理图像资源,并通过Xcode的构建和优化过程以及iOS运行时的适配能力,使图像加载速度更快且更有效率。
启动优化:另外我看计算文本框高度的时候,有博主说用异步计算高度,但是我尝试之后并没有降低耗时,所以不建议异步计算label高度。
异步计算耗时 8.00ms
同步计算耗时 5.00ms
实际操作之后,不建议异步计算高度。