java armeabi_armeabi和armeabi-v7a 解释
ABI=Application Binary Interface
在我們android APK的根目錄有一個 libs文件夾,此文件夾下包含了armeabi 和armeabi-v7a兩個文件夾,我們的c代碼編譯成的本地庫(各種.so)就會放在這兩個文件夾其中的一個。那armeabi-v7a 與 armeabi有什么區別,都是什么意思呢?
armeabi和armeabi-v7a是表示cpu的類型,我們知道一般的手機或平板都是用arm的cpu(mips的就悲催的被忽視了),不同的cpu的特性不一樣,armeabi就是針對普通的或舊的arm v5 cpu,armeabi-v7a是針對有浮點運算或高級擴展功能的arm v7 cpu。 在android.mk里可配置以下宏:
TARGET_CPU_API := armeabi
APP_ABI := armeabi
當你編譯時出現一些鏈接動態庫的undefine錯誤,或你的apk運行時出現裝載.so動態庫錯誤時,不妨看一下這個cpu類型的配置是否有誤。
現在還有x86的了,其實armeabi 、armeabi-v7a 和x86是編譯 NDK 庫時,可以使用三種支持的應用二進制接口(ABI):
‘armeabi’ – 默認選項,將創建以基于 ARM* v5TE 的設備為目標的庫。 具有這種目標的浮點運算使用軟件浮點運算。 使用此 ABI 創建的二進制代碼將可以在所有 ARM* 設備上運行。
‘armeabi-v7a’ – 創建支持基于 ARM* v7 的設備的庫,并將使用硬件 FPU 指令。
‘x86’ – 生成的二進制代碼可支持包含基于硬件的浮點運算的 IA-32 指令集。
總結
以上是生活随笔為你收集整理的java armeabi_armeabi和armeabi-v7a 解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 把Spring boot jar作为Wi
- 下一篇: Android学习笔记(十三)