說到智能手機的性能好不好呐赡,我們通常最會想到的就是它的處理器(cpu),目前市場上最為常見的生產(chǎn)商有英偉達骏融、高通链嘀、華為等。
cpu主要由運算器档玻、控制器怀泊、寄存器三部分組成,從字面意思看就是運算就是起著運算的作用误趴,控制器就是負責(zé)發(fā)出cpu每條指令所需要的信息霹琼,寄存器就是保存運算或者指令的一些臨時文件,這樣可以保證更高的速度凉当。
cpu的功能基本:處理指令枣申、執(zhí)行操作、控制時間看杭、處理數(shù)據(jù)忠藤。
- 打個比喻來說,cpu就像我們的大腦楼雹,幫我們完成各種各樣的生理活動模孩。所以對于電腦或者是手機而言,cpu就相當于它們的“大腦”烘豹。
android支持的cpu架構(gòu)(目前是七種)
- armeabi
- 第5代 ARM v5TE瓜贾,使用軟件浮點運算,兼容所有ARM設(shè)備携悯,通用性強祭芦,速度慢
- armeabi-v7a
- 第7代 ARM v7,使用硬件浮點運算憔鬼,具有高級擴展功能
- arm64-v8a
- 第8代龟劲,64位,包含AArch32轴或、AArch64兩個執(zhí)行狀態(tài)對應(yīng)32昌跌、64bit
- x86
- intel 32位,一般用于平板
- x86_64
- intel 64位照雁,一般用于平板
- mips 少接觸
- mips64 少接觸
從廠家上來分是有三種:arm蚕愤、x86、MIPS
arm 系列是絕大多數(shù)手機上使用的,x86 主要是運用在平板上萍诱,而 MIPS 基本上就沒見過悬嗓。
從類型來分,有32位和64位裕坊,
名字中沒有64的就是32位的了包竹。
適配
正常來說只使用 armeabi-v7a 就可以適配基本所有手機了,因為現(xiàn)在手機基本上都支持這種CPU架構(gòu)籍凝。
但是對于同時也能支持 arm64-v8a 的手機來說周瞎,性能上就不如使用對應(yīng) CPU 架構(gòu)的快了,畢竟是32位和64位的區(qū)別饵蒂。
值得一提的是声诸,arm 系列本身是沒有64位,而是 intel 的x86_64先出現(xiàn)的苹享,之后 arm 收購了 MIPS64双絮,基于 MIPS64 改良出 arm64-v8a,所以也能理解為什么 MIPS 幾乎沒有得问。
而另外,arm64-v8a 的 CPU 架構(gòu)上也能運行 armeabi-v7a
為什么呢软免?不是64位上運行32位宫纬,而是 arm64-v8a 上本身搭載了 armeabi-v7a,所以在 arm64-v8a 上運行 armeabi-v7a 是使用32位處理的膏萧,沒毛病漓骚。
如果應(yīng)用中有不止一個 so,那就要注意了榛泛,如果這時你一個 so 同時支持了 armeabi-v7a 和arm64-v8a蝌蹂,而另一個 so 只支持了一種,那可能會運行有問題曹锨,這時要么另一個 so 也支持兩種孤个,要么把第一個 so 刪掉對應(yīng)目錄,只支持相同的一種沛简。
在提供支持多個 CPU 架構(gòu)的 SDK 時齐鲤,可以同時提供多個目錄的 so,雖然此時 SDK 相對較大椒楣,但是被編譯的 so 還是以你在 gradle 里設(shè)置的支持的 ndk 為準:
ndk {
abiFilters ‘a(chǎn)rmeabi-v7a’ // , ‘a(chǎn)rm64-v8a’, ‘x86’, ‘x86_64’
}
查看設(shè)備支持的 CPU 架構(gòu)或者 APP 提供的 CPU 架構(gòu)可以使用 Native Libs Monitor给郊。