iOS 9 分屏多任务:入门(中文版)

http://www.cocoachina.com/ios/20150714/12555.html

本文由钢铁侠般的卿哥(微博)翻译自苹果官方文档:Adopting Multitasking Enhancements on iPad,主要讲述iOS 9中iPad的多任务处理功能,欢迎指正。
该文档包含:
第一部分:iOS 9 分屏多任务--入门
第二部分:iOS 9 分屏多任务--Slide Over & Split View快速入门
第三部分:iOS 9 分屏多任务--画中画(PiP)快速入门



重要

这是API或开发技术的初步文档。苹果公司提供这些信息主要是为了帮助你通过苹果产品使用这些技术或者编程接口而做好计划,该信息有可能会在未来发生改变,本文当中提到的软件应该以最终发布的操作系统测试和最终文档为准。未来有可能会提供新版本的文档信息。

iOS 9 中多任务处理功能,为我们提供了更多的方式来畅享iPad和App带来的乐趣。

  • Slide Over:用户可通过该功能调出屏幕右侧的悬浮视图(在从右到左的语言环境下位于屏幕的左侧),从而查看次要应用程序并与其进行交互。
  • Split View(分屏视图):呈现两个并行的应用,用户可以查看、调整其大小,并与其进行交互。
  • 画中画(Picture in Picture)功能:让用户在多个应用中可以悬浮播放视频,并可移动视频窗口以及调整窗口大小。

在Slide Over功能中,全屏显示的App 是主App。在Slide Over上选中的App 是次要App。在分屏视图Split View(在从左至右写的语言环境下)左侧的App是主要App,右侧的 是次要App。

如果你遵循了苹果iOS 8最佳实践建议,所有这些新的与App的交互方式,尤其是iOS 9中的多任务处理都是非常的简单和直观。从Xcode 7开始,每一个iOS App 模板都默认支持Slide Over 和 Split View。

从开发者的角度来说,最大的挑战是资源的管理。

每个iOS App(甚至那些没有使用多任务功能的App)需要在iOS9中良好地运行。现在,甚至全屏App 们都没有有效地利用整个屏幕、CPU、内存以及其他的资源。例如,用户可以:

  • 在屏幕上添加画中画窗口,不管屏幕上展示了什么内容(包括一个全屏App),这个包含视频的App会持续地在后台运行。来自其他App的PiP会增加App的内存压力,同时会降低App的显示帧率。
  • 滑动Slide Over 来使用次要App。当它是可视状态时,次要App在前台 运行,会再次增加App的内存压力,减少App的显示帧率。
  • 通过Slide Over 从次要App中调出键盘会遮盖主要App的一部分。每个iOS9 开发者,甚至开发全屏显示App却从未使用过keyboard 的开发者,可能希望能像UIWindow Class Reference中描述的那样响应键盘出现的通知。

为了能有效地参与到这种环境中,iOS9开发者必须谨慎调整他们的App 的资源消耗。如果一个App 每一帧消耗了太多的时间,屏幕的刷新率会低于60帧每秒。在内存压力下,系统会终止消耗最多内存的App。

想了解更多如何在iOS 9中如何管理资源,请查看Multitasking Mindset

了解App的特征并审视自己的工作

考虑你的App的特征后再决定你想采用哪种多任务增强功能,以及需要做什么工作。

大多数App应该采用Slide Over 和 Split View。从用户的角度来说,一个iOS 9应用不支持这两项特性是有点格格不入的。

如果你的App符合以下情况之一,可以不支持多任务处理功能:

  • 以相机为中心的App,使用整个屏幕预览和以快速捕捉瞬间为主要功能。
  • 使用全设备屏幕的App,比如游戏使用iPad的传感器作为游戏核心操控的一部分。

除此之外,苹果和你的用户们都希望你采用Slide Over 和 Split View。欲了解更多,请参看Slide Over & Split View Quick Start

如果不使用Slide Over 和 Split View,需将UIRequiresFullScreen key添加到Xcode 工程的Info.plist文件中,并且设置其Boolean value为YES。

