《尚学堂IOS培训后台运行机制详解.doc

《尚学堂IOS培训后台运行机制详解.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京尚学堂提供 一、IOS的“伪后台”程序 首先,先了解一下iOS 中所谓的「后台进程」到底是怎么回事吧? Let me be as clear as I can be: the iOS multitasking bar does not contain a list of all running apps. It contains a list of recently used apps. The user never has to manage background tasks on iOS. 首先我们得搞清楚的是,iOS 中所谓的「后台驻留」并不是指「执行中的程序」,而是「最近使用过的程序」,也可以瞧瞧Apple 的知识库文章怎么写的: 按两下主画面按钮后,显示的是「最近用过的应用程序」,所以别把它想成Mac OS X 中的Command + Tab 键所显示的切换程序列;你可以试试看将iPhone 关机再开机,然后按两下Home 键,应该会发现先前那些程式还是出现在那里,因为它其实是你最近使用过的程序使用记录,或像是浏览器中的浏览记录)。 如果你一个一个去清除 后台驻留 的程序,就像是一笔一笔删除浏览记录中的项目一样,是没有太大意义的(除非你不想让其他人看到你曾经用过什么程式,或者想杀时间、太无聊了),也不会对电力或记忆体有什么帮助。 iOS 的多任务处理其实是很聪明的,系统会自动中止在背景执行的程序,在有需要时,也会将被中止的程式suspended(注:中止的程式不是指关闭程序,而是指由前台转向后台的程序,程序在后台并不真正运行,不要和关闭程序混淆了) 从内存中移除。因此,iOS 装置的使用者根本就不需要担心怎么管理这些执行中或不在执行中的程序,尽管放心用、轻松玩就是了! 一般说来,所有程式进入背景后都还有5 秒的执行缓冲时间,有些程序可以要求延长到10 分钟(这些当然是由开发人员在设计与提交程式时决定和声明); 因此,在你按下Home 键后,本来的程式就会退到背景,如果它有额外的背景执行作业,超过10 分钟还是会被iOS 中止;所以,还是别担心了! 但是,也有例外情况,某些特殊类型的程式是被容许在背景中持续执行的,像是会持续在背景播放音乐的程序、GPS 程序、VOIP 程序、Newsstand 以及周边配件附属的程序,不过只要这些程序不再执行动作,就会变成中止的程式,像是音乐拨完了、杂志下载完了... 因此,使用者其实也没必要太过留意这些程序。 you do not have to manage background tasks on iOS. The   system handles almost every case for you and well written audio, GPS, VOIP, Newsstand and accessory apps will handle the rest. 二、IOS的“多任务”发展史 简单来说,IOS 4 APP类型可以分为三种: ?1. 保存现场。 即:按下Home键10秒内直接杀死进程,并释放内存。一般说来,所有程序进入背景后都还有5 秒的执行缓冲时间,有些程序可以要求延长到10 分钟(这些当然是由开发人员在设计与提交程式时决定和声明);因此,在你按下Home 键后,本来的程式就会退到背景,如果它有额外的背景执行作业,超过10 分钟还是会被iOS 中止。 2.?iOS支持的“多任务”。 即:按下Home键转入多任务状态,保留在内存中,但只能系统允许的动作:比如GPS,比如VoIP,比如Streaming Music等等。 3.?真正的桌面级别的多任务。 即:只有Safari/Mail才是真正的多任务,苹果嫡系大都都不是。这个级别的app在后台是没有任何限制动作。(对于无限制动作的程序,一是会在用户无察觉的情况下耗光电力,二是会有安全上面的问题)。 注意:对于上述三种级别,后两种会占用内存的APP,也会在任意时间从内存中被砍掉,取决于你是否动用了其它app而导致内存不足。真正不会被砍掉的后台,只有苹果那个通知系统。 其实可以回顾一下iOS是怎么一步步引入现在这个机制的: ? ? ?1. 刚出生,什么都没有,单纯的单任务。 ? ? ?2. iPhone OS 3.0,引入通知架构。几乎当年全部机型可用;Android晚了一年,2.2才有此功能,到这个时候相信才有90%上下机器用上。 ? ? ?3. iOS 4.0+,引入有限制的后台多任务。 搞这么复杂干嘛?直接像Android一出生那样所有app一个小虚拟机,无任何限制动作,让根本没有内存管理经验和资源消耗概念的全世界最大民工群Java程序员们写的app任意地跑着吧! 答案只有两个:电力,安全。安全不说,

文档评论(0)

jizi6339 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档