在Eclipse中安装和使用Android NDK

ing*_*.am 45 installation android android-ndk

我一直在Eclipse(MAC OSX)中运行Android SDK一段时间.我已经下载了NDK并在Eclipse中安装了C/C++工具,但有人可以指导我使用NDK吗?例如,我是否只是像普通的那样创建一个Android项目并用NDK构建它?

如果有人知道的话,真的可以用一个体面的教程.

编辑:好的,所以我现在安装了NDK(我认为)但有没有人知道如何使用它?我得到了这个(取自这里):

运行终端

cd~/android-ndk-1.5_r1

制作APP = hello-jni

为了运行hello-jni示例应用程序,但我在终端中收到错误说:

Android NDK:为未知应用程序定义的APP变量:hellojni
Android NDK:您可能希望使用以下之一:
build/core/main.mk:81:***Android NDK:正在中止.停止.

有什么想法吗?

Rob*_* S. 25

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

首先,在终端内部,您需要在项目上运行NDK构建脚本.cd到项目目录的根目录,然后在该目录中执行ndk-build脚本.

例如:

cd ~/workspace/hello-jni
./~/android-ndk-1.5_r1/ndk-build
Run Code Online (Sandbox Code Playgroud)

执行此操作后,您应该看到一些输出导致在项目目录中的obj目录中创建*.SO文件.

获得*.SO文件之后,通过Eclipse构建Android NDK应用程序的最后一步是使用Eclipse构建它,就像使用任何其他应用程序一样,然后将其部署用于测试.

如果对C/C++代码进行任何更改,则需要重新执行第一步并重新生成*.SO文件,然后再从Eclipse中构建和部署应用程序.

我想指出,通过使用Android NDK,您的Android应用程序仍然基于Java.它们只是通过Java Native Interface与用C/C++编写的代码进行通信.

最后,我不知道任何有助于NDK开发的Eclipse插件.我所知道的关于NDK的一切我都学到了官方的Android NDK文档.请随时发表评论并告诉我是否有任何我可以在回复中澄清的内容.

  • 嘿,谢谢,几年前我写了这个问题,从来没有真正研究过,所以我会在几天左右的时候给这个问题.谢谢+1 (2认同)

Ham*_*hei 12

从ADT版本20开始,本机开发和调试支持进入Eclipse环境.http://tools.android.com/recent/usingthendkplugin

  • 从Eclipse Preferences - > Android - > NDK设置NDK的路径
  • 右键单击您的项目,然后选择Android Tools - > Add Native Support

developer.android.com声明你还需要Cygwin.

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

必需的开发工具

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


slo*_*621 5

NDK中的docs目录有一些关于如何使用NDK本身的非常好的信息.阅读概述,Application.mk和Android.mk HTML文档.您需要谷歌搜索Sun JNI PDF,下载它,并在进一步学习之前了解JNI的全部内容.这是因为使用NDK简单地将一堆C/C++代码编译到库中只是该过程的一部分.您必须编写调用C/C++的本机Java代码,并且必须在C/C++中创建符合本机Java代码可以调用的JNI约定的包装函数.JNI已经存在了很长时间,它无论如何都不是Android特有的.因此,您可以,了解它,使用命令行工具(如javah和javac),在遵循JNI的教程之后,然后在了解基础知识后返回与NDK集成.(有关这些C垫片的示例,请查看NDK中的hello-jni示例; C源文件通常会显示垫片的外观.使用javah生成这些垫片是一种方法,您创建具有本机方法的Java类,使用javah处理它们,并为您生成C头,然后编写符合生成的函数原型的C函数).

注意:虽然NDK文档可以让你从命令行手动构建然后进入Eclipse来构建你的应用程序(一系列费力的步骤,当然,特别是如果你要更改C/C++代码),它会证明你可以与Eclipse轻松集成,以便每次从Eclipse构建时都运行NDK.看看怎么样,请在这里阅读.