注意:不使用Slide Over 和 Split View,表示你的App 不能出现在Slide Over 区域中,尽管你的App 运行在多任务环境中。在你想支持的硬件上测试App,以确保当其他App出现在Slide Over模式中,以及在播放来自第三个App的视频的画中画模式下,你的App都能流畅运行。

画中画(PiP)适用于以播放视频为主要功能的App。画中画(PiP)也最佳适合中长时间的内容播放。

支持画中画,能让你的用户在视屏播放的同时,还能与你App或其他的App交互。学习和运用PiP,请阅读Picture in Picture Quick Start。

在游戏场景的过渡、首次启动以及类似的内容不应该支持画中画(PiP)。你可以选择给定的视频退出画中画,如下所示:?

注意:如果你的App使用Media Player 框架播放视频,无论使用其框架中的MPMoviePlayerControllerMPMoviePlayerViewController类,你必须迁移使用AVKit或AV Foundation。Media Player视频播放正式在iOS 9中弃用。

如果你的App 播放HTTP Live Streaming (HLS)视频,请使用元数据优化播放。通过响应stream-variant元数据标签,优化应用程序在各种视屏窗口大小下的性能。并最大限度地减少电池消耗,你使用的内容分发网络(CDNs)同样也应该提供多个stream variants,并用合适的分辨率标签标注每个variant。欲了解更多信息,请参阅 HTTP Live Streaming Overview

如果你的应用程序在第二个物理屏幕上展示内容,请测试应用的转场。

特别需要测试从次要App过渡到主要App的用例。只有主要App才有资格使用第二个物理屏幕,所以过渡到主要App是一个新的场景,你的App可以从中接收UIScreenDidConnectNotification 通知。确保你的App可帮用户理解使用实例中发生了什么,当内容移动到第二屏上时,这可能有点奇怪。

开发环境

Xcode7 支持在iPad上使用多任务增强。

使用Xcode 7、模拟器和Instruments 中的新功能:

  • 在每个iOS App模板中预先配置支持Slide Over 和 Split View。例如,包括LaunchScreen.storyboard文件和预先设置的Info.plist文件。详见:Xcode 概述
  • Interface Builder中的Storyboards可以很容易实现自动布局约束。详见 Auto Layout Guide 和 Auto Layout Help
  • Interface Builder 预览助手让你能立即看到在Slide Over 和Split View场景中,你的布局如何适配不同的Size Class。请参阅 Size Classes Design Help 和 ?Previewing Your Layout for Different Localizations, iOS Devices, and iOS Versions
  • Xcode 7中的模拟器可让你使用在真实设备中相同的手势调出Slide Over 和 Split View。你可以使用模拟器测试所有Slide Over和Split View 布局表现,也可测试画中画。然而,模拟器不能模拟真实iOS设备的内存、CPU、GPU、磁盘I/O,或iOS设备的其他资源特性。有关模拟器的使用指南,请参阅 Simulator User Guide
  • Instrument中的内存分配、Time Profiler、内存泄露分析模板(Leaks profiling templates),能让你监测App的行为和资源使用情况。详见:Instruments User Guide?和 Instruments Help.
  • Xcode7 提供了可视化界面,用于全面支持资源目录(asset catalog)。为你的可视化资源使用资源目录,如图片和App图标。这对于优化App的内存十分重要。参见Asset Catalog Help。你也可以以编程的方式使用资源目录,请参阅 UIImageAsset Class Reference?。

想要测试内存、CPU、GPU以及所有硬件相关的表现,请在你想要支持的硬件上测试App。想要在iOS设备上测试你的App,你必须是iOS开发者计划的成员。请参阅 App Distribution Guide 中的 Managing Accounts 。

在iOS9中,以下型号的iPad支持多任务增强。

多任务思维模式

想要在支持iOS 9的iPad上的取得成功,不管是对系统,还是设备上的其他App,你的App必须在设备资源方面表现良好。

当你的App在前台运行时,其他的App可能会在它一旁运行,也可能播放画中画视频,并且持有它的App在后台运行。

