如何正確理解 Bitcode

如何正確理解 Bitcode(轉(zhuǎn)載至糖炒小蝦)

昨天去美團(tuán)吹水,聊到 BitCode 話題傀广,朋友說(shuō)他們發(fā)現(xiàn)美團(tuán)沒(méi)有開(kāi)啟 Bitcode,下載下來(lái)的包還是二進(jìn)制文件只有一個(gè)架構(gòu)的狀態(tài)。我感到非常不可思議蕊梧,晚上就去越獄了我的 iPad mini咆爽,剛好上周 9.1 越獄出了梁棠。結(jié)果發(fā)現(xiàn)果真如此。今天早晨和 SunnyXX 提及此事斗埂,都倍感神奇符糊,研究了一番,SunnyXX 又去查了蘋果文檔呛凶,發(fā)現(xiàn)大家都把 Bitcode 理解錯(cuò)了

BitCode 是什么

我們最近聚會(huì)總說(shuō)男娄,xxx SDK 不求上進(jìn),一年了還不支持 Bitcode漾稀。一旦支持了模闲,ipa 大小能少了不小。然而今天看完文檔發(fā)現(xiàn)并不是這么回事崭捍。

Bitcode尸折,干的事情是指令集優(yōu)化。根據(jù)你設(shè)備的狀態(tài)去做編譯優(yōu)化殷蛇,進(jìn)而提升性能实夹,但這對(duì)包的大小優(yōu)化起不到什么本質(zhì)上的作用

那么美團(tuán)那個(gè)事件是怎么回事呢?

App Thinning in Xcode

在查文檔之前粒梦,我干了這么樣一件事亮航。對(duì)比了一下 iOS 8、iOS 9 上的美團(tuán)占手機(jī)大小匀们。結(jié)果發(fā)現(xiàn)了一個(gè)問(wèn)題缴淋,如圖。

我確定美團(tuán)是 Universial 版本,也確定這兩個(gè)美團(tuán)是同一版本號(hào)宴猾。然而體積差了 40+ MB圆存。直接把 iOS 8 上的二進(jìn)制包拿出來(lái)(需越獄),在命令行下

file imeituan

我們發(fā)現(xiàn)仇哆,他是同時(shí)存在 armv7 和 arm64 兩個(gè)指令集的沦辙。

我又在 iOS 7 上干了同樣的事情,與 iOS 8 結(jié)果一致讹剔。于是我們能得出一個(gè)推論:這個(gè) ipa 變小的事情是 iOS 9 的 feature油讯。

知道是 iOS 9 的問(wèn)題了,就回過(guò)頭來(lái)去看 WWDC 2015 Session 404延欠,App Thinning in Xcode陌兑,我當(dāng)初看這篇睡著了。官方有這么一張 PPT由捎。

說(shuō)明兔综,APP Thining 這件事并不只是 Bitcode,而是由:App Slicing狞玛、On Demand Resources,Bitcode組成

其中软驰,App Slicing干的事情是如下圖這樣,根據(jù)你設(shè)備型號(hào)心肪,生成對(duì)應(yīng)資源的 ipa锭亏,以節(jié)省空間。

并且我們?cè)谖臋n里看到了這么一句話:

In fact, app slicing handles themajorityof the app thinning process. ‘App Slicing’ feature finally switched on in iOS 9.0.2

也就是說(shuō)硬鞍,對(duì)于 ipa 減肥慧瘤,主要是由拆分架構(gòu)、資源文件來(lái)起到絕對(duì)性作用固该。而這個(gè)功能 iOS 9.0.2 之前的用戶都享受不到锅减。

再來(lái)說(shuō)一下On Demand Resource的作用,蘋果的示意圖很清晰伐坏。

作為游戲怔匣,只需要下載公共資源文件、初始關(guān)卡著淆。每過(guò)一關(guān),再下載對(duì)應(yīng)資源文件可以大幅減少包的大小拴疤。這對(duì)安裝包只有 200M 限制的 Apple TV 格外重要永部。

那么,我們知道呐矾。開(kāi)了 Bitcode 后苔埋,會(huì)根據(jù)不同設(shè)備來(lái)分包。會(huì)不會(huì)能起到 iOS 8 縮減體積的作用呢蜒犯?事實(shí)上并不是如此组橄,大家可以去下載一下手機(jī)百度荞膘。會(huì)發(fā)現(xiàn) iOS 8,比 iOS 9 大得多玉工。

所以我們能得出來(lái) 2 個(gè)不大不小的結(jié)論:

1. 如果想給 ipa 減肥羽资,Bitcode 乃至 App Thinning 都對(duì) iOS 9.0.2 以下用戶無(wú)效。

2. 其實(shí)Bitcode 對(duì) ipa 減肥起不到什么作用遵班。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屠升,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子狭郑,更是在濱河造成了極大的恐慌腹暖,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翰萨,死亡現(xiàn)場(chǎng)離奇詭異脏答,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)亩鬼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門殖告,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人辛孵,你說(shuō)我怎么就攤上這事丛肮。” “怎么了魄缚?”我有些...
    開(kāi)封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵宝与,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我冶匹,道長(zhǎng)习劫,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任嚼隘,我火速辦了婚禮诽里,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘飞蛹。我一直安慰自己谤狡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布卧檐。 她就那樣靜靜地躺著墓懂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪霉囚。 梳的紋絲不亂的頭發(fā)上捕仔,一...
    開(kāi)封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼榜跌。 笑死闪唆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钓葫。 我是一名探鬼主播悄蕾,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瓤逼!你這毒婦竟也來(lái)了笼吟?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤霸旗,失蹤者是張志新(化名)和其女友劉穎贷帮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诱告,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撵枢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了精居。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锄禽。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖靴姿,靈堂內(nèi)的尸體忽然破棺而出沃但,到底是詐尸還是另有隱情,我是刑警寧澤佛吓,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布宵晚,位于F島的核電站,受9級(jí)特大地震影響维雇,放射性物質(zhì)發(fā)生泄漏淤刃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一吱型、第九天 我趴在偏房一處隱蔽的房頂上張望逸贾。 院中可真熱鬧,春花似錦津滞、人聲如沸铝侵。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咪鲜。三九已至,卻和暖如春锌介,著一層夾襖步出監(jiān)牢的瞬間嗜诀,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工孔祸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隆敢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓崔慧,卻偏偏與公主長(zhǎng)得像拂蝎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惶室,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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