Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d933e16

Browse files
author
zhangyanqiang
committed
Site updated: 2018年09月27日 20:41:49
1 parent 84f6d94 commit d933e16

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

‎2018/09/27/iOS之App启动流程/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
<meta property="og:image" content="http://upload-images.jianshu.io/upload_images/1171135-8ce6a34b39620ae2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000">
9696
<meta property="og:image" content="https://upload-images.jianshu.io/upload_images/1171135-4fbc492559ba2268.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000">
9797
<meta property="og:image" content="http://ofnft8t2g.bkt.clouddn.com/wikiimage6_new.png">
98-
<meta property="og:updated_time" content="2018年09月27日T12:39:28.527Z">
98+
<meta property="og:updated_time" content="2018年09月27日T12:41:39.156Z">
9999
<meta name="twitter:card" content="summary">
100100
<meta name="twitter:title" content="iOS之App启动流程">
101101
<meta name="twitter:description" content="本文从以下几个方面来分析iOS系统的APP的启动流程,以及我们在优化启动时间时应该在哪些方面入手 专业术语解释 Mach-O dyld Virtual Memory Page fault Dirty Page &amp;amp; Clean Page main函数之前 dyld2 dyld3 main函数之后 启动时间优化 冷启动 VS 热启动 分析方法 优化实践">
@@ -536,7 +536,7 @@ <h3 id="应用程序的状态"><a href="#应用程序的状态" class="headerlin
536536
</tr>
537537
</tbody>
538538
</table>
539-
<h3 id="冷启动-VS-热启动"><a href="#冷启动-VS-热启动" class="headerlink" title="冷启动 VS 热启动"></a>冷启动 VS 热启动</h3><blockquote>
539+
<h2id="启动时间检测"><ahref="#启动时间检测" class="headerlink" title="启动时间检测"></a>启动时间检测</h2><h3 id="冷启动-VS-热启动"><a href="#冷启动-VS-热启动" class="headerlink" title="冷启动 VS 热启动"></a>冷启动 VS 热启动</h3><blockquote>
540540
<p>如果你刚刚启动过App,这时候App的启动所需要的数据仍然在缓存中,再次启动的时候称为热启动。如果设备刚刚重启,然后启动App,这时候称为冷启动。</p>
541541
</blockquote>
542542
<p>启动时间在小于400ms是最佳的,因为从点击图标到显示Launch Screen,到Launch Screen消失这段时间是400ms。启动时间不可以大于20s,否则会被系统杀掉。</p>
@@ -829,7 +829,7 @@ <h3 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</
829829

830830

831831

