2012-04-02 68 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