Android Studio gardle 配置 ndk 指定 ABI: abiFilters 詳解
阿新 • • 發佈:2019-02-03
一、ABI 是什麼
ABI 是 Application Binary Interface 的縮寫。
不同 Android 手機使用不同的 CPU,因此支援不同的指令集。CPU 與指令集的每種組合都有其自己的應用二進位制介面(或 ABI)。 ABI 可以非常精確地定義應用的機器程式碼在執行時如何與系統互動。 您必須為應用要使用的每個 CPU 架構指定 ABI。
典型的 ABI 包含以下資訊:
- 機器程式碼應使用的 CPU 指令集。
- 執行時記憶體儲存和載入的位元組順序。
- 可執行二進位制檔案(例如程式和共享庫)的格式,以及它們支援的內容型別。
- 用於解析內容與系統之間資料的各種約定。這些約定包括對齊限制,以及系統如何使用堆疊和在呼叫函式時註冊。
- 執行時可用於機器程式碼的函式符號列表 - 通常來自非常具體的庫集。
二、如何在 gardle 中配置
預設情況下,cmake 會輸出 4 種 ABI,如下所示:
我們也可以通過 abiFilters 來指定我們需要的 ABI:
三、支援的 ABI 詳解
ABI | 支援的指令集 | 說明 |
---|---|---|
|
無硬浮點。 | |
|
與 ARMv5、v6 裝置不相容。 | |
x86 |
|
不支援 MOVBE 或 SSE4。 |
|
||
mips |
|
使用硬浮點,並且假設 CPU:FPU 時鐘比率為 2:1 以獲取最大相容性。 不提供 micromips 或 MIPS16。 |
其它: