android - Android NDK x86 和 x86_64 ABI
问题描述
我最近在 Android Studio 中创建了一个简单的“Hello World”Android NDK 项目,并尝试使用 gradle/cmake/clang 构建系统。
我创建了一个包含 main 方法的 main.c 文件:
#include <stdio.h>
int main()
{
printf("Hello, world");
return 0;
}
我的 cmakelist.txt 文件将使用 Android NDK 工具链编译此文件以生成我命名为 ndk_example_c 的可执行文件:
add_executable( # Sets the name of the library.
ndk_example_c
# Provides a relative path to your source file(s).
main.c
)
gradle/cmake 为 4 个默认 ABI 生成 4 个二进制文件:
- armeabi-v7a
- arm64-v8a
- x86
- x86_64
我设法使用 adb shell 在 Android 设备上运行 arm abi 可执行文件。但是,我希望能够在 Windows 或 Linux 上运行 x86 和 x86_64 可执行文件,但二进制文件似乎不是标准的可执行文件。
所以,我的问题是:gradle 生成的 x86 和 x86_64 二进制文件的目标平台/操作系统是什么?有没有人设法运行它们?
谢谢,
解决方案
x86 或 …64 最有用的目标平台是 Android 模拟器,您无需离开 Android Studio 即可通过 AVD 运行它。还有其他模拟器可以提供更好的性能或附加功能。
这些 Android APK 的另一个平台是 ChromeBook。有一个独立的努力将 Android 带到任何 PC 上。请注意,您可能需要对应用进行一些调整才能在大屏幕上看起来不错。
最后,还有一些具有 Atom CPU 的 Android 设备。如今,像华硕 ZenFone 2 这样的手机并不常见,但您可以找到一些使用 x86 的机顶盒。
推荐阅读
- apache-kafka - 公开一个公共的 kafka 集群
- firebase - Flutter FirebaseFirestore(流生成器)中的多个条件
- wpf - WPF StackPanel - 如何将项目推离底部
- unity3d - applying velocity to rigidbody makes it float instead of dashing
- python - Tkinter ScrolledText widget not appearing
- ios - How to Synch Core Data Between multiple ViewControllers in Swift
- sql - Japanese Characters are not recognized when using Invoke-SqlCmd -Query
- pyspark - 我可以将流“分支”成许多流并在 pyspark 中并行写入它们吗?
- python - Python code retrieve empty list when analyzing terms of frequencies using twitter APIs
- reactjs - Using keyof in Typescript to get rid of 'element implicitly has any type' error