Android NDK开发入门步骤详解
2014-10-29 10:14
651 查看
1、首先,确保你的Android NDK环境配置无误。
2、新建Android项目-MyNDKTest,在其java文件中至少包含有一个Native方法,比如:
运行命令:javah com.wr.myndktest.MyNDKTestActivity,会在src目录下生成com_wr_myndktest_MyNDKTestActivity.h文件(可拷贝到jni目录下)。如下所示:
第二行表示:清除local变量
第三行表示:生成的库文件的名字
第四行表示:将要编译的文件
6、一切就绪后,运行命令窗到工程目录下(有src.res.jni等目录的文件夹 ),运行ndk-build命令,会出现如下显示:
7、回到Eclipse工程列表中刷新工程:然后run.
运行结果为:3.
8、更加详细的内容,可参考以下博客内容:
Android NDK开发简介
Android NDK开发之Jni的数据类型
Android NDK开发之数组类型的操作
Android NDK开发之Jni调用Java对象
2、新建Android项目-MyNDKTest,在其java文件中至少包含有一个Native方法,比如:
package com.wr.myndktest; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MyNDKTestActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_my_ndktest); TextView tv = new TextView(this); tv.setText(""+ add(1,2)); setContentView(tv); } public native int add(int x,int y); static{ System.loadLibrary("test-jni"); } }3、进入项目的工程目录中(有src.res等目录的文件夹 )中新建文件夹jni,然后运行命令窗口,进入工程目录的src目录(网上有人说是bin或者bin\classes目录,但是我试了不好使,可能环境不同吧,可以尝试下。我现在是Windows系统下试的,在Ubuntu下,这几种命令都不好使,好纠结呢!)下(我的是G:\Android Workplace1\MyNDKTest\src)。
运行命令:javah com.wr.myndktest.MyNDKTestActivity,会在src目录下生成com_wr_myndktest_MyNDKTestActivity.h文件(可拷贝到jni目录下)。如下所示:
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_wr_myndktest_MyNDKTestActivity */ #ifndef _Included_com_wr_myndktest_MyNDKTestActivity #define _Included_com_wr_myndktest_MyNDKTestActivity #ifdef __cplusplus extern "C" { #endif /* * Class: com_wr_myndktest_MyNDKTestActivity * Method: add * Signature: (II)I */ JNIEXPORT jint JNICALL Java_com_wr_myndktest_MyNDKTestActivity_add (JNIEnv *, jobject, jint, jint); #ifdef __cplusplus } #endif #endif4、在jni目录下新建test-jni.c文件,将上面的.h文件中的方法拷贝过来,添加具体参数名和方法逻辑即可:
#include<jni.h> JNIEXPORT jint JNICALL Java_com_wr_myndktest_MyNDKTestActivity_add (JNIEnv * env, jobject thiz, jint x, jint y){ return x + y; }5、在jni目录下新建Android.mk文件,才能将上述文件编译成库文件:
LOCAL_PATH:=$(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE:=test-jni LOCAL_SRC_FILES:=test-jni.c include $(BUILD_SHARED_LIBRARY)第一行表示:源文件路径为当前路径
第二行表示:清除local变量
第三行表示:生成的库文件的名字
第四行表示:将要编译的文件
6、一切就绪后,运行命令窗到工程目录下(有src.res.jni等目录的文件夹 ),运行ndk-build命令,会出现如下显示:
"Compile thumb : test-jni <= test-jni.c SharedLibrary : libtest-jni.so Install : libtest-jni.so => libs/armeabi/libtest-jni.so表示成功。
7、回到Eclipse工程列表中刷新工程:然后run.
运行结果为:3.
8、更加详细的内容,可参考以下博客内容:
Android NDK开发简介
Android NDK开发之Jni的数据类型
Android NDK开发之数组类型的操作
Android NDK开发之Jni调用Java对象
相关文章推荐
- ANDROID NDK 开发入门步骤示范
- CXF入门教程(3) -- webService客户端开发步骤详解
- WCF开发入门的六个步骤
- WCF开发入门的六个步骤
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
- Lex和Yacc从入门到精通(5)-开发Lex和Yacc程序的一般步骤
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
- WCF开发入门的六个步骤
- WCF开发入门的六个步骤
- Google Map开发系列(四)——使用JavaScript创建地图步骤详解
- Cairngorm初学者入门教程 第二节--使用Cairngorm开发程序的步骤
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
- WCF开发入门的六个步骤
- wxPython:入门开发步骤
- (转)Cairngorm初学者入门教程 第二节--使用Cairngorm开发程序的步骤
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】