Android cpu架构类型升级方案调研
1.背景說(shuō)明
當(dāng)前APP上個(gè)版本APK安裝包大小58.3M,因?yàn)闃I(yè)務(wù)原因集成某功能APK大小將會(huì)增加至109M左右,會(huì)影響用戶的升級(jí)意愿和安裝使用情況,故對(duì)APK架構(gòu)支持進(jìn)行調(diào)研,通過(guò)數(shù)據(jù)對(duì)比得出可行性方案結(jié)論。
2.CPU架構(gòu)相關(guān)知識(shí)
Android 支持的cpu架構(gòu)類型:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips、mips64,其中分為三大家族:arm、x86、mips,目前常見的麒麟cpu、高通cpu、聯(lián)發(fā)科cpu都是arm架構(gòu),常見于移動(dòng)設(shè)備;AMD和因特爾CPU均為x86架構(gòu),早起華碩手機(jī)采用了x86架構(gòu)的cpu,但是目前幾乎沒(méi)有了;mips在32位和64位嵌入式領(lǐng)域中歷史悠久,獲得了不少的成功,在Android剛發(fā)布時(shí)還有使用,但目前已經(jīng)已經(jīng)找不到蹤跡。其中64位相較于32位在運(yùn)算處理中,會(huì)獲得較快的支持。
下面詳細(xì)介紹可跳過(guò),直接看 3.數(shù)據(jù)分析
參考:【arm cpu架構(gòu)體系】【armV8】【armv7】【A系列的CPU】_money_yuan的博客-CSDN博客_armv8架構(gòu)
如圖所示,綠色的部分都是v7-A的架構(gòu),藍(lán)色的是v8-A架構(gòu),基本上綠色都是可以支持到32和64位的,除了A32,只支持到32位。在右邊的每個(gè)部分,比如說(shuō)需要高效能的最上面的A15-A73這個(gè)部分是最高效的,接下來(lái)就是比較注重整個(gè)效率的部分了,中間那個(gè)部分是比較高效率的,最下面那欄的是效率最好的,在電池的效能方面達(dá)到了最好的標(biāo)準(zhǔn)。
| 架構(gòu) | 處理器家族 |
| ARMv1 | ARM1 |
| ARMv2 | ARM2 、ARM3 |
| ARMv3 | ARM6, ARM7 |
| ARMv4 | StrongARM 、ARM7TDMI 、ARM9 TDMI |
| ARMv5 | ARM7EJ 、ARM9E 、ARM10E 、XScale |
| ARMv6 | ARM11 、ARM Cortex-M |
| ARMv7 | ARM Cortex-A 、ARM Cortex-M 、ARM Cortex-R |
| ARMv8 | Cortex-A50[9] |
下面我們將詳細(xì)了解近年來(lái)ARM公司發(fā)布的數(shù)款A(yù)系列處理器。ARM公司的Cortex-A系列處理器適用于具有高計(jì)算要求、運(yùn)行豐富操作系統(tǒng)以及提供交互媒體和圖形體驗(yàn)的應(yīng)用領(lǐng)域。
Cortex-A73
?
這是ARM 2016年發(fā)布的最新A系列處理器,Cortex-A73支持全尺寸ARMv8-A構(gòu)架,ARMv8-A是ARM公司的首款支持64位指令集的處理器架構(gòu),包括ARM TrustZone技術(shù)、NEON、虛擬化和加密技術(shù)。所以無(wú)論是32位還是64位,Cortex-A73都可以提供適應(yīng)性最強(qiáng)的移動(dòng)應(yīng)用生態(tài)開發(fā)環(huán)境。Cortex-A73包括128位 AMBR 4 ACE接口和ARM的big.LITTLE系統(tǒng)一體化接口,采用了目前最先進(jìn)的10nm技術(shù)制造,可以提供比Cortex-A72高出30%的持續(xù)處理能力,非常適合移動(dòng)設(shè)備和消費(fèi)級(jí)設(shè)備使用。預(yù)計(jì)今年晚些時(shí)候到2017年,Cortex-A73處理器將會(huì)逐漸覆蓋到我們合作伙伴的高端智能手機(jī)、平板電腦、翻蓋式移動(dòng)設(shè)備、數(shù)字電視等一系列消費(fèi)電子設(shè)備。
Cortex-A72
Cortex-A72最早發(fā)布于2015年年初,也是基于ARMv8-A架構(gòu),采用臺(tái)積電16nm FinFET制造工藝,Cortex-A72可在芯片上單獨(dú)實(shí)現(xiàn)性能,也可以搭配Cortex-A53處理器與ARMCoreLinkTMCCI高速緩存一致性互連(CacheCoherentInterconnect)構(gòu)成ARMbig.LITTLETM配置,進(jìn)一步提升能效。在相同的移動(dòng)設(shè)備電池壽命限制下,Cortex-A72能相較基于Cortex-A15的設(shè)備提供3.5倍的性能表現(xiàn),相比于Cortex-A57也有約1.8倍的性能提升,展現(xiàn)出了優(yōu)異的整體功耗效率。Cortex-A72是目前基于ARMv8-A架構(gòu)處理器中使用最廣泛的處理器之一,主要其應(yīng)用市場(chǎng)包括高端智能手機(jī)、大屏幕的移動(dòng)設(shè)備、企業(yè)網(wǎng)路設(shè)備、服務(wù)器、無(wú)線基臺(tái)、數(shù)字電視。
Cortex-A57
Cortex-A57是ARM針對(duì)2013年、2014年和2015年設(shè)計(jì)起點(diǎn)的CPU產(chǎn)品系列的旗艦級(jí)CPU,它也是ARM首次采用64位ARMv8-A架構(gòu)CPU,而且通過(guò)Aarch32執(zhí)行狀態(tài),保持與ARMv7架構(gòu)的完全后向兼容性。除了ARMv8的架構(gòu)優(yōu)勢(shì)之外,Cortex-A57還提高了單個(gè)時(shí)鐘周期性能,比高性能的Cortex-A15 CPU高出了20%至40%。它還改進(jìn)了二級(jí)高速緩存的的設(shè)計(jì)以及內(nèi)存系統(tǒng)的其他組件,極大的提高了能效。Cortex-A57將為移動(dòng)系統(tǒng)提供超高能的性能,而借助big.LITTLE,SoC能以很低的平均功耗做到這一點(diǎn)。其主要面對(duì)的是中高端電腦,平板電腦以及服務(wù)器產(chǎn)品。
Cortex-A53
?
Cortex-A53同樣是采取了ARMv8-A架構(gòu),能夠支持32位的ARMv7代碼和64位代碼的AArch64執(zhí)行狀態(tài)。A53架構(gòu)特點(diǎn)是功耗降低、能效提高。其目標(biāo)是28nm HPM制造工藝下、運(yùn)行SPECint2000測(cè)試時(shí),單個(gè)核心的功耗不超過(guò)0.13W。它提供的性能比Cortex-A7處理器的功率效率更高,并能夠作為一個(gè)獨(dú)立的主要的應(yīng)用處理器,或者搭配Cortex-A57處理器構(gòu)成big.LITTLE配置。Cortex-A53在相同的頻率下,能提供比Cortex-A9更高的效能。其主要面對(duì)的是中高端電腦,平板電腦,機(jī)頂盒,數(shù)字電視等。
Cortex-A35
?
Cortex-A35是基于ARMv8-A 64位架構(gòu)設(shè)計(jì)的一款低功耗CPU,其目的是為了取代此前32位Cortex-A7和Cortex-A5兩顆老核心,采用和A53/A7類似的順序有限雙發(fā)射設(shè)計(jì),同時(shí)融入了A72的一些新特性,并在前端重新設(shè)計(jì)了指令預(yù)取單元,提升了分支預(yù)測(cè)精度。此外,A35還采用了A53的緩存、內(nèi)存架構(gòu),可配置8-64KB一級(jí)指令和數(shù)據(jù)緩存、128KB-1MB二級(jí)緩存,加入了NEON/FP單元,改進(jìn)了存儲(chǔ)性能,支持完整流水線的雙精度乘法,還為CPU核心、NEON流水線都配備了硬件保留狀態(tài)(獨(dú)立電源域)以提升電源管理效率。在同樣的工藝、頻率下,A35的功耗比A7低大約10%,同時(shí)性能提升6-40%。而對(duì)比A53,它可以保留80-100%的性能,但是功耗降低32%、面積縮小25%,能效提升25%。A35還可以和A53、A57、A72等大核心搭配,組成big.LITTLE混合架構(gòu)系統(tǒng),進(jìn)一步提升系統(tǒng)能效。其主要定位于低功耗的低端手機(jī)、可穿戴、物聯(lián)網(wǎng)等領(lǐng)域。
Cortex-A32
?
這是ARM 新一代構(gòu)架中,唯一一個(gè) 32 位(ARMv7-A )架構(gòu)的處理器,但 A32 就像是 32 位版的 A35,目標(biāo)很明顯,就是在效能比本來(lái)就逆天的 A35 的基礎(chǔ)上進(jìn)一步控制功耗。A32 架構(gòu)主打芯片面積、功耗控制和能耗比,其停留在 32 位(ARMv7-A 指令集),指令預(yù)取單元針對(duì)效率進(jìn)行了重新設(shè)計(jì),一、二級(jí)暫存、浮點(diǎn)和 DSP 操作性能則針對(duì)速度進(jìn)行了改進(jìn),并引入了新的電源管理特性。其支持 TrustZone 安全加密、NEON SIMD 指令集、DSP / SIMD 擴(kuò)展、VFPv4 浮點(diǎn)計(jì)算、虛擬硬件等。A32 可以在 32 位下提供和 A35 一樣的性能。但更低功耗,讓它的效能比(單位電能產(chǎn)出的性能)比 A35 還要高 10%、比 A5 高 30%、比 A7 高 25%。A35 可以透過(guò)提升頻率達(dá)到 A53 80-100% 性能,也就是說(shuō),A32 也可以在 32 位下達(dá)到同樣的性能等級(jí),這時(shí)候的芯片面積只有 A53 的 68%,而功耗則只有 A53 的 61%。
在 64 位之下,A35 都有代替 A53 架構(gòu)的實(shí)力,而在 32 位中,A32 就已經(jīng)是完勝所有人的境界了,而且比起 64 位的 A35 架構(gòu),32 位的 A32 更適合用在穿戴設(shè)備和物聯(lián)網(wǎng)產(chǎn)品上。
Cortex-A17
A17仍然基于32位ARMv7-A指令集,初期會(huì)采用28nm工藝,后期進(jìn)化到20nm。本質(zhì)架構(gòu)和A12一樣都是雙寬度、亂序發(fā)射,僅僅是改進(jìn)了外部互聯(lián),引入了新的一致性總線AMBA4 ACE,可以更快速地連接內(nèi)存控制器,從而改善性能和能效。得益于這個(gè)新的總線,A17可以支持多核心SoC的完整內(nèi)存一致性操作,能夠參與big.LITTLE雙架構(gòu)混合方案,在特定頻率、工藝、內(nèi)存條件下,A17的性能比A12提升大約40%。在某些特定的環(huán)境中,A17的性能已經(jīng)可以和A15處于一個(gè)檔次了,但是功耗更低、能效更高。雖然在命名上排在Cortex-A15之上,但其定位中端,而不是高端。
Cortex-A15
Cortex-A15最早在2010年發(fā)布,基于32位ARMv7-A架構(gòu)。A15和A9同樣具備亂序執(zhí)行,但是Cortex-A15具備(兩倍)的指令發(fā)射端口和執(zhí)行資源,指令解碼能力也要高出50%,動(dòng)態(tài)分支預(yù)測(cè)能力更強(qiáng)(采用了多層級(jí)分支表緩存),指令拾取帶寬更強(qiáng)(128 bit vs 64 bit),這些都能讓A15的流水線執(zhí)行具備更高的效率。除此以外,A15采用了VFPv4浮點(diǎn)單元設(shè)計(jì),能執(zhí)行FMA指令以及硬件除法指令,相較而言A9的峰值向量浮點(diǎn)性能基本上只有A15的一半。Cortex-A15處理器可以應(yīng)用在智能手機(jī)、平板電腦、移動(dòng)計(jì)算、高端數(shù)字家電、服務(wù)器和無(wú)線基礎(chǔ)結(jié)構(gòu)等設(shè)備上。
Cortex-A9
?
ARM Cortex-A9采用ARMv7-A架構(gòu),目前我們能見到的四核處理器大多都是屬于Cortex-A9系列。 Cortex-A9 處理器的設(shè)計(jì)旨在打造最先進(jìn)的、高效率的、長(zhǎng)度動(dòng)態(tài)可變的、多指令執(zhí)行超標(biāo)量體系結(jié)構(gòu),提供采用亂序猜測(cè)方式執(zhí)行的 8 階段管道處理器,憑借范圍廣泛的消費(fèi)類、網(wǎng)絡(luò)、企業(yè)和移動(dòng)應(yīng)用中的前沿產(chǎn)品所需的功能,它可以兼具高性能和高能效。Cortex-A9 微體系結(jié)構(gòu)既可用于可伸縮的多核處理器(Cortex-A9 MPCore多核處理器),也可用于更傳統(tǒng)的處理器(Cortex-A9單核處理器)。可伸縮的多核處理器和單核處理器支持 16、32 或 64KB 4 路關(guān)聯(lián)的 L1 高速緩存配置,對(duì)于可選的 L2 高速緩存控制器,最多支持 8MB 的 L2 高速緩存配置,它們具有極高的靈活性,均適用于特定應(yīng)用領(lǐng)域和市場(chǎng)。
Cortex-A8
ARM Cortex-A8處理器,基于ARMv7-A架構(gòu),是目前使用的單核手機(jī)中最為常見的產(chǎn)品。Cortex-A8處理器是首款基于ARMv7體系結(jié)構(gòu)的產(chǎn)品,能夠?qū)⑺俣葟?00MHz提高到1GHz以上。Cortex-A8處理器可以滿足需要在300mW以下運(yùn)行的移動(dòng)設(shè)備的功率優(yōu)化要求;以及需要2000 Dhrystone MIPS的消費(fèi)類應(yīng)用領(lǐng)域的性能優(yōu)化要求。Cortex-A8 高性能處理器目前已經(jīng)非常成熟,從手機(jī)到上網(wǎng)本、DTV、打印機(jī)和汽車信息娛樂(lè),Cortex-A8處理器都提供了可靠的高性能解決方案。
Cortex-A7
Cortex-A7采用ARMv7-A架構(gòu),它的特點(diǎn)是在保證性能的基礎(chǔ)上提供了出色的低功耗表現(xiàn)。Cortex-A7處理器的體系結(jié)構(gòu)和功能集與Cortex-A15 處理器完全相同,不同這處在于,Cortex-A7 處理器的微體系結(jié)構(gòu)側(cè)重于提供最佳能效,因此這兩種處理器可在big.LITTLE(大小核大小核心伴侶結(jié)構(gòu))配置中協(xié)同工作,從而提供高性能與超低功耗的終極組合。單個(gè)Cortex-A7處理器的能源效率是Cortex-A8處理器的5倍,性能提升50%,而尺寸僅為后者的五分之一。
Cortex-A5
?
Cortex-A5處理器同樣基于ARMv7-A架構(gòu),它是能效最高、成本最低的處理器,能夠向最廣泛的設(shè)備提供最基礎(chǔ)的 Internet 訪問(wèn)。Cortex-A5 處理器在指令以及功能方面與更高性能的 Cortex-A8、Cortex-A9 和 Cortex-A15 處理器完全兼容 - 一直到操作系統(tǒng)級(jí)別。Cortex-A5 處理器還保持與經(jīng)典 ARM 處理器(包括 ARM926EJ-S、ARM1176JZ-S 和 ARM7TDMI?)的向后應(yīng)用程序兼容性。其定位于從入門級(jí)智能手機(jī)、低成本手機(jī)和智能移動(dòng)設(shè)備以及基礎(chǔ)工業(yè)設(shè)備。
3.數(shù)據(jù)分析
首先通過(guò)友盟統(tǒng)計(jì)平臺(tái)對(duì)上傳的日志進(jìn)行數(shù)據(jù)分析,在某些特定的錯(cuò)誤數(shù)據(jù)集中(為了盡可能減少設(shè)備差異性而導(dǎo)致不一致,任何設(shè)備都可能產(chǎn)生該失敗情況),根據(jù)采集的設(shè)備信息進(jìn)行分析。采集日期:2021.06
| 設(shè)備cpu架構(gòu)類型 | 數(shù)量 |
| arm64-v8a,armeabi-v7a,armeabi | 232 |
| armeabi-v7a,armeabi | 8(Android4.4.4、7、9) |
通過(guò)篩選240條數(shù)據(jù),進(jìn)行分析,其中所有設(shè)備均支持armeabi-v7a、armeabi,其中有8條數(shù)據(jù)的設(shè)備不支持arm64-v8a。
4.常見應(yīng)用架構(gòu)支持類型對(duì)比
| 應(yīng)用名稱 | cpu架構(gòu)支持 | 支持系統(tǒng)API | 安裝包大小(M) | so大小(M) | so大小比重(升序) |
| 駕考寶典 | armeabi-v7a | 21-30 | 150.9 | 25.7 | 17% |
| 粉筆職教 | armeabi-v7a | 21-29 | 60.8 | 10.8 | 18% |
| 有道云詞典 | armeabi-v7a | 21-29 | 162.6 | 30.5 | 19% |
| 愛奇藝 | armeabi-v7a | 16-30 | 60.6 | 12.3 | 20% |
| 掌門1對(duì)1輔導(dǎo) | armeabi-v7a | 19-30 | 155.2 | 31.9 | 21% |
| 騰訊視頻 | armeabi | 21-28 | 134.6 | 35.7 | 27% |
| 網(wǎng)易公開課 | armeabi-v7a、arm64-v8a | 21-29 | 40.5 | 11.2 | 28% |
| 抖音 | armeabi-v7a | 19-29 | 125.5 | 38.4 | 31% |
| 小猿搜題 | armeabi-v7a | 19-26 | 115.5 | 37.8 | 33% |
| 作業(yè)幫 | armeabi-v7a | 18-26 | 110.9 | 36.4 | 33% |
| 環(huán)球網(wǎng)校 | armeabi-v7a | 18-29 | 63 | 24.3 | 39% |
| 微信 | arm64-v8a | 21-29 | 209.5 | 102.1 | 49% |
| 華圖在線 | armeabi、armeabi-v7a | 19-26 | 110.8 | 54 | 49% |
| 233網(wǎng)校 | armeabi-v7a、arm64-v8a | 21-29 | 98.4 | 53 | 54% |
| 支付寶 | armeabi | 18-29 | 96.3 | 52.8 | 55% |
| 淘寶 | armeabi-v7a、arm64-v8a | 14-28 | 157.6 | 88.1 | 56% |
| 中華會(huì)計(jì)網(wǎng) | armeabi-v7a、arm64-v8a | 17-26 | 103.6 | 59.7 | 58% |
通過(guò)對(duì)比總結(jié):
17個(gè)應(yīng)用中14個(gè)支持armeabi-v7a、3個(gè)支持armeabi、5個(gè)支持arm64-v8a,支持的cpu架構(gòu)類型越多,so大小比重越大,其中,騰訊視頻和微信為了更好的支持性,支持armeabi架構(gòu);而雖然微信使用的人很多,但它支持的卻是arm64-v8a的架構(gòu),對(duì)架構(gòu)要求最高
5.APP架構(gòu)支持類型對(duì)比
以下是APP v4.3.1加入某直播sdk后安裝包大小的情況(測(cè)試包)
| 架構(gòu)支持類型 | 安裝包大小(M) | so大小(M) | so大小比重 |
| armeabi-v7a、arm64-v8a、x86 | 102.4 | 65.5 | 63.9% |
| armeabi-v7a、arm64-v8a | 81.7 | 44.8 | 54.7% |
| arm64-v8a | 60.8 | 23.9 | 39.3% |
| armeabi-v7a | 57.8 | 20.9 | 36.1% |
6.實(shí)施方案
方案1:
當(dāng)前Android項(xiàng)目支持的cpu架構(gòu)類型為:arm64-v8a、armeabi-v7a、x86,基于以上數(shù)據(jù)分析后得出,CPU架構(gòu)僅保留armeabi-v7a支持可行性較大,安裝包大小和上個(gè)版本接近(57.1M->59.7M),不會(huì)出現(xiàn)兼容性問(wèn)題,但是有極少數(shù)用戶可能使用的有一些模擬器(x86平臺(tái))等設(shè)備,會(huì)導(dǎo)致無(wú)法使用,對(duì)于需要支持64位架構(gòu)的應(yīng)用市場(chǎng)可以考慮多包上傳;
方案2:
CPU架構(gòu)僅保留arm64-v8a支持,但是有少數(shù)用戶可能使用的是七八年甚至十來(lái)年的設(shè)備,會(huì)因兼容性導(dǎo)致無(wú)法使用,有一定的風(fēng)險(xiǎn),但是微信就已經(jīng)這么做了,可見風(fēng)險(xiǎn)之小;
方案3:
繼續(xù)維持現(xiàn)有平臺(tái)支持方案:cpu架構(gòu)類型為:arm64-v8a、armeabi-v7a、x86,在升級(jí)時(shí)安裝包會(huì)較大,一定程度上的體驗(yàn)度降低;
總結(jié)
以上是生活随笔為你收集整理的Android cpu架构类型升级方案调研的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信小程序(一):微信小程序申请注册与开
- 下一篇: Android 使用NDK开发中,遇到m