iOS 開發(fā)常見配置-Architectures

前言

文章開始需要先了解一下幾個問題:
1.arm是啥?
2.armv7又是啥?那armv7sarm64(注意不是armv64)呢?
3.64位處理器32位處理器跟上面又有什么關(guān)系呢?
==>

  • ARM是嵌入式中的一種架構(gòu),可認(rèn)為是對一類微處理器的統(tǒng)稱(也就是架構(gòu))。(再詳細(xì)點的可以去百度哦!??)
  • armv7|armv7s|arm64都是ARM處理器的指令集
  • 相應(yīng)的Mac處理器上的指令集有i386|x86_64
  • 至于兩者的關(guān)系就是
真機32位處理器需要armv7架構(gòu)或者armv7s架構(gòu)
真機64位處理器需要arm64架構(gòu)
模擬器32位處理器測試需要i386架構(gòu)
模擬器64位處理器測試需要x86_64架構(gòu)

那么常見的指令集又用在那些設(shè)備上呢:

arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

至于iPhone7和iPhone 7Plus上面的指令集沒找到資料,所以也不敢亂寫。

Architectures

Architectures這個單詞的意思就是架構(gòu),Xcode新建工程的時候Architectures默認(rèn)的幾個設(shè)置就是:


三個默認(rèn)的關(guān)于Architectures的配置圖
  1. Architectures
    指的是編譯出來的二進制文件需要支持的指令集。需要注意的是,支持的指令集越多,二進制文件中包含的支持指令集的代碼包就越多,進而二進制文件就越大,也就會導(dǎo)致ipa包越大。
  2. Valid Architectures
    限制可能支持的指令集的范圍,也就是編譯的二進制文件支持的指令集的類型都在這里面。而編譯出哪種指令集的包,將由Architectures與Valid Architectures(因此這個不能為空)的交集來確定
  3. Build Active Architecture Only
    是否只針對Xcode連接的設(shè)備支持的指令集進行編譯,設(shè)置為YES是為了加快編譯速度,設(shè)置為No的話就會編譯支持的所有版本(具體版本由Architectures與Valid Architectures的交集來確定)。至于Debug和Release使用什么配置就看開發(fā)自己的需要了。

Demo

同一套代碼我打了如下幾個包
a. 架構(gòu)指令集:arm64(ipa包大?。?1K)
b. 架構(gòu)指令集:armv7s(ipa包大小:32K)
c. 架構(gòu)指令集:armv7 arm64(ipa包大小:46K)
d. 架構(gòu)指令集:armv7 armv7s arm64(ipa 包大?。?0K)
多支持一個架構(gòu)指令集合,二進制文件中會多一套代碼,所以最后的ipa包大小也不一樣(多出來的只是代碼的大小,好像跟資源例如圖片啥的沒關(guān)系,估計資源對這幾個代碼來說是公用的),安裝到設(shè)備里面的時候會根據(jù)CPU架構(gòu)執(zhí)行對應(yīng)的代碼,但是架構(gòu)指令集只能向下兼容,iPhone5(armv7s)就無法安裝a安裝包,但是iPhone5s(arm64)就可以安裝b安裝包,只不過這樣無法展現(xiàn)iPhone5s 64位處理器的性能。
查看一個安裝包支持的架構(gòu)指令集的方式是先修改安裝包后綴名為zip,然后解壓,在終端cd到解壓的文件夾中的.app文件里面(一般.app會被隱藏),使用lipo -info app項目名命令查看。

查看spa包支持的架構(gòu)指令集

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

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

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