NDK环境配置包括最新版及简单实用.docx

上传人:b****7 文档编号:10598474 上传时间:2023-02-21 格式:DOCX 页数:12 大小:334.27KB
下载 相关 举报
NDK环境配置包括最新版及简单实用.docx_第1页
第1页 / 共12页
NDK环境配置包括最新版及简单实用.docx_第2页
第2页 / 共12页
NDK环境配置包括最新版及简单实用.docx_第3页
第3页 / 共12页
NDK环境配置包括最新版及简单实用.docx_第4页
第4页 / 共12页
NDK环境配置包括最新版及简单实用.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

NDK环境配置包括最新版及简单实用.docx

《NDK环境配置包括最新版及简单实用.docx》由会员分享,可在线阅读,更多相关《NDK环境配置包括最新版及简单实用.docx(12页珍藏版)》请在冰豆网上搜索。

NDK环境配置包括最新版及简单实用.docx

NDK环境配置包括最新版及简单实用

一、NDK-R7之前的版本的环境配置。

一些下载,可按需要选择:

NDKr7:

Cygwin:

(1.7.11-1)

notepad++:

http:

//notepad-plus-plus.org/download/v5.9.8.html

1、cygwin安装

①运行下载的setup.exe,点Next

②选择安装方式。

选择在线安装,如果有现成离线包时,可选择离线安装

③选择安装目录(Cygwin最终的安装目录)

④设置本地包暂存路径(下载文件存放目录)

⑤设置网络连接方式:

默认直接连接

⑥选择下载站点。

这个速度比较快

⑦选择安装项。

在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install),其它均为默认状态。

注:

binutils、gcc、gcc-mingw、gdb、make等必装。

⑧漫长等待,直到下载完成

  注:

下载完后的包可以备份下,以便以后可以直接离线安装,速度快哦!

⑨为系统添加环境变量(系统属性->环境变量->Path),如我的为C:

/cygwin/bin。

2、cygwin环境验证

①运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件

②检测

cygwin的版本:

cygcheck-ccygwin

gcc的版本:

gcc-v

g++的版本:

g++-v

make的版本:

make-v

我这里g++没有装好,不过暂时不影响使用。

3、配置NDK路径

①将下载的NDK解压缩到某个目录

②在cygwin的home\<你的用户名>\.bash_profile文件中最后添加:

(可用notepad++或者UltraEdit打开)

  NDK=/cygdrive/<你的盘符>/exportNDK,

  如我的为NDK=/cygdrive/E/Android/android-ndk-r7bexportNDK

  注:

"NDK"这个名字随便起,以后经常用别太长

②验证

重启cygwin,输入:

cd$NDK

可进入ndk对应目录说明设置OK。

生成项目中native方法,编译成so文件。

在eclipse中新建一个android项目,例如testNdk,最低适应版本选1.5以上,以为NDK支持的最低版本就是1.5,我这里选的2.1。

在项目中新建Jni类,示例代码如下:

publicclassJni{

publicnativeintshowRusult(inta,intb);

}

TestNdkActivity类示例代码如下:

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Jnijni=newJni();

intaa=jni.showRusult(4,87);

Log.v("test","aa:

"+aa);

setTitle(jni.showRusult(5,8)+"");

}

将项目编译一下,让系统生成类的class文件,一会要用到。

4、生成.h文件

打开Cygwin,进入项目的bin目录下,

如果之前已经编译过了,那系统应该已经在项目bin目录中生成了classes文件夹,进入这个文件夹。

输入命令javah-classpath.-jni本地类名(包括包名),我的如下

然后可以看到在classes文件夹中已经生成了.h文件。

5、编写C/C++代码

先来看一下生成的king_testNdk_Jni.h

Java_king_testNdk_Jni_showRusult就是我们要在C/C++中实现的方法。

新建一个文件,命名与.h文件保持一致,扩展名为.c。

