levmar是一個強大的和高效率的C/C++庫,採用Levenberg - 馬奎德(LM)優化演算法, 主要是為瞭解決非線性最小二乘問題。官網是:http://users.ics.forth.gr/~lourakis/levmar/ 在PC引用,網上有挺多的資料可以查詢到,但我想應用到Android上 ...
levmar是一個強大的和高效率的C/C++庫,採用Levenberg - 馬奎德(LM)優化演算法, 主要是為瞭解決非線性最小二乘問題。官網是:http://users.ics.forth.gr/~lourakis/levmar/ 在PC引用,網上有挺多的資料可以查詢到,但我想應用到Android上來,google了一下,找不到太多資料,只有一個國外幾年前的項目:https://github.com/3deggi/levmar-ndk 因為項目太久遠,還是採用 eclipse IDE來開發的,我嘗試搬到 Android Studio 來編譯,還是編譯不成功,最後只有重新配置eclipse 環境。最重要是,還得使用比較舊版本的NDK來編譯,我選用的NDK版本是 12b。過程中有些小錯誤,我就稍微調整了一下,然後按eclipse NDK的步驟編譯了一遍。 項目中 的 application.mk 里有一項配置: APP_ABI := armeab 這個是CPU 的指令集配置。一般我們在編譯的時候,都會相容多種CPU,於是改為: APP_ABI := all 編譯中,沒有什麼大問題,有部分警告而已,編譯成功。 編譯成功後,在libs目錄下出現了 arm64-v8a、armeabi、armeabi-v7a、mips、mips64、x86、x86_64 指令集目錄。於是,我就用真機測試一下,有部分手機通過了,有部分手機運行出錯。 各種調試之後,我發現可能是不同手機的CPU 支持的指令集不一樣,於是我通過以下代碼輸出每台手機的指令集:
String[] abis = new String[]{}; abis = Build.SUPPORTED_ABIS;得到結果如下: 魅族 note2:

