99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
黑暗掠奪者 頭像
蘋果2袋
2
黑暗掠奪者

蘋果應(yīng)用瘦身功能介紹(App Thinning)

發(fā)布時(shí)間:2015-06-12 20:40  回復(fù):1  查看:5061   最后回復(fù):2015-06-13 15:05  

32.png

6月9日結(jié)束的蘋果WWDC15大會(huì)上,蘋果公司推出了多個(gè)新技術(shù),不過對(duì)于手游開發(fā)者們來說,可能最具有革命意義的是庫克在發(fā)布會(huì)現(xiàn)場(chǎng)都沒有提到的應(yīng)用瘦身功能(App Thinning),它是其Xcode 7測(cè)試版的功能之一。
按照蘋果官方的解釋,應(yīng)用瘦身功能分為三個(gè)部分:首先是分割功能Slicing,它可以對(duì)應(yīng)用/游戲內(nèi)容進(jìn)行分割,根據(jù)用戶設(shè)備類型和屏幕分辨率的不同分發(fā)定制化下載包,開發(fā)者只需要把完整應(yīng)用包的內(nèi)容上傳到iTunes Connect即可。

另外,該功能還包含了中間代碼功能(Bitcode),可以讓蘋果在未來為你的應(yīng)用進(jìn)行再次優(yōu)化,而避免了發(fā)布新版本的麻煩,同時(shí)可以大大減少調(diào)試工作量。
應(yīng)用瘦身的第三個(gè)功能就是on-demand資源,開發(fā)者可以把應(yīng)用初始化用不到的資源分類打包上傳到App Store,在用戶使用的時(shí)候系統(tǒng)會(huì)根據(jù)資源標(biāo)簽在必要的時(shí)候調(diào)用資源,當(dāng)某些資源不再使用的時(shí)候會(huì)被系統(tǒng)自動(dòng)清除,這樣不僅減少了應(yīng)用下載和加載時(shí)間,還大大縮小了安裝包體。

對(duì)于開發(fā)者們來說,這個(gè)功能可以減少很多的bug調(diào)試時(shí)間,讓游戲包體變得更小,提高各種設(shè)備用戶的游戲體驗(yàn)??梢哉f,蘋果的這個(gè)技術(shù)在很大程度上解決了不同設(shè)備的性能差異問題,實(shí)現(xiàn)了one-for-all的需求。不過Gamelook認(rèn)為這個(gè)功能如果安卓渠道可以用的話,就會(huì)大大降低設(shè)備碎片化給開發(fā)者們帶來的適配難題,拉近和iOS設(shè)備之間的差距。

以下請(qǐng)看Gamelook整理的應(yīng)用瘦身功能以及On-demand資源內(nèi)容的詳細(xì)介紹(更多詳細(xì)內(nèi)容請(qǐng)參考官網(wǎng)英文地址):

第一部分:應(yīng)用瘦身以及其功能

App Store和操作系統(tǒng)(iOS和watchOS)根據(jù)用戶特定的設(shè)備能力量身優(yōu)化應(yīng)用安裝,以達(dá)到最低的設(shè)備空間占用。這個(gè)優(yōu)化的過程,就被成為應(yīng)用瘦身,它可以讓你創(chuàng)作的應(yīng)用利用大多數(shù)的設(shè)備功能、占用最小的磁盤空間并且為蘋果公司未來的更新進(jìn)行調(diào)整。更快的下載速度和更少的空間占用可以帶來更好的用戶體驗(yàn)。

本章節(jié)描述的是應(yīng)用瘦身的3大組件:應(yīng)用分割(Slicing)、中間代碼(Bitcode)和On-demand資源(Resources)。

應(yīng)用分割功能(Slicing,僅針對(duì)iOS平臺(tái))