在这里可以看出,C/C++文件中类的命名方式为Java_包名_类名_方法名

6、生成.so文件

进入NDK安装目录下的sources文件夹,新建一个文件夹testNdk,在其中创建jni文件夹,将生成的.h文件和.c文件copy到里面,然后在里面新建一个文件Android.mk,文件内容如下

在Cygwin中进入刚生成的jni文件夹

输入命令$NDK/ndk-build,出现如下结果,说明编译成功。

现在可以看到,在sources/testNdk文件夹下,生成了libs、obj两个文件夹,将libs文件夹整个复制到android项目中即可。

二、使用NDK-R7版NDK搭建Android开发环境

当然,首先需要搭建好android环境,包括SDK、ADT、eclipse等,具体方法我就不讲了,网上有很多。

然后下载好NDK(必须是R7或者以上版本,我现在的最新版是R7b),直接解压即可。

从R7开始,Windows版本的NDK提供了一个ndk-build.cmd脚本,可以直接利用这个脚本编译。

想要做到这一点,只要为EclipseAndroid工程添加一个Builder,就能实现Eclipse的自动编译NDK。

1、启动Eclipse,新建Android工程(此处名为TestNDK)

2、在项目中新建Jni类,示例代码如下:

publicclassJni{

publicnativeintshowRusult(inta,intb);

}

TestNdkActivity类示例代码如下:

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Jnijni=newJni();

intaa=jni.showRusult(4,87);

Log.v("test","aa:

"+aa);

setTitle(jni.showRusult(5,8)+"");

}

将项目编译一下,让系统生成类的class文件,一会要用到。

3、生成.h文件

启动cmd,进入项目的bin/classes目录下,输入javah包名+类名。

(我这里是javahking.testNdk.Jni)

4、编写C/C++代码

先来看一下生成的king_testNdk_Jni.h

Java_king_testNdk_Jni_showRusult就是我们要在C/C++中实现的方法。

新建一个文件,命名与.h文件保持一致,扩展名为.c。

在这里可以看出,C/C++文件中类的命名方式为Java_包名_类名_方法名

5、生成.so文件

5.1、新建一个文件Android.mk,文件内容如下

这是用来向系统说明你的需求的文件,里面内容的关键字含义请自行查看docs\OVERVIEW.TXT文件。

5.2、在TestNDK工程的根目录下新建文件夹jni,将Android.mk和king_testNdk_Jni.c这两个文件,将其拷贝到TestNDK->jni文件夹下面。

5.3、新建并配置一个Builder

5.3.1、点击Project->Properties->Builders->New,新建立一个Builder。

在弹出的对话框上面点击Program,OK!

5.3.2、在弹出的对话框【EditConfiguration】中,配置选项卡【Main】:

Location中需要填入nkd-build.cmd的路径(NDK安装目录下)。

WorkingDiretcoty中需要填入TestNDK的工程根目录。

5.3.3、在弹出的对话框【EditConfiguration】中,配置选项卡【Refresh】:

勾选“Refreshresourcesuponcompletion”,

勾选“Theentireworkspace”,

勾选“Recuresivelyincludesub-folders”。

5.3.4、在弹出的对话框【EditConfiguration】中,配置选项卡【BuildOptions】:

勾选“Aftera“Clean””,

勾选“Duringmanualbuilds”,

勾选“Duringautobuilds”,

勾选“Specifyworkingsetofrelevantresources”。

点击“SpecifyResources…”勾选TestNDK工程的“jni“目录,Finish!

保存设置,OK!

5.3.5、点击project->clean,勾选“testNdk”,点击OK。

当在console里面看到如图六所示的信息,则表示一切正常,此时就已经是自动编译代码了。

现在应该能看到,项目目录里已经多了两个文件夹obj和libs。

现在理论上obj和jni两个文件夹可以删除了,我们需要的就是libs这个文件夹。

运行项目即可看到效果。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1