在iOS9之前,你可以使用任何可用的CPU、GPU、内存、I/O以及硬件资源维持极好的体验。在iOS 9中,这些都将改变。App如何有效地利用资源成为了问题关键,如此,用户的iPad体验才是流畅和响应灵敏的。

为了获得最佳的用户体验,系统会紧密地管理资源消耗情况,并终止使用超过系统配额资源的App。

你在iPad上采用多任务处理增强的大部分工作,很有可能是对资源管理的最佳实践。第一步:

  • 使用Instrument测试你的App确保其没有内存泄露,不会无限内存增长或阻塞主线程。
  • 使用应用状态转变的协议方法,当你的App移到后台时,丢弃不必要的视图控制器、视图、资源和数据缓存。
  • 在每个所支持的设备上测试你的App,并同时使用资源密集型App,例如地图App,将其设置卫星视图和执行立交桥图像动画。以你的App分别作为主要App和次要App进行测试,确保两种情况下你的App和地图App都能快速响应。

在iOS 9中,不再适合从屏幕的界面方向来考虑。App能在iPad上适应水平方向上的compact Size Class或是regular Size Class,大小改变独立于界面的方向。相反要使用trait collections和Size Classes,采用UIContentContainer和UITraitEnvironment协议,请参阅Slide Over and Split View Quick Start所述。

同样在iOS 9中也不再适合使用屏幕的范围限制来判断你的App的可见区域,而是使用你App的窗口的范围来判断。注意你的App的范围应该是可操控。你不能设置App的范围界限,也不能阻止其改变。

尽管Auto Layout 自动布局不是最佳iOS 9 App所必须,但这样做会更容易。自动布局提供了性能的优势,并帮助你匹配苹果在 iOS Human Interface Guidelines 中描述的最佳实践。简单地说,Auto Layout帮助你的内容显示在正确的地方,并有助于未来你的App的迭代。你可以反复使用Auto Layout,一次一个布局。至少你的LaunchScreen.storyboard文件必须使用Auto Layout。纵观你的App,使用Storyboards帮助你的视图适应用户在不同情况下打开和使用你的App时视图尺寸的变化。

时间: 2024-10-26 17:37:19

iOS 9 分屏多任务:入门(中文版)的相关文章

iOS 9 分屏多任务(3):画中画(PiP)快速入门

原文出处: @钢铁侠般的卿哥   欢迎分享原创到伯乐头条 该文档包含: 第一部分:iOS 9 分屏多任务–入门 第二部分:iOS 9 分屏多任务–Slide Over & Split View快速入门 第三部分:iOS 9 分屏多任务–画中画(PiP)快速入门 依据本章的指南在所支持的iPad上使用画中画(PiP). 想要让视频播放支持画中画模式,确保你Xcode项目和App配置如下: 设置Base SDK为“Latest iOS”,请参阅 App Distribution Guide 的 Se

iOS 9 分屏多任务(2):Slide Over & Split View快速入门

原文出处: @钢铁侠般的卿哥   欢迎分享原创到伯乐头条 该文档包含: 第一部分:iOS 9 分屏多任务–入门 第二部分:iOS 9 分屏多任务–Slide Over & Split View快速入门 第三部分:iOS 9 分屏多任务–画中画(PiP)快速入门 按照本章中的指导,在支持的iPad设备上让你的App运行iOS 9多任务. 当你新建一个Xcode 7模板工程时,是默认支持Slide Over和Split View.如果你从老的工程升级到iOS 9,通过以下的步骤设置你的Xcode工程

iOS 9 分屏多任务(1):入门

原文出处: @钢铁侠般的卿哥   欢迎分享原创到伯乐头条 重要 这是API或开发技术的初步文档.苹果公司提供这些信息主要是为了帮助你通过苹果产品使用这些技术或者编程接口而做好计划,该信息有可能会在未来发生改变,本文当中提到的软件应该以最终发布的操作系统测试和最终文档为准.未来有可能会提供新版本的文档信息. iOS 9 中多任务处理功能,为我们提供了更多的方式来畅享iPad和App带来的乐趣. Slide Over:用户可通过该功能调出屏幕右侧的悬浮视图(在从右到左的语言环境下位于屏幕的左侧),从

