我有两个不同的CPU ABI的Android系统 - armeabi-v7a and x64
。对于这一个我要构建的应用程序代码来得到它working.My应用程序(C语言)反正犯规运行为任一平台。 或者是否有任何常见的工具链,我可以建立相同的。 arm-eabi-gcc?目标EXE为Android ABI(NDK编译)
0
A
回答
5
NDK包含在Android平台上运行程序所需的所有工具链。
要设置您需要编译到,你应该设置APP_ABI
变量中Application.mk或者把它传递给ndk-build
命令的架构。
APP_ABI:=all
会让你的NDK项目正在兴建的所有支持的架构:armeabi,armeabi-V7A,arm64-V8A,,x86_64的,MIPS,MIPS64。
你也可以列出你想建立其体系结构:APP_ABI:= x86_64 x86 armeabi-v7a arm64-v8a
,还可以使用all32
和all64
作为快捷方式的所有32位和所有的64位架构。
要确定哪些平台由目标设备支持,就可以调用adb shell getprop ro.product.cpu.abi
(优选拱)和adb shell getprop ro.product.cpu.abi2
(第二拱)。
与Android 5.0开始,使用adb shell getprop ro.product.cpu.abilist
而是返回所有支持的ABI的列表,按优先顺序排序。
0
我不认为你可以针对完全不同的架构(ARM和x86)与Android NDK提供(交叉编译器)。您可以针对多个ABI的手臂下面的变量
TARGET_ARCH_ABI
可能值支持是:
armeabi For ARMv5TE
armeabi-v7a
了解更多详情,您可以检查此link。
要在x86或AMD64系统运行就可以正常使用GCC创建.so文件,并使用JNI来测试功能(记住Android的F/W将不可用那里)。
如果您正在寻找快速构建测试周期我认为这是更好地为你使用像AndroVM(现Genymotion)的基于x86模拟器。通过这种方式,您可以编写Android设备的代码并快速测试它。
相关问题
- 1. 在android ndk编译fftw3 ndk
- 2. Android NDK不编译
- 3. Android编译库NDK
- 4. 无法编译NDK android项目
- 5. 使用NDK为Android编译OpenALPR
- 6. 为Android NDK编译C库的问题
- 7. 为Android编译C++ 11源代码NDK
- 8. 如何为android NDK编译boost_thread?
- 9. 如何为Android NDK 11编译Boost 1.61
- 10. 编译NDK库
- 11. 的Android NDK编译GMP库
- 12. 在Android NDK中编译OpenCV
- 13. 使用Android NDK编译libpcap
- 14. 用Android NDK编译PugiXML
- 15. Android-NDK编译和链接
- 16. 的Android NDK编译错误
- 17. Python编译为.exe
- 18. 将IronPython WPF项目编译为exe
- 19. 将avahi编译为Android NDK项目的问题
- 20. 交叉编译为Android使用NDK失败,编译器错误
- 21. NDK错误编译
- 22. NDK编译错误:
- 23. ndk-build编译错误Cygwin
- 24. android-ndk gnustl_static exe不工作
- 25. 目标C的Android NDK
- 26. VS2017将NetCoreApp编译为EXE
- 27. 将Crystal Reports编译为exe
- 28. 将Python编译为exe
- 29. 将PyPy编译为Exe
- 30. 将HTML5编译为.exe/.dmg
因此把APP_ABI:= <>中的adb shell getprop ro.product.cpu.abi的输出应该可以正常工作吗?即使是第二个拱也行吗? – Raulp 2015-04-06 06:27:04
是的,确切地说,将第一个拱形框架更好:例如,在许多x86设备上,第二个拱形框架是armeabi-v7a,但armeabi-v7a二进制文件实际上是通过仿真层执行的。 – ph0b 2015-04-06 18:35:02