APP Thinning

最近看了一個(gè)直播分享介紹的技術(shù) 挺好的。app thinning 應(yīng)用瘦身技術(shù),這個(gè)是WWDC 2015 最新分享的技術(shù)。主要分為下面三個(gè)部分

App slicing

這個(gè)的意思比較簡(jiǎn)單 就是應(yīng)用裁剪。我們都知道系統(tǒng)中代碼文件一般占用不了多少ipa包的大小,主要是圖片資源占用的資源比較多,以前apple的方式是全部從 app store 上面下載下來(lái)整個(gè)ipa 資源包,使用的時(shí)候使用 @1x,@2x,@3x,來(lái)區(qū)分不同分辨率的圖片,這種比較蠢笨的方式早就遭到了眾多開發(fā)者的詬病,特別是游戲,圖片資源占用了大部分ipa包的大小,動(dòng)不動(dòng)就是 100M朝上。

有神馬好的解決方案呢?正常人肯定是這樣想的,我是 iPhone 5s 的手機(jī) 我的手機(jī)只需要 @2x 的圖片,我為啥還要下載一套 @1x 和 @3x 的圖片呢?對(duì)啊,大師兄說(shuō)的對(duì)啊... Apple 在WWDC 2015 上面終于把這個(gè)蛋疼的地方改了...

具體的解決問(wèn)題的方法是下面這個(gè) 鐺鐺鐺鐺~~ ??!

assests.png

這個(gè)資源管理文件夾管理圖片文件。我們開發(fā)一般 都切好多 PDF的圖,我讓美工妹子,直接給我一張圖,除了顏色比較復(fù)雜的位圖,一般圖標(biāo)類的純色的圖片都是PDF的圖片,這樣我也方便自己渲染顏色。使用assets 管理你的圖片,并且打包上傳到 app store 之后,每次用戶下載的時(shí)候 apple 的后臺(tái)會(huì)根據(jù)當(dāng)前用戶的機(jī)型生成一套 最適合這個(gè)機(jī)型的一套圖片這樣就節(jié)省了大量的不必要的圖片資源。能節(jié)省出來(lái)很大一部分空間。

BitCode

這個(gè)機(jī)制是優(yōu)化你的最終生成可執(zhí)行代碼的,大體的意思就是說(shuō)。app 需要運(yùn)行在多種機(jī)型上面,但是 apple 的處理器架構(gòu)并不是全部一樣的,可能這個(gè)設(shè)備的指令集和其他設(shè)備的指令集不是一樣的,這個(gè)時(shí)候我們就需要對(duì)多種指令集做處理。

以前當(dāng)你打包app 的時(shí)候 你需要在 ipa 包中生成兩套可執(zhí)行代碼,arm-64 一套,arm-32一套,用戶也是這樣從 app store 下載兩套指令集。

用戶下載 app 的時(shí)候其實(shí)是下載了兩套指令集,當(dāng)打開應(yīng)用,系統(tǒng)加載應(yīng)用的時(shí)候選擇一套可用的指令集,去執(zhí)行。這種機(jī)制和上面圖片的機(jī)制是一樣的,蠻力的方法,最簡(jiǎn)答的方法,我全部給你,你想用哪個(gè)你自己選擇。

正常人想會(huì)會(huì)怎樣解決這個(gè)問(wèn)題呢? 我的是 iPhone 5s 的手機(jī)我只需要 arm-64 的針對(duì)iPhone 5s 優(yōu)化過(guò)的可執(zhí)行代碼,我不需要arm-32 的可執(zhí)行代碼了。對(duì)啊。大師兄...

bitcode 的機(jī)制是開發(fā)人員打包的 ipa 包中的代碼不是最終的可執(zhí)行代碼,而是一種中間代碼(感覺(jué)跟 C# 是一個(gè)機(jī)制呢... 難道apple在下一盤大棋...)用戶下載應(yīng)用的時(shí)候同樣是 apple 的后臺(tái)根據(jù)當(dāng)前設(shè)備給你生成最適合當(dāng)前設(shè)備的可執(zhí)行代碼傳給用戶。這些都無(wú)需我們開發(fā)者操心,蘋果會(huì)幫助我們優(yōu)化最終的可執(zhí)行代碼。感覺(jué)棒棒噠~~!!

On-Demand Resources (ODR技術(shù))

也是圖片資源管理技術(shù),這個(gè)技術(shù)的大致意思是這樣的在每個(gè)assets管理的圖片上面都可以打上一個(gè)tags,不同的tags 分別屬于不同的組,我可以在程序中分情況下載不同組的圖片.這個(gè)在游戲場(chǎng)景中用到的很多,比如我用戶第一關(guān)沒(méi)有過(guò)去是不允許進(jìn)入第二關(guān)的,那這個(gè)時(shí)候第二關(guān)的資源就是沒(méi)有用的。我不需要下載,當(dāng)用戶到達(dá)第二關(guān)的時(shí)候我才需要下載第二關(guān)的資源。apple 將這些下載代碼都封裝好了 ,用戶只需要代用就行了,但是,但是,但是,這個(gè)是 iOS 9 的api 需要適配的話 還是不能用到,用一些黑魔法估計(jì)可以,這個(gè)技術(shù)大致就是這樣的,我想在 app 開發(fā)中也用不到,做游戲的可能能用到,具體的還是參考 apple 的文檔吧
ORD BY APPLE

ODR.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容