Android-Ndk与交叉编译? 这两个工作,那么Android NDK的需求是什么?

我可以交叉编译任何C / C ++应用程序,静态链接它的Linux库,并在android上运行它。然后,Android-ndk的需求是什么?Android-ndk限制我们仿生,其中有一小部分gnu libc.Isn直接交叉编译应用程序并通过Android shell运行它更好吗?交叉编译是否有任何限制,我看不到? 这个URL: Linux应用程序可以在Android中运行吗? 在一定程度上回答了我的问题,但最终让我感到困惑和不清楚。

我认为这对于Android-NDK来说已经足够了

Android NDK是Android SDK的配套工具,可让您使用本机代码构建应用程序中性能至关重要的部分。 它提供的头文件和库允许您在使用C或C ++进行编程时构建活动,处理用户输入,使用硬件传感器,访问应用程序资源等等。 如果您编写本机代码,则您的应用程序仍然打包为.apk文件,并且仍然在设备上的虚拟机内部运行。 基本的Android应用程序模型不会改变。

NDK提供:

  • 一组用于从C和C ++源生成本地代码库的工具和构建文件

  • 一种将相应的本机库嵌入到可在Android设备上部署的应用程序包文件(.apk)的方法

  • 从Android 1.5开始,将在Android平台的所有未来版本中支持一组本机系统标头和库。 使用本地活动的应用程序必须在Android 2.3或更高版本上运行。

这个东西你用arm工具链找不到其他交叉编译..

如链接http://developer.android.com/sdk/ndk/index.html中所述,NDK是应用程序开发人员的助手,可以创建性能敏感的本机代码。 NDK公开了一些在普通Linux环境中找不到的Android的本地实现。 其中一些包括Android /位图,Android / nativeWindow等。使用这些Android本地应用程序可以加速CPU密集型进程,如某些图像的压缩或解压缩。

即使外部交叉编译的可执行文件可能在Android中运行,但不能保证标准库实现的版本相同。 NDK提供了一个更容易和Android兼容的工具链和其他资源,对于应用程序开发人员来说,使用它更容易,而不必为他们的用例找到兼容的交叉编译器。