最新國(guó)際新聞?lì)^條今日國(guó)際大事件seo計(jì)費(fèi)系統(tǒng)登錄
一、前提
這次主要了解Android的cpu架構(gòu)類型,以及在使用CMake工具的時(shí)候,如何指定生成哪種類型的庫(kù)文件。
如上圖所示,是我們之前使用CMake工具默認(rèn)生成的四種cpu架構(gòu)的動(dòng)態(tài)庫(kù)文件:arm64-v8a、armeabi-v7a、x86、x86_64,分別對(duì)應(yīng)對(duì)四種不同cpu類型的支持。
?如上圖所示,不同手機(jī)使用了不同的cpu,不同的cpu支持不同的指令集,每種指令集有對(duì)應(yīng)的二進(jìn)制接口abi(arm64-v8a、armeabi-v7a、x86、x86_64就是四種abi類型 ),就是二進(jìn)制庫(kù)文件。其中手機(jī)常用的是arm64-v8a、armeabi-v7a,平板和虛擬機(jī)上更多的是x86、x86_64。
1、常用cpu的abi兼容性:
?如果我們手機(jī)的CPU架構(gòu)是armv7,項(xiàng)目中可以只配置armeabi-v7a,可以兼容armv7、armv8、x86三種cpu的手機(jī)。這樣可以節(jié)約安裝包的大小,這就是兼容性的好處。
2、使用adb命令查看手機(jī)的CPU機(jī)構(gòu)
adb shell
cat /proc/cpuinfo
?二、如何配置生成指定CPU的庫(kù)文件
在gradle中配置的兩種方式:
1、在android閉包下的defaultConfig閉包下加上ndk閉包,如下所示:這種可用于cmake和ndk-build
?2、在gradle的cmake配置中配置:這種只適用于cmake工具
?這兩種方式編譯之后,生成對(duì)應(yīng)的目錄下的文件(支持多種用逗號(hào)增加:abiFilters "arm64-v8a","x86")
?