Slicing就是創(chuàng)造并傳輸為不同目標(biāo)設(shè)備而設(shè)計(jì)的變體應(yīng)用包(variant,以下簡稱定制化下載包)的處理過程。一個(gè)定制化下載包僅包含針對(duì)特定設(shè)備所需要的可執(zhí)行架構(gòu)以及資源。你可以繼續(xù)開發(fā)并且把完整版本的應(yīng)用上傳到iTunes Connect,然后App Store會(huì)根據(jù)玩家設(shè)備類型和分辨率創(chuàng)造并傳輸對(duì)應(yīng)的應(yīng)用。這里,你可以認(rèn)為資源根據(jù)玩家設(shè)備分辨率和類型的不同而分割成了多種類型,GPU資源也根據(jù)設(shè)備能力進(jìn)行了切分,當(dāng)用戶安裝應(yīng)用的時(shí)候,他們可以下載并安裝適合自己設(shè)備的定制化應(yīng)用包。

Xcode會(huì)在研發(fā)過程中模擬分割,所以你可以在本地創(chuàng)作并測(cè)試定制應(yīng)用包,當(dāng)你在一個(gè)設(shè)備上研發(fā)并運(yùn)行應(yīng)用的時(shí)候,Xcode會(huì)對(duì)其進(jìn)行分割,當(dāng)你創(chuàng)造一個(gè)檔案的時(shí)候,Xcode會(huì)包含完整版的應(yīng)用,但允許你從檔案中輸出不同的定制應(yīng)用包。

提醒:對(duì)于iOS應(yīng)用來說,應(yīng)用分割僅支持最新版本的iTunes,以及運(yùn)行iOS 9.0或者更高系統(tǒng)的設(shè)備,否則的話,App Store將會(huì)為用戶分發(fā)統(tǒng)一的安裝包。

app_thinning_2x.png

分割功能流程圖

應(yīng)用分割是在研發(fā)過程和分銷過程中進(jìn)行的,基本處理程序如下:

1.在Xcode里,定位目標(biāo)設(shè)備并在資源目錄中提供多種分辨率圖形,你必須使用資源目錄這樣才能進(jìn)行分割。

2.在模擬器或者一個(gè)設(shè)備上研發(fā)并運(yùn)行應(yīng)用。

3.Xcode會(huì)為選定設(shè)備類型生成變體包,提高調(diào)試銷量并允許你在本地設(shè)備進(jìn)行變體包測(cè)試。

4.創(chuàng)建應(yīng)用檔案并為特定設(shè)備輸出對(duì)應(yīng)的變體應(yīng)用包。

5.在目標(biāo)設(shè)備測(cè)試所有的變體包以更早的發(fā)現(xiàn)硬件配置方面的問題。

6.把應(yīng)用上傳到iTunes Connect。

7.App Store從檔案中創(chuàng)建單獨(dú)的應(yīng)用定制包,定制包的數(shù)量取決于Xcode項(xiàng)目中所存在的架構(gòu)和資源的數(shù)量。

8.在iTunes Connect當(dāng)中,向制定測(cè)試者們分發(fā)測(cè)試版的應(yīng)用。

9.測(cè)試者們通過TestFlight在你的應(yīng)用所支持的設(shè)備上安裝測(cè)試版本,TestFlight會(huì)根據(jù)用戶設(shè)備的不同而下載特定的變體應(yīng)用包。

注意:為了測(cè)試App Store在應(yīng)用發(fā)布之前為你創(chuàng)造的變體包,最好是只邀請(qǐng)內(nèi)部測(cè)試者(你團(tuán)隊(duì)里的iTunes Connect用戶)并且使用TestFlight下載變體包。如果邀請(qǐng)了外部測(cè)試者(比如只通過郵箱地址登錄),那么他們就必須等待Beta App Review在他們下載變體包之前通過了你的應(yīng)用。

10.然后在iTunes Connect里發(fā)布你的應(yīng)用。

11.用戶在應(yīng)用支持的設(shè)備上進(jìn)行安裝,App Store應(yīng)用下載會(huì)根據(jù)用戶設(shè)備類型分發(fā)變體應(yīng)用包。

中間代碼功能(Bitcode ,適用于iOS和watchOS)

Bitcode是一個(gè)已編譯程序(Compiled Program)的中間代碼(intermediate representation)。如果你上傳到iTunes Connect里的應(yīng)用包含bitcode的話,就可以被編譯和鏈接到App Store。加入Bitcode可以讓蘋果在未來對(duì)你的應(yīng)用二進(jìn)制(app binary)進(jìn)行再次優(yōu)化,而不需要你向App Store提交新版本。

