iOS 之启动优化

2019-05-21  本文已影响0人  iOS小童

启动优化

应用启动过程中的一系列活动会影响初始加载时间,因此,为了获得更好的用户体验,必须使初始化活动的数量最小化。

启动方式

首次启动

安装应用的首次启动,没有之前的状态,也没有本地缓存。

  1. 确定在展示UI前必须执行的任务:如崩溃报告系统
  2. 按顺序执行任务:因为任务间可能具有相互依赖性
  3. 将任务拆分为两类:主线程/子线程
  4. 其他任务可以在加载UI后执行或异步执行:延迟其他系统的初始化

冷启动

应用后续的启动,在启动期间,可能需要恢复原来的状态

热启动

应用处于后台,但并未被挂起或者关闭时,用户切换至应用而触发的启动。

升级后启动

  1. 无本地缓存或者完全放弃缓存
  2. 本地缓存可用,可以直接使用或需要切换至升级版本

影响启动性能的因素

main()函数之前耗时的影响因素

main()函数之后耗时的影响因素

推送通知

通知是内容驱动型应用的一个组成部分。

远程通知

-【普通离线(远程)push】:收到推送后(有文字有声音),点开通知,进入APP后,才执行-
- (void)application:(UIApplication *)didReceiveRemoteNotification:(NSDictionary fetchCompletionHandler:(void result))handler *)application *)userInfo (^)(UIBackgroundFetchResult

-【静默push】:收到推送(没有文字没有声音),不用点开通知,不用打开APP,就能执行
- (void)application:(UIApplication *)application)userInfo didReceiveRemoteNotification:(NSDictionary fetchCompletionHandler:(void (^)(UIBackgroundFetchResultresult))handler
- 用户完全感觉不到。

本地通知

10.0以前的方法
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
    
}

后台拉取

要想启用后台拉取需要:

  1. 在项目中设置开启功能
  2. 设置刷新间隔
  3. 实现应用的委托方法
上一篇下一篇

猜你喜欢

热点阅读