在Eclipse中安装和使用Android NDK

我已经在Eclipse(MAC OSX)中运行了一段时间的Android SDK。 我已经下载了NDK,并在Eclipse中安装了C / C ++工具,但任何人都可以指导我使用NDK? 例如,我是否像正常一样创build一个Android项目,然后用NDK来构build它?

真的可以做一个体面的教程,如果有人知道任何。

编辑:好,所以我现在安装NDK(我认为),但没有任何人有任何想法如何使用它? 我得到了这个(从这里拿走):

运行terminal

cd〜/ android-ndk-1.5_r1

使APP = hello-jni

为了运行hello-jni示例应用程序,但是在terminal中出现错误:

Android NDK:定义为未知应用程序的APPvariables:hellojni
Android NDK:您可能想要使用以下任一项:
build / core / main.mk:81:*** Android NDK:正在中止。 停止。

任何想法为什么?

就像我可以描述的一样,在使用NDK的Eclipse中构build一个Android应用程序需要两个步骤。

首先,在你的terminal里,你需要在你的项目上运行NDK构build脚本。 cd到你的项目目录的根目录,然后在该目录下执行ndk-build脚本。

例如:

cd ~/workspace/hello-jni ./~/android-ndk-1.5_r1/ndk-build 

这样做后,你应该看到一些输出结果在你的项目目录obj目录中创build一个* .SO文件。

一旦拥有* .SO文件,通过Eclipse构buildAndroid NDK应用程序的最后一步就是像使用其他应用程序一样使用Eclipse构build它,然后部署它进行testing。

如果您对C / C ++代码进行了任何更改,则需要重新执行第一步并在从Eclipse内部构build和部署应用程序之前重新生成* .SO文件。

我想要注意的是,通过使用Android NDK,您的Android应用程序仍然基于Java。 它们只是通过Java本地接口与使用C / C ++编写的代码进行通信。

最后,我不知道任何有助于NDK开发的Eclipse插件。 我所了解的关于NDK的一切我已经学习了官方的Android NDK文档 。 请随时发表评论,并让我知道,如果有什么我可以在我的回应中澄清。

本地开发和debugging支持从ADT版本20进入Eclipse环境。http: //tools.android.com/recent/usingthendkplugin

  • 从Eclipse首选项 – > Android – > NDK设置NDK的path
  • 右键单击您的项目,然后select“Android工具” – >“添加本机支持”

developer.android.com声明你也需要Cygwin。

http://developer.android.com/tools/sdk/ndk/index.html#Contents

所需的开发工具

  • 对于所有的开发平台,需要GNU Make 3.81或更高版本。 GNU Make的早期版本可能会工作,但尚未经过testing。
  • 最新版本的awk(GNU Awk或Nawk)也是必需的。
  • 对于Windows,需要Cygwin 1.7或更高版本。 NDK不能用于Cygwin 1.5安装。

NDK中的docs目录有关于如何使用NDK本身的一些相当不错的信息。 阅读概述,Application.mk和Android.mk HTML文档。 你需要谷歌的Sun JNI PDF,下载它,并在进一步了解之前了解JNI是什么。 这是因为仅仅使用NDK将一堆C / C ++代码编译到库中只是这个过程的一部分。 您必须编写调用您的C / C ++的本地Java代码,并且必须在C / C ++中创build遵循本地Java代码可以调用的JNI约定的包装函数。 JNI已经有很长的一段时间了,不pipe用什么手段都不是Android的。 所以,为了了解它,可以使用像javah和javac这样的命令行工具,继续学习面向JNI的教程,然后在知道了基本知识后返回到与NDK集成。 (有关这些C垫片的示例,请查看NDK中的hello-jni示例;其中的C源代码文件通常会显示垫片的样子,使用javah生成垫片是一种方法创build具有本地方法的Java类,使用javah处理它们,并为您生成C头文件,然后编写符合生成的函数原型的C函数)。

注意:尽pipeNDK文档会让你从命令行手动构build,然后进入Eclipse来构build你的应用程序(当然,特别是如果你正在改变C / C ++代码,这是一个很费时的步骤),结果是可以轻松地与Eclipse集成,以便每次从Eclipse构build时运行NDK。 看看怎么样, 在这里阅读 。

这是为了其他人想要在eclipse中从零开始创build项目的好处:我遵循这里在这里的博客中提到的步骤,它工作正常: http : //mhandroid.wordpress.com/2011/01/23/using-蚀换机器人-CC-发展/

为了直接回答这个问题,你需要在你的项目文件夹中使用本地代码在文件夹中运行ndk-build。 这会在Eclipse中创build在jni下的文件资源pipe理器/资源树中find的.so文件。 这些函数,如果代码中的语法是正确的,现在可以从你的java代码中调用。

在安装Android开发者工具和NDK时,我发现了很多帮助资源。 我写了一篇博文来分享我的经验,希望能回馈给那些帮助我理解我的答案的社区: http : //workingmatt.blogspot.co.uk/2013/03/set-up-android- SDK-和ndk.html