注意:對(duì)于iOS應(yīng)用來說,Bitcode是默認(rèn)但可選擇的。如果你提供Bitcode,那么應(yīng)用包里的所有應(yīng)用和框架都需要加入Bitcode,而watchOS應(yīng)用則必須加入Bitcode。

On-Demand資源(適用于iOS系統(tǒng))

On-Demand資源指的是你可以通過關(guān)鍵詞和命令的方式進(jìn)行分組歸類的資源,比如圖像和音頻,App Store會(huì)把這些資源放在蘋果服務(wù)器上并且為你管理下載。On-Demand資源可以加快下載速度并縮小應(yīng)用包體,提高用戶的首次登錄體驗(yàn)。比如,一款游戲應(yīng)用可以根據(jù)等級(jí)和任務(wù)的不同把資源分組,在玩家達(dá)到下一個(gè)等級(jí)或者完成一個(gè)任務(wù)之后才會(huì)用到后續(xù)的資源,同樣,應(yīng)用也可以只在用戶進(jìn)行IAP購買的時(shí)候提供對(duì)應(yīng)的資源。

當(dāng)一些on-demand資源不再需要而且磁盤空間較少的時(shí)候,操作系統(tǒng)會(huì)自動(dòng)清除它們。如果你在App Store之外對(duì)自己的應(yīng)用進(jìn)行測(cè)試或者分發(fā),那就需要你自己來管理這些On-Demand資源。需要注意的是,可執(zhí)行的on-demand資源是不支持的,App Store也會(huì)對(duì)on-Demand資源進(jìn)行分割(即上面說過的Slicing),進(jìn)一步提高用戶體驗(yàn)。

對(duì)于用戶們來說,on-demand資源是以透明的形式在后臺(tái)運(yùn)作的,當(dāng)用戶需要對(duì)應(yīng)功能的時(shí)候,這些資源就會(huì)被提供。

on_demand_resources_2x.png

第二部分:什么是On-Demand資源

提示:這是一個(gè)正在研發(fā)的API或技術(shù)的概要文件,蘋果公司提供這些信息主要是為了幫助你通過蘋果產(chǎn)品使用這些技術(shù)或者編程界面而做好計(jì)劃,該信息有可能會(huì)在未來發(fā)生改變,本文當(dāng)中提到的軟件應(yīng)該以最終發(fā)布的操作系統(tǒng)測(cè)試和最終文檔為準(zhǔn),未來有可能會(huì)提供新版本的文檔信息。

On-Demand資源指的是寄存在App Store并與應(yīng)用下載包分離的應(yīng)用內(nèi)容,使用On-demand資源可以讓應(yīng)用包體更小,安裝時(shí)間更短。

本部分文檔主要是提供你的應(yīng)用使用on-demand資源所需要的信息。在閱讀本文檔之前,你首先應(yīng)該熟悉資源編程,想要獲得更多信息,請(qǐng)參考資源編程指南。

On-Demand資源是有生命周期的

On-Demand資源可以讓應(yīng)用包體更小,下載速度更快,應(yīng)用內(nèi)容更豐富,主要是通過在App Store存儲(chǔ)資源的方式實(shí)現(xiàn),與你的應(yīng)用包體是分開的。

蘋果操作系統(tǒng)會(huì)根據(jù)你的應(yīng)用請(qǐng)求而管理on-demand資源的下載和存儲(chǔ),基本運(yùn)作流程如下:應(yīng)用請(qǐng)求資源-使用資源-然后釋放請(qǐng)求。被下載之后,這些資源會(huì)通過多次登錄而留存在用戶設(shè)備上,讓應(yīng)用體驗(yàn)更快。

On-Demand資源是默認(rèn)自動(dòng)開啟的,前提是你的項(xiàng)目支持對(duì)應(yīng)的OS版本。

標(biāo)簽主要用于辨識(shí)和對(duì)on-demand資源進(jìn)行分組。

在研發(fā)過程中,標(biāo)簽用于辨識(shí)和分組on-demand資源,標(biāo)簽名字可以用于辨識(shí)資源和應(yīng)用的關(guān)系。Xcode會(huì)提供創(chuàng)造和管理標(biāo)簽的工具,同時(shí)在應(yīng)用被安裝之后或者安裝完成之后指定特殊標(biāo)簽。

在運(yùn)行期間,應(yīng)用負(fù)責(zé)管理標(biāo)簽。

應(yīng)用請(qǐng)求會(huì)通過操作系統(tǒng)獲得標(biāo)簽,然后系統(tǒng)會(huì)下載并檢查組件資源并且下載所有不存在于用戶設(shè)備上的所需資源。在此過程中,應(yīng)用可以追蹤下載過程,如果有必要還可以調(diào)整優(yōu)先級(jí)。

標(biāo)簽被使用完之后,在從存儲(chǔ)中移除標(biāo)簽的時(shí)候,應(yīng)用可以設(shè)定一個(gè)系統(tǒng)預(yù)留優(yōu)先級(jí),優(yōu)先級(jí)較低的標(biāo)簽會(huì)首先被清除。

在與系統(tǒng)互動(dòng)的時(shí)候會(huì)用到2個(gè)classes:NsbundleResourceRequest用來管理標(biāo)簽的使用、追蹤下載并調(diào)整下載優(yōu)先級(jí);NSBundle的一個(gè)擴(kuò)展class被用來設(shè)定標(biāo)簽的預(yù)留優(yōu)先級(jí)。

On-demand資源可以是多種類型,但可執(zhí)行代碼除外。

有關(guān)資源的一些信息

在電腦程序中,資源指的是和程序的可執(zhí)行代碼同時(shí)存在的數(shù)據(jù)文件。有了資源文件,你的代碼就可以極大的簡化,不必通過創(chuàng)造復(fù)雜的數(shù)據(jù)或者圖形設(shè)置寫復(fù)雜的代碼。比如,和用代碼按像素形式來創(chuàng)造圖像不同的是,在圖形編輯器中創(chuàng)造資源可以更加有效率和實(shí)用。為了充分利用資源的優(yōu)勢(shì),你的代碼只需要在運(yùn)行的時(shí)候加載并使用即可。

除了簡化你的代碼之外,資源還是所有應(yīng)用國際化管理非常重要的一部分。你在應(yīng)用里不需要編寫字符串并以及其他用戶可見的內(nèi)容,你可以把這些內(nèi)容放在外部的資源文件里,這樣本地化應(yīng)用的時(shí)候就變得非常簡單,你只需要為每一種所支持的語言創(chuàng)造新版本的資源文件即可。OS X和iOS也使用了這樣方式管理本地化資源,根據(jù)用戶的偏好語言加載需要的資源文件。

本文件提供有關(guān)OS X和iOS系統(tǒng)支持的資源類型信息以及你如何在寫代碼的時(shí)候使用這些資源的指導(dǎo)。本文件并不針對(duì)資源創(chuàng)作過程,大多數(shù)的資源都是通過第三方或者開發(fā)者自己的工具提供,另外,盡管本文的講述的是應(yīng)用中的資源使用,但這些信息同樣適用于其它類型的可執(zhí)行包,包括框架和插件。

在閱讀本文檔之前,你需要熟悉應(yīng)用包體的組織結(jié)構(gòu),理解這個(gè)結(jié)構(gòu)可以讓管理變得更容易,并且尋找你的應(yīng)用所需要使用的資源也更為便捷。

應(yīng)用可以包含很多類型的資源,但有些資源是由iOS和OS X直接支持的。

Nib文件存儲(chǔ)你的應(yīng)用的UI對(duì)象

Nib文件是用來創(chuàng)作iOS和Mac應(yīng)用的經(jīng)典文件類型,一個(gè)nib文件就是你希望在運(yùn)行期間重新創(chuàng)作的一系列freeze-dried對(duì)象數(shù)據(jù)檔案。Nib文件通常用于存儲(chǔ)預(yù)置的窗口、視圖以及其他可視化對(duì)象,但是也可以用來存儲(chǔ)非可視化對(duì)象,比如controllers。

