Eclipse中NDK開發(fā)使用Application.mk指定需要編譯的平臺

ABI(Application Binary Interface)實際就是指應用程序基于哪種指令集來進行編譯,我們能用到的ABI 也就四種 armeabi armeabi-v7a x86 和mips ,前兩者是最常見的。

其次這4個編譯選項的含義:
1.‘armeabi’ – 默認選項,將創(chuàng)建以基于 ARM* v5TE 的設備為目標的庫。 具有這種目標的浮點運算使用軟件浮點運算。 使用此 ABI 創(chuàng)建的二進制代碼將可以在所有 ARM* 設備上運行。
2.‘armeabi-v7a’ – 創(chuàng)建支持基于 ARM* v7 的設備的庫,并將使用硬件 FPU 指令。
3.‘x86’ – 生成的二進制代碼可支持包含基于硬件的浮點運算的 IA-32 指令集.
4.mips — 支持應用二進制接口

總結:
APP_ABI 賦值,就是為了交叉編譯生成相應芯片可執(zhí)行的指令集。

在jni目錄新建Application.mk 寫入: APP_ABI := armeabi armeabi-v7a mips x86 那么在你的android工程下邊的 libs 里邊會出現 armeabi armeabi-v7a mips x86 這四個目錄下會分別生成 4個.so文件。

程序在Android手機運行時,根據手機自身CPU芯片不同,去選擇調用相應的.so文件。需要注意的是選擇的平臺越多,so庫也越多,打包的apk體積也越大。

NdkDemo代碼已上傳至Github

如有不正支出,歡迎留言交流!
我的GitHub
我的CSDN
我的簡書
開發(fā)筆記

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容