Android基础教程:利用NDK编写HelloWorld

利用NDK编写helloworld

一、创建工程

Android基础教程:利用NDK编写HelloWorld

工程的创建参数如上图所示,具体每个参数的含义在第二章《利用SDK编写helloworld》中有介绍,这里多了个参数,就是设置了SDK Version其实这个参数是不用设置的,因为我们选择的sdk包Android2.2实际上就已经表明了我们使用的sdk version是8了。

得到的工程文件如下图所示。

Android基础教程:利用NDK编写HelloWorld

二、使用NDK创建一个库

其实NDK的编写时可以在window环境进行的,而不需要必须进Cygwin中使用vi编写。

这里我们在window下进入NDK目录的apps中。

我们看到这里有几个NDK的demo程序,这里我们为自己需要编写的NDK程序创建一个目录,这里我使用的是hm。

进入hm目录,我们创建一个Application.mk文件。

并加入如下内容

APP_PROJECT_PATH := $(call my-dir)

APP_MODULES      := my_jni

这里最好使用EDET PLUS ,UE等专门的编辑工具,而不要是用windows自带的记事本。

其中APP_PROJECT_PATH表示我们android工程的目录,这里写的是$(call my-dir)也就表示当前目录,不过可以根据自己的需求更改,由于我的工程是创建在E盘的,所以其实应该将该目录指向E盘,不过为了保证我们第一个程序较为简单,所以就直接使用当前路径了。

APP_MODULES表示我们要编译的库的名称。这里使用的是my_jni.

这里之后就是我们项目相关的内容了,在工程路径,也就是刚才APP_PROJECT_PATH中所设置的路径中,创建一个jni的文件夹(这个名称是固定的,不可更改)。

进入该文件夹后我们创建两个文件。

Android.mk, my_jni.c。

这里Android.mk的主要作用是配置makefile的编译选项,比如要加载的库啊,我们源码的文件啊之类的,这里我们的Android.mk的内容如下所示

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := my_jni

LOCAL_SRC_FILES := my_jni.c

include $(BUILD_SHARED_LIBRARY)

其中LOCAL_MODULE表示我们模块的名称,LOCAL_SRC_FILES表示我们的源文件。

由于这部分涉及到一些makefile的内容,非linux程序员可能有些陌生,不过今后的内容应该会更详细的说明的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwsxpp.html