美文网首页
ios App启动流程

ios App启动流程

作者: 星空WU | 来源:发表于2021-02-23 17:08 被阅读0次

1.App启动过程

1) 解析info.plist

2) 加载相关信息,例如闪屏

3) 沙盒建立,权限检查

4) Mach-O(什么是Mach-O)加载

5) 定位内部(rebase),外部指正引用(bind),例如字符串,函数等

6) 加载类的扩展中的方法

7) C++静态对象加载,调用Objec的 + load函数

mach-O

哪些名词指的是Mach-O?

1) Executable 可执行文件

2) Dylib 动态库

3) Bundle 无法被连接的动态库,只能通过dlopen()加载

4) Image 指的是Executable,Dylib或者Bundle的一种

5) Framework 动态库和对应的头文件和资源文件的集合

dyld的全称是dynamic loader,它的作用是加载一个进程所需要的image,dyld是开源的

Main函数之前优化

启动的第一步是加载动态库,加载系统的动态库使很快的,因为可以缓存,而加载内嵌的动态库速度较慢。所以,提高这一步的效率的关键是:减少动态库的数量。

Rebase和Bind都是为了解决指针引用的问题。对于Objective C开发来说,主要的时间消耗在Class/Method的符号加载上,所以常见的优化方案是:

合并Category和功能类似的类。比如:UIView+Frame,UIView+AutoLayout…合并为一个

删除无用的方法和类。

多用Swift Structs,因为Swfit Structs是静态分发的

Initializers

通常,我们会在+load方法中进行method-swizzling,这也是Nshipster推荐的方式。

用initialize替代load。不少同学喜欢用method-swizzling来实现AOP去做日志统计等内容,强烈建议改为在initialize进行初始化。

如果使用swift,swift没有+load方法,initialize去替代

控制创建线程数量,非必要不创建线程

使用Swfit重写代码。

相关文章

  • iOS App启动优化—— 了解App的启动流程

    iOS App启动优化—— 了解App的启动流程

  • iOS性能优化-APP启动

    前言:本文旨在介绍iOS性能优化中有关APP启动流程的介绍和优化。 一、APP启动流程 1、APP的冷启动流程 点...

  • iOS APP启动流程

    iOS APP启动流程 做ios也有一段时间了,但是app的整个的启动流程还似懂非懂,看了许多的博客和资料,在这里...

  • App启动耗时优化

    1.App启动流程分析 iOS App启动时,系统会调用fork和execve,fork功能创建app进程,exe...

  • iOS App启动流程

    iOS的App启动一般有两个过程,发生在main函数前的过程和main函数之后的过程。 main函数前 App开始...

  • iOS app启动流程

    1.程序入口main函数创建UIApplication实例和UIApplication代理实例。 2.在UIApp...

  • iOS APP启动流程

    1. _dyld_start入口函数 在一个类的+ (void)load函数上打断点,查看此时的堆栈信息如下: 可...

  • iOS App 启动流程

    原文链接 当 App 启动的时候,系统首先会加载 APP 的可执行文件,然后获得 dyld 所在路径,加载 dyl...

  • ios App启动流程

    1.App启动过程 1)解析info.plist 2)加载相关信息,例如闪屏 3)沙盒建立,权限检查 4)Mach...

  • 性能优化:App启动优化

    一、App启动流程及启动优化二、定量监测App启动耗时、定位耗时代码三、果速送App启动优化 一、App启动流程及...

网友评论

      本文标题:ios App启动流程

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