ios知識篇饼疙,什么是應(yīng)用瘦身溺森?

iOS9 推出之后,大受歡迎窑眯。僅僅數(shù)周屏积,已經(jīng)有超過半數(shù)的 iOS 設(shè)備安裝了這一新系統(tǒng)。這是 iOS 歷代版本中采納速度最快的—甚至打破了 2013 年 iOS7 創(chuàng)下的記錄磅甩。


什么是應(yīng)用瘦身炊林?

“應(yīng)用瘦身”(App thinning) 是美國蘋果公司自iOS 9發(fā)布的新特性,它能對Apple Store和操作系統(tǒng)進(jìn)行優(yōu)化卷要,它根據(jù)用戶的具體設(shè)備型號渣聚,在保證應(yīng)用特性完整的前提下,盡可能地壓縮和減少應(yīng)用程序安裝包的體積却妨,也就是盡可能減少應(yīng)用程序?qū)τ脩粼O(shè)備內(nèi)存的占用饵逐,從而減小用戶下載應(yīng)用程序的負(fù)擔(dān)。App thinning的實現(xiàn)主要有以下3種方法: Slicing彪标、Bitcode和On-Demand Resources倍权。以下將對這3種方法進(jìn)行介紹。

瘦身、瘦身1∩5贝!

《App Thinning》2015年9月24日默辨,蘋果在其開發(fā)者門戶網(wǎng)站宣布德频,App Thinning 已被推遲,并沒有包含在 iOS9(或9.0.1)的公開發(fā)布中:

然而缩幸,正如筆者在本文一開始提到過的壹置,App Thinning 已經(jīng)得到修復(fù),所有運(yùn)行 iOS 9.0.2 的設(shè)備都可以使用該功能表谊。App thinning 是一種絕佳的工具钞护,它將大大加快應(yīng)用程序的下載速度!是一項可以改變整個下載進(jìn)程的新技術(shù)爆办。許多用戶反應(yīng)难咕,流量費(fèi)用過高、iOS 設(shè)備的存儲空間有限距辆,而下載速度卻不斷提升余佃,為了適應(yīng)這些問題,App Thinning 變得十分值得學(xué)習(xí)跨算。此外爆土,App Thinning 的發(fā)布已經(jīng)推遲了,現(xiàn)在正是學(xué)習(xí)關(guān)于這一新技術(shù)的最好時機(jī)诸蚕。

1. Slicing

在開發(fā)者將完整的應(yīng)用安裝包發(fā)布到Apple Store之后雾消,Apple Store會根據(jù)下載用戶的目標(biāo)設(shè)備型號創(chuàng)建相應(yīng)的應(yīng)用變體(variants of the app bundle)。 這些變體只包含可執(zhí)行的結(jié)構(gòu)和資源等必要部分挫望,而不需要讓用戶下載開發(fā)者提供的完整安裝包立润。

微信截圖_20201201154433.png

下圖展示了從開發(fā)者使用Xcode開發(fā)完整應(yīng)用并發(fā)布到Apple Store后被用戶下載到不同設(shè)備上的流程。

應(yīng)用發(fā)布下載流程



2.Bitcode

Bitcode使得開發(fā)者上傳應(yīng)用程序時不必非提交預(yù)編譯的二進(jìn)制文件媳板,只需要上傳“intermediate representation(直譯為中間代表)”即可桑腮。而用戶下載時,App Slicing可以根據(jù)用戶需求蛉幸,來判斷你是需要32位還是64位破讨。

也就是說,在用戶下載應(yīng)用之前奕纫,App Store在自動編譯應(yīng)用程序提陶。這樣,即使開發(fā)者沒有給他們的代碼添加標(biāo)簽匹层,應(yīng)用也能夠執(zhí)行App Slicing的部分功能隙笆,僅下載設(shè)備需要的32或64位代碼。不過Bitcode也意味著如果蘋果完善編譯器提高代碼效率,用戶下載應(yīng)用時蘋果進(jìn)行的完善會自動整合進(jìn)去撑柔。

