你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> iOS 9 分屏多任務:入門(中文版)

iOS 9 分屏多任務:入門(中文版)

編輯:IOS開發基礎

406.png

本文由鋼鐵俠般的卿哥(微博)翻譯自蘋果官方文檔: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。

33.png

34.png

35.png

37.png

如果你遵循了蘋果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中描述的那樣響應鍵盤出現的通知。

39.png

為了能有效地參與到這種環境中,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)。你可以選擇給定的視頻退出畫中畫,如下所示:?

  • 對於AVPlayerViewController類,設置allowsPictureInPicturePlayback屬性值為NO。

  • 對於AVPlayerLayer類,不要用你的播放層對象實例化一個AVPictureInPictureController對象

  • 對於WKWebView類,設置其allowsPictureInPictureMediaPlayback屬性為NO(這個屬性在未來iOS 9beta版本中才可使用)。

注意:如果你的App使用Media Player 框架播放視頻,無論使用其框架中的MPMoviePlayerController或MPMoviePlayerViewController類,你必須遷移使用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上使用多任務增強。

40.png

使用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支持多任務增強。

41.png

多任務思維模式

想要在支持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時視圖尺寸的變化。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved