2012-04-02 64 views
2

看到我已審閱http://marakana.com/forums/android/examples/49.html一些C代碼和跨平臺的問題

現在使用某種C代碼通過JNI當過我編譯這個包讓Java應用程序,並得到了apk文件Android應用應用。

但現在我的問題是,如果在這裏如果交叉編譯arm平臺的c代碼,那麼這個.apk只能在arm平臺上工作嗎?它不會在其他平臺的Android機器上工作?

現在,如果我需要使這個.apk作爲平臺獨立,那麼我該如何做到這一點?

回答

2

根據http://source-android.frandroid.com/ndk/docs/APPLICATION-MK.html,你應該把APP_ABI := all放在你的Application.mk中,並且它會爲每個支持android的平臺單獨編譯你的代碼。

(僅適用於某些平臺上,你可以寫類似APP_ABI := armeabi x86

+0

你在最終的apk意味着將有多個。所以還是二進制文件使用的C代碼。如果我在ARM機器上安裝.apk,那麼ARM的二進制文件or.so將被使用,如果我在MIPS中安裝.apk,那麼MIPS的二進制文件,或者將被使用...? – 2012-04-02 11:40:02

+2

是的。那我怎麼理解這個頁面。 – asaelr 2012-04-02 11:57:51

+2

請注意,官方的NDK http://developer.android.com/sdk/ndk/overview.html支持ARM和x86: ARMv5TE(包括Thumb-1指令) ARMv7-A(包括Thumb-2和VFPv3- D16指令,可選支持NEON/VFPv3-D32指令) x86指令(請參閱CPU-ARCH-ABIS.HTML獲取更多信息) 要添加MIPS支持,您應該訪問http://developer.mips.com /安卓/下載,Android的NDK /。 – 2012-04-02 12:07:04