你可以在Xcode中通過Interface Builder編輯Nib文件,它可以提供一個(gè)i額圖形編輯器來管理對(duì)象。當(dāng)你隨后把一個(gè)nib文件加載到應(yīng)用中的時(shí)候,nib加載代碼會(huì)實(shí)例化文件中的每一個(gè)對(duì)象,并且會(huì)把它重新存儲(chǔ)于你在Interface Builder中所定義的state中。這樣,你在Interface Builder中看到的就和應(yīng)用運(yùn)行中所看到的內(nèi)容一致了。

字符串資源包含可本地化的文本。

在iOS和Mac應(yīng)用中,圖像、音頻和影響資源的重要性很高,圖像可以用來創(chuàng)造獨(dú)特的視覺風(fēng)格,音頻和影像文件同樣可以強(qiáng)化整體的用戶應(yīng)用體驗(yàn),同時(shí)可以簡化代碼。兩種操作系統(tǒng)都支持加載并在應(yīng)用中呈現(xiàn)這些資源。

哪些應(yīng)用適合使用On-Demand資源功能?

On-Demand資源指的是和應(yīng)用下載包分離并且存在App Store上的應(yīng)用內(nèi)容,應(yīng)用請(qǐng)求一系列的on-demand資源,操作系統(tǒng)管理下載和存儲(chǔ)。可以使用on-demand資源獲得優(yōu)勢(shì)的應(yīng)用包擴(kuò):

1.初始化資源延遲加載的應(yīng)用,這些應(yīng)用的一些資源屬于應(yīng)用的主要功能,但在初次登錄的時(shí)候卻用不到,資源會(huì)被標(biāo)記為需要初始化,當(dāng)應(yīng)用運(yùn)行的時(shí)候,操作系統(tǒng)會(huì)自動(dòng)下載這些資源,比如圖形編輯應(yīng)用。

2.應(yīng)用資源需要延遲加載的應(yīng)用:這類應(yīng)用只在特定情況下使用一些資源,比如在一個(gè)帶有很多關(guān)卡的游戲中,只有玩家們進(jìn)入特定的關(guān)卡才需要使用對(duì)應(yīng)的資源。

3.需要遠(yuǎn)程存儲(chǔ)低使用率資源的應(yīng)用:這類應(yīng)用的有些資源使用率非常低,只有在需要的時(shí)候才加載這部分資源。比如有些應(yīng)用的新手教程資源只有在第一次打開應(yīng)用的時(shí)候才會(huì)用到,以后可能再也不會(huì)用到,后來的一些功能教學(xué)也只是用到的時(shí)候才加載,隨后再也不使用。

4.需要遠(yuǎn)程存儲(chǔ)IAP資源的應(yīng)用:這類應(yīng)用通過IAP提供額外的資源,這些資源只有在用戶購買的時(shí)候才會(huì)被用到,比如,一個(gè)用戶購買SuperGeeky表情包的時(shí)候,這個(gè)表情資源才會(huì)被用到。

5.首次登錄需要加載資源的應(yīng)用:這類應(yīng)用有些資源是只需要初次登錄的時(shí)候才加載,并且在重復(fù)登錄的時(shí)候用不到。比如一個(gè)只有在首次登錄時(shí)才加入教學(xué)內(nèi)容的應(yīng)用。

在研發(fā)過程中,開發(fā)者可以為on-demand資源分配一個(gè)或者多個(gè)標(biāo)簽,也就是你用來辨識(shí)特定資源的字符串,你可以通過標(biāo)簽的名字來決定對(duì)應(yīng)資源在應(yīng)用中的使用,比如游戲中第五級(jí)采用到的資源可以用與level5相關(guān)的標(biāo)簽。

63.jpg

On-Demand資源的循環(huán)周期

帶有標(biāo)簽的資源使用流程大致如下:

帶標(biāo)簽的資源被存儲(chǔ)在App Store里-應(yīng)用通過標(biāo)簽請(qǐng)求使用資源-系統(tǒng)下載資源包-保存資源包-使用完成后系統(tǒng)釋放資源包。

存儲(chǔ)大小限制

App Store對(duì)于on-demand資源使用是有存儲(chǔ)空間限制的,具體請(qǐng)參考下表。

320.jpg

Swift 頭像
蘋果5袋
5
Swift   2015-06-13 15:05
一般的應(yīng)用用不上這些東西。
您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?