Android NDK入门开发实例

2025-11-22 05:13:05

1、首先新建一个项目,在布局页面添加一个按钮即可,如下图所示,图中有两个控件,一个是textview,另一个是button。

Android NDK入门开发实例

Android NDK入门开发实例

2、新建一个类,并写一个native方法,我写的方法是,public native int add(int a, int b);实现传入的2个整形数字相加,这里的native方法不需要实现

Android NDK入门开发实例

3、打开本次项目的路径,里面有2个类,其中JNITest.java便是有native方法的类,下面需要先把这个java编程成class文件然后再编译成.h头文件。

Android NDK入门开发实例

1、在CMD中依次输入以下代码:

cd C:\Users\Administrator\workspace\JNITest\src(切换到项目的src目录下)

javac com\liutaw\jnitest\JNITest.java(编译有native方法的java类)

javah com.liutaw.jnitest.JNITest(从class生成.h头文件)

Android NDK入门开发实例

Android NDK入门开发实例

2、在项目的根目录新建一个jni文件夹,并把刚才javah生成的 com_liutaw_jnitest_JNITest.h文件复制到jni目录下

Android NDK入门开发实例

3、打开com_liutaw_jnitest_JNITest.h,把定义的方法都改为实现,并把文件名的后缀名改为.c,注意方法的参数要加上,以下是修改前后的对比图。

Android NDK入门开发实例

4、在jni文件夹下新建一个Android.mk文件,输入以下内容,注意更改成你自己的库文件名和原文件名称

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hellojni(库文件名)

LOCAL_SRC_FILES := com_liutaw_jnitest_JNITest.c(原文件名称)

include $(BUILD_SHARED_LIBRARY)

2个文件完成之后应该是下面这张图。

Android NDK入门开发实例

Android NDK入门开发实例

5、之后打开Cygwin(windows没有?请下载,linux等用户自带终端即可,这是模拟Linux运行环境用的),先切换到自己的项目目录,再使用命令ndk-build一下,出现以下字幕,说明生成.so文件(类似于windows的dll动态链接库文件)成功,也就是说,以后java代码可以调用自己写的c方法了。

Android NDK入门开发实例

1、在JNITest类中写一个静态代码块:

static {

     System.loadLibrary("hellojni");

}

hellojni是和刚才写的Android.mk“LOCAL_MODULE    := hellojni”是一致的

Android NDK入门开发实例

2、在按钮的监听事件里写入自己的方法,我这里写的作用是,调用native代码之后把值显示在TextView上面。

Android NDK入门开发实例

3、生成一下项目,我用的是真机调试,我们现在可以看效果了,点击按钮之后数字4便显示在了TextView上面。

Android NDK入门开发实例

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