iOS 9之分屏多任务(multitasking)

金田(github 示例源码) 多任务(multitasking)算是iOS9中最引人瞩目的核心新特性了,之前越狱版用户就用过类似的插件,微软的 苏菲 (Windows Surface)系列也有分屏多任务的特性,可以让用户可以同时运行2个或者多个App.iOS 9 中的多任务目前支持三种表现形式:临时出现和交互的滑动覆盖 (Slide Over):真正的分屏同时操作两个 App 的分割视图 (Split View):以及在其他 App 中可以进行视频播放的画中画 (Picture in Pict

华为P7移动版刷机包 EMUI3.0 官方B604 多任务分屏 自定义

ROM介绍 [功能简介]: . 运营商自定义 . 内核支持 init.d 脚本(已经内置 root) . 状态栏实时网速显示 . 多任务分屏模式 . 修改版屏幕助手,使功能更实用,使用起来更顺手: 所有按键长按动作均可以选择,有如下选项: 手电筒 | 快捷菜单 | 屏幕截图 | 锁屏 | 悬浮程序 | 高级设置 | 语音助手 | 结束当前程序 | 音量加 | 音量减 | 菜单键 | 最小化屏幕助手 | 无动作 增加屏幕助手最小化功能(通过长按实现),在看电影或玩游戏时可以显示为一个小点 记忆屏幕

如何把Android/IOS手机或者平板作为PC电脑显示器的分屏

需要用到的软件是 XDisplay软件下载地址:PC端:http://www.downza.cn/soft/284787.htmlAndroid和IOS可以在应用市场搜索:XDisplay 出于工作的需要,如果你的电脑屏幕不够用了,需要在扩展出来一个屏幕,但是又不想再单独买一个显示器,我们可以把自己的手机或者是平板电脑作为扩展屏幕使用.具体操作方法如下: 1.下载XDisplay软件 PC端安装 在百度中搜索:XDisplay,就可以找到很多下载网站,找一个比较靠谱的网站,下载PC端的XDisp

平铺导航——基于分屏导航的实现(IOS开发)

导航模式 -平铺导航:内容没有层次关系,其实就在一个主屏幕上,只是采用分屏分页控制器来导航,可以左右上下滑动屏幕查看内容.(如:系统自带的天气) -标签导航:内容被分割几个功能模块,但这些功能实际上没有任何关系.通过标签管理.标签应用太多太多了... -树形导航:有层次,从上到下细分为或者为包含的关系.(如:邮箱) 这几个经常组合起来一起使用. 这里主要讲平铺导航. 用到的控件为分屏控件(UIPageControl)和滚动视图控件(ScrollView),在这个过程中我们可能确实新建了许多Vie

iOS开发之Auto Layout入门

随着iPhone6与iOS8的临近,适配的问题讲更加复杂,最近学习了一下Auto Layout的使用,与大家分享.  什么是Auto Layout? Auto Layout是iOS6发布后引入的一个全新的布局特性,其目的是弥补以往Autoresizing在布局方面的不足之处,以及未来面对更多尺寸适配时界面布局可以更好的适应. 为什么要用Auto Layout? Autolayout能解决不同屏幕(iPhone4,iPhone5,iPad...)之间的适配问题. 在iPhone4时代开发者只需要适

《30天自制操作系统》笔记(12)——多任务入门

<30天自制操作系统>笔记(12)——多任务入门 进度回顾 上一篇介绍了设置显示器高分辨率的方法.本篇讲一下操作系统实现多任务的方法. 什么是多任务 对程序员来说,也许这是废话,不过还是说清楚比较好. 多任务就是让电脑同时运行多个程序(如一边写代码一边听音乐一边下载电影). 电脑的CPU只有固定有限的那么一个或几个,不可能真的同时运行多个程序.所以就用近似的方式,让多个程序轮换着运行.当轮换速度够快(0.01秒),给人的感觉就是"同时"运行了. 多任务之不实用版 我们首先从