美文网首页
iOS应用启动及优化点

iOS应用启动及优化点

作者: 顺其自然2017 | 来源:发表于2019-11-17 16:51 被阅读0次

在iOS系统中,APP的启动分为两种,我将其称之为全加载启动和缓存启动

1.全加载启动,即在iOS系统中没有该APP进程存在,一切都需要重新开始

2.缓存启动,即在iOS系统中存在改APP进程,需要唤醒APP进入前台工作

程序启动耗时获取

在 Xcode 导航栏中 Edit scheme -> Run -> Auguments 将环境变量 DYLD_PRINT_STATISTICS设为 YES即可

启动时间图

dylib loading time 动态库加载时间

rebase/binding time 重定向地址绑定外部指针时间

ObjC setup time  OC等类设置时间

initializer time 初始化时间

slowest intializers 最慢初始化模块


这里我们只介绍全加载启动

全加载启动分为两个部分预加载初始化

预加载:

1.获取APP plist配置文件,读取配置信息

2.创建运行沙盒,每次启动,沙盒内存位置都不相同(地址空间布局随机化机制 ASLR)

3.检查plist文件申请的权限信息

4.加载可执行文件Mach-O

5.读取动态链接器路径,运行动态链接器

6.使用动态链接器加载直接或者间接依赖的动态库

    6.1 验证动态库有效性和代码签名,读取到内核,链接动态库

    6.2 重定向动态库地址(ASLR), 查询符号表绑定外部指针(I/O 与CPU计算耗时)

    6.3 启动运行时runtime,维护类和方法表,注册类、分类、结构体,指定每个方法名的唯一性

    6.4 初始化OC、C++,调用+load方法,构造器函数(attribute((constructor))修饰),创建非基本类型的C++静态全局变量

初始化:

1.main 函数

2.执行UIApplicationMain

    2.1 创建UIApplication对象

    2.2 创建UIApplication的delegate对象

    2.3 创建MainRunloop主循环

    2.4 delegate监听处理系统事件

3.程序启动完毕,调用App生命周期启动回调方法

    3.1 配置需要用到的第三方库

    3.2 创建展示UIWindow

    3.3 创建和设置UIWindow的根视图控制器rootViewController

4.最终显示UI


启动优化:

经过以上APP启动分析,可以优化的着手点如下

1.删减无用的类、资源文件,减少资源文件大小

2.删减不必要的依赖库,减少动态库的引用

3.确定库的引用方式,减少额外的检查

4.减少项目文件中分类、类别的使用以及静态变量的使用数量

5.初始化库和工具,如非必要,异步执行

6.UI实现尽量使用纯代码,减少xib等文件的使用(xib等文件需要转换为纯代码,耗费时间)。

相关文章

  • iOS应用启动及优化点

    在iOS系统中,APP的启动分为两种,我将其称之为全加载启动和缓存启动 1.全加载启动,即在iOS系统中没有该AP...

  • iOS客户端启动优化

    最近读了几篇文章,关于iOS启动优化,目前看,只有这一篇全面透彻一点。 今日头条iOS客户端启动速度优化 应用启动...

  • iOS 二进制重排

    iOS 应用启动优化 1.启动 1.1 冷启动 冷启动指的是第一次打开应用,或者打开很多其他应用后再打开该应用也可...

  • 【高级iOS】启动时间优化

    【高级iOS】启动时间优化 【高级iOS】启动时间优化

  • IOS应用启动优化

    实现效果图 要让xcode的控制台打印出这些信息很简单只需要配置xcode run的环境变量。步骤如图 打开xco...

  • APP性能优化

    iOS APP性能优化 1:应用启动时间应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加...

  • Android应用启动优化:一种DelayLoad的实现和原理

    0. 应用启动优化概述 在 Android 开发中,应用启动速度是一个非常重要的点,应用启动优化也是一个非常重要的...

  • 应用启动优化:一种DelayLoad的实现和原理(上篇)

    0. 应用启动优化概述 在 Android 开发中,应用启动速度是一个非常重要的点,应用启动优化也是一个非常重要的...

  • iOS 性能优化三

    主要讲解APP冷启动的优化 iOS 性能优化一iOS 性能优化二iOS 性能优化三 1. APP 启动的分类 冷...

  • Facebook iOS App如何优化启动时间

    Facebook iOS App如何优化启动时间 Facebook iOS App如何优化启动时间

网友评论

      本文标题:iOS应用启动及优化点

      本文链接:https://www.haomeiwen.com/subject/lmayictx.html