eclipse下进行ndk开发步骤
配置NDK地址:
windows->preferences->Android->NDK,选择NDK目录.
- 开始搭建:
1.首先,创建一个Android项目.一路next下去.这里我是基于4.0创建的.
2.右键点击项目->Android Tools -> Add Native Support.
此时工程目录下会多出一些文件夹:jni,obj.jni文件夹是存放natvie代码的,obj是存放生成的库文件之类的.
3.然后创建GetString类
- public class GetString {
- public static native String getStr();
- public native String getString();
- public native int add(int a, int b);
- }
![]()
4.打开cmd命令行,进入项目的<项目地址>/bin/classes/下.输入javah -jni <包名>.类名或者进入到src目录下src>javah -com.aa.bb 也可以生成对应的头文件
这里使用了javah命令,这个命令是jdk里的,jre里是没有的.
如:<项目目录>\bin\classes>javah -jni com.zzk.hellojni.GetString
该命令的作用是对GetString类生成.h头文件.成功后会在\bin\classes\下生成一个.h文件.
把这个文件复制到工程jni文件下.
此时会报错,提示Type 'JNIEnv' could not be resolved,是因为项目没有include 运行环境.
右键项目->properties->C/C++general->Paths and Symbols
点击Add按钮
勾选Add to all languages.点击File system,选择之前准备好的NDK目录下的\platforms\android-14\arch-arm\usr\include目录.注意NDK路径地址不能有汉字和空格!!!否则会报错.platforms最好选和项目sdk一致的版本.arch开头的三个目录应该是和cpu构架相关的,android绝大数的设备都是arm构架的.
点击OK,点击Apply,会提示是否重构项目,点击确定.此时项目不再报错.
5.创建一个NDK Builder构造器.
右键项目->properties->builders->New.选择Program.然后弹出一个对话框.这里需要配置一下.
Main标签:Location选择NDK的根目录.Working Directory选择工程目录.
Refresh标签:勾选Refresh resources upon completion.看图吧.
Build Options标题:勾选框框内的.然后点击Specify Resources
选择项目里的jni文件夹.
点击finish,此时这里就多了一个NDK_Builder
点击ok,会执行构建操作,此时如果出现下列信息就表示成功了.
6.然后把之前的.h文件里的三个未实现的方法复制到.cpp内,然后实现方法.#include 头文件不要忘掉.
然后点击project->build project.等待构建成功后obj文件夹下会多出一些文件.
libHelloJNI.so 就是最后生成的动态库.
7.最后在MainActivity中调用GetString类的方法.显示到界面上.
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- TextView tv = (TextView) findViewById(R.id.tv);
- String str = GetString.getStr();
- str += "\n" + new GetString().getString();
- str += "\n" + new GetString().add(5, 3);
- tv.setText(str);
- }
- }
运行会报错,提示:
这是因为代码中没有加载动态库.回到GetString类中,添加方法.
现在运行项目,可以看到界面上已经成功显示了三个native方法返回的值.