Bitcode 是 iOS 上較新的功能瘸爽,對于新的項目需要手動開啟。這可以通過選擇Build Settings(編譯設(shè)置)下的項目設(shè)置铅忿,將 bitcode 設(shè)為 YES 來完成剪决。

手動開啟bitcode 設(shè)為 YES

雖然有評論表示,App Thinning這個新特性有時候也會帶來不方便檀训。比如用戶坐十幾個小時飛機(jī)柑潦,期間一直在玩游戲,持續(xù)過關(guān)斬將峻凫,但是因為沒有下載所以不能繼續(xù)玩下去妒茬,會感覺比較無奈。不過蔚晨,對于大多數(shù)用戶的應(yīng)用場景來說,App Thinning將為iOS設(shè)備用戶節(jié)省很多應(yīng)用所需要的存儲空間肛循,對于16GB容量的iOS設(shè)備用戶來說效果則更加明顯铭腕。

iOS 9的更新包體積從原來的4.6GB降至現(xiàn)在的1.3GB,讓不少8GB多糠、16GB的iPhone和iPad老用戶非常開心累舷。而App Thinning方案進(jìn)一步減小了系統(tǒng)在運(yùn)行應(yīng)用等多種實用情景時的存儲資源占用,令人期待夹孔。



3.On-Demand Resources

ODR(on-demand resources 隨需應(yīng)變資源)是iOS減少應(yīng)用資源消耗的另外一種方法被盈。比如多級游戲,用戶需要的通常都是他們當(dāng)前的級數(shù)以及下一級搭伤。ODR意味著用戶可以下載他們需要的幾級游戲只怎。隨著你的級數(shù)不斷增加,應(yīng)用再下載其他級數(shù)怜俐,并將用戶成功過關(guān)的級數(shù)刪掉身堡。

開啟按需加載資源功能涉及改變 Xcode 中的設(shè)置(在編譯設(shè)置(Build Settings)下),將「啟用按需加載資源”選中為 是」


Xcode 中的設(shè)置.

當(dāng)用戶點擊應(yīng)用內(nèi)容的時候拍鲤,就會動態(tài)從App Store上進(jìn)行下載贴谎,也就是說用戶只會在需要的時候占用存儲空間。這項功能有趣之處還在于當(dāng)將這些內(nèi)容在后臺進(jìn)行下載之后季稳,當(dāng)存儲空間緊張的時候會自動進(jìn)行刪除擅这。

冷靜!>笆蟆仲翎!

參考資料:

iOS APP安裝包瘦身實踐
漫談iOS的應(yīng)用瘦身
Working with App Thinning in iOS 9

iOS APP安裝包瘦身實踐
iOS APP可執(zhí)行文件的組成
iOS可執(zhí)行文件瘦身方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谭确,更是在濱河造成了極大的恐慌帘营,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逐哈,死亡現(xiàn)場離奇詭異芬迄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)昂秃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門禀梳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肠骆,你說我怎么就攤上這事算途。” “怎么了蚀腿?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵嘴瓤,是天一觀的道長。 經(jīng)常有香客問我莉钙,道長廓脆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任磁玉,我火速辦了婚禮停忿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚊伞。我一直安慰自己席赂,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布时迫。 她就那樣靜靜地躺著颅停,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掠拳。 梳的紋絲不亂的頭發(fā)上便监,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音碳想,去河邊找鬼烧董。 笑死,一個胖子當(dāng)著我的面吹牛胧奔,可吹牛的內(nèi)容都是我干的唇礁。 我是一名探鬼主播烂琴,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蒜撮!你這毒婦竟也來了访圃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凤瘦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡案铺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年蔬芥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片控汉。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡笔诵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姑子,到底是詐尸還是另有隱情乎婿,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布街佑,位于F島的核電站谢翎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沐旨。R本人自食惡果不足惜森逮,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望希俩。 院中可真熱鬧,春花似錦纲辽、人聲如沸颜武。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳞上。三九已至,卻和暖如春吊档,著一層夾襖步出監(jiān)牢的瞬間篙议,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工怠硼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留鬼贱,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓香璃,卻偏偏與公主長得像这难,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子葡秒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容