在Application.mk文件中有個預約義命令參數APP_ABI,是指明編譯與調試的CPU架構。shell
目前Android系統支持如下七種不一樣的CPU架構:ARMv5,ARMv7(從2010年起),x86(從2011年),MIPS(從2012年),ARMv8,MIPS64和x86_64(從2014年),每一種都對應相應的ABI。架構
CPU架構 | ABI | |
ARMv5 | armeabi | 32位,從2010年 |
ARMv7 | armeabi-v7a | 32位,從2010年 |
x86 | x86 | 32位,從2011年 |
MIPS | mips | 32位,從2012年 |
ARMv8 | arm64-v8a | 64位,從2014年 |
MIPS64 | mips64 | 64位,從2014年 |
x86_64 | x86_64 | 64位,從2014年 |
相應生成arm64-v8a,mips64,x86_64下的文件須要NDK_r10以上版本支持。在Application.mk文件裏配置APP_ABI的內容。例如指明某個具體的CPU架構測試
APP_ABI := arm64-v8aui
或者直接生成全部的版本spa
APP_ABI := all調試
注意:根據不一樣的NDK版本,APP_ABI := all僅能生成當前版本支持的ABI信息庫文件,若是須要生成最新的必須更新相應的NDK版本。ip
或者明確寫明支持的CPU架構開發
APP_ABI := armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64v8
建議採用該方法io
注意:因爲目前版本支持的問題,採用Eclipse+NDK+Windows集成方式開發,對應編譯生成對應CPU架構的so文件是沒有問題的。可是不必定能夠執行調試工做,啓動NDK調試模式時將會提示沒法識別對應的ABI。
注意:(1)、目前模擬器只有x86_64的沒有arm64-v8a的;(2)、在用真機測試armv8-a時,最好先經過adb shell, cat /proc/cpuinfo ,來查看下真機是不是支持armv8-a;(3)、arm32和arm64有些配置參數不能共存,如-msoft-float僅在arm32位下支持,在arm64位下是不支持的.