832-
<div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#专业术语解释"><span class="nav-number">1.</span> <span class="nav-text">专业术语解释</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Mach-O"><span class="nav-number">1.1.</span> <span class="nav-text">Mach-O</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#dyld"><span class="nav-number">1.2.</span> <span class="nav-text">dyld</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Virtual-Memory"><span class="nav-number">1.3.</span> <span class="nav-text">Virtual Memory</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Page-fault"><span class="nav-number">1.4.</span> <span class="nav-text">Page fault</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Dirty-Page-amp-Clean-Page"><span class="nav-number">1.5.</span> <span class="nav-text">Dirty Page &amp; Clean Page</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#main函数之前"><span class="nav-number">2.</span> <span class="nav-text">main函数之前</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#dyld3"><span class="nav-number">2.1.</span> <span class="nav-text">dyld3</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#加载动态库"><span class="nav-number">2.1.1.</span> <span class="nav-text">加载动态库</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Rebase-amp-amp-Bind"><span class="nav-number">2.1.2.</span> <span class="nav-text">Rebase &amp;&amp; Bind</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Objc-SetUp"><span class="nav-number">2.1.3.</span> <span class="nav-text">Objc SetUp</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Initializers"><span class="nav-number">2.1.4.</span> <span class="nav-text">Initializers</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#dyld3-1"><span class="nav-number">2.2.</span> <span class="nav-text">dyld3</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#main函数之后"><span class="nav-number">3.</span> <span class="nav-text">main函数之后</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#UIApplication"><span class="nav-number">3.1.</span> <span class="nav-text">UIApplication</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#UIApplication-Delegate"><span class="nav-number">3.2.</span> <span class="nav-text">UIApplication Delegate</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#UIWindow的创建"><span class="nav-number">3.3.</span> <span class="nav-text">UIWindow的创建</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#控制器的创建"><span class="nav-number">3.4.</span> <span class="nav-text">控制器的创建</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#view的创建"><span class="nav-number">3.5.</span> <span class="nav-text">view的创建</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#应用程序的状态"><span class="nav-number">3.6.</span> <span class="nav-text">应用程序的状态</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#冷启动-VS-热启动"><span class="nav-number">3.7.</span> <span class="nav-text">冷启动 VS 热启动</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#启动耗时的测量"><span class="nav-number">3.8.</span> <span class="nav-text">启动耗时的测量</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#pre-main阶段"><span class="nav-number">3.8.1.</span> <span class="nav-text">pre-main阶段</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#main-阶段"><span class="nav-number">3.8.2.</span> <span class="nav-text">main()阶段</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#用Time-Profiler找到元凶"><span class="nav-number">3.8.3.</span> <span class="nav-text">用Time Profiler找到元凶</span></a></li></ol></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#优化启动时间"><span class="nav-number">4.</span> <span class="nav-text">优化启动时间</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Main函数之前"><span class="nav-number">4.1.</span> <span class="nav-text">Main函数之前</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#dylibs"><span class="nav-number">4.1.1.</span> <span class="nav-text">dylibs</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Rebase-amp-Bind-amp-Objective-C-Runtime"><span class="nav-number">4.1.2.</span> <span class="nav-text">Rebase &amp; Bind &amp; Objective C Runtime</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Initializers-1"><span class="nav-number">4.1.3.</span> <span class="nav-text">Initializers</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Main函数之后"><span class="nav-number">4.2.</span> <span class="nav-text">Main函数之后</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#UIViewController"><span class="nav-number">4.2.1.</span> <span class="nav-text">UIViewController</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#AppDelegate"><span class="nav-number">4.2.2.</span> <span class="nav-text">AppDelegate</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#小结"><span class="nav-number">4.3.</span> <span class="nav-text">小结</span></a></li></ol></li></ol></div>
832+
<div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#专业术语解释"><span class="nav-number">1.</span> <span class="nav-text">专业术语解释</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Mach-O"><span class="nav-number">1.1.</span> <span class="nav-text">Mach-O</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#dyld"><span class="nav-number">1.2.</span> <span class="nav-text">dyld</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Virtual-Memory"><span class="nav-number">1.3.</span> <span class="nav-text">Virtual Memory</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Page-fault"><span class="nav-number">1.4.</span> <span class="nav-text">Page fault</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Dirty-Page-amp-Clean-Page"><span class="nav-number">1.5.</span> <span class="nav-text">Dirty Page &amp; Clean Page</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#main函数之前"><span class="nav-number">2.</span> <span class="nav-text">main函数之前</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#dyld3"><span class="nav-number">2.1.</span> <span class="nav-text">dyld3</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#加载动态库"><span class="nav-number">2.1.1.</span> <span class="nav-text">加载动态库</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Rebase-amp-amp-Bind"><span class="nav-number">2.1.2.</span> <span class="nav-text">Rebase &amp;&amp; Bind</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Objc-SetUp"><span class="nav-number">2.1.3.</span> <span class="nav-text">Objc SetUp</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Initializers"><span class="nav-number">2.1.4.</span> <span class="nav-text">Initializers</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#dyld3-1"><span class="nav-number">2.2.</span> <span class="nav-text">dyld3</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#main函数之后"><span class="nav-number">3.</span> <span class="nav-text">main函数之后</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#UIApplication"><span class="nav-number">3.1.</span> <span class="nav-text">UIApplication</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#UIApplication-Delegate"><span class="nav-number">3.2.</span> <span class="nav-text">UIApplication Delegate</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#UIWindow的创建"><span class="nav-number">3.3.</span> <span class="nav-text">UIWindow的创建</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#控制器的创建"><span class="nav-number">3.4.</span> <span class="nav-text">控制器的创建</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#view的创建"><span class="nav-number">3.5.</span> <span class="nav-text">view的创建</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#应用程序的状态"><span class="nav-number">3.6.</span> <span class="nav-text">应用程序的状态</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#启动时间检测"><span class="nav-number">4.</span> <span class="nav-text">启动时间检测</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#冷启动-VS-热启动"><span class="nav-number">4.1.</span> <span class="nav-text">冷启动 VS 热启动</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#启动耗时的测量"><span class="nav-number">4.2.</span> <span class="nav-text">启动耗时的测量</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#pre-main阶段"><span class="nav-number">4.2.1.</span> <span class="nav-text">pre-main阶段</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#main-阶段"><span class="nav-number">4.2.2.</span> <span class="nav-text">main()阶段</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#用Time-Profiler找到元凶"><span class="nav-number">4.2.3.</span> <span class="nav-text">用Time Profiler找到元凶</span></a></li></ol></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#优化启动时间"><span class="nav-number">5.</span> <span class="nav-text">优化启动时间</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Main函数之前"><span class="nav-number">5.1.</span> <span class="nav-text">Main函数之前</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#dylibs"><span class="nav-number">5.1.1.</span> <span class="nav-text">dylibs</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Rebase-amp-Bind-amp-Objective-C-Runtime"><span class="nav-number">5.1.2.</span> <span class="nav-text">Rebase &amp; Bind &amp; Objective C Runtime</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#Initializers-1"><span class="nav-number">5.1.3.</span> <span class="nav-text">Initializers</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Main函数之后"><span class="nav-number">5.2.</span> <span class="nav-text">Main函数之后</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#UIViewController"><span class="nav-number">5.2.1.</span> <span class="nav-text">UIViewController</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#AppDelegate"><span class="nav-number">5.2.2.</span> <span class="nav-text">AppDelegate</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#小结"><span class="nav-number">5.3.</span> <span class="nav-text">小结</span></a></li></ol></li></ol></div>
833833

834834

835835
</div>

‎css/main.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1823,7 +1823,7 @@ pre .javascript .function {
18231823
width: 4px;
18241824
height: 4px;
18251825
border-radius: 50%;
1826-
background: #d9189c;
1826+
background: #88ffe5;
18271827
}
18281828
.links-of-blogroll {
18291829
font-size: 13px;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /