zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

android studio JNI使用详解手机开发

AndroidStudio手机开发 使用 详解 JNI
2023-06-13 09:20:14 时间

Step: 1. 添加native接口注意写好native接口和System.loadLibrary()即可了,并无特别之处。

Step: 2.执行Build- Make Project
生成了.class文件..class文件的生成路径是在 app_path/build/intermediates/classes/debug下的. 这个在android studio里面看不到, 到文件管理器里面翻到的, 里面还有好多东西。

Step: 3.javah生成c头文件
点击 View- Tool Windows- Terminal ,即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。

这 里需要注意的是要进入 Project /app/src/main的目录下执行javah命令,为的是生成的 .h 文件同样是在 Project /app/src/main路径下(jni下面),可以在Studio的工程结构中直接看到。

操作命令:

javah -d jni -classpath SDK_android.jar APP_classes class
 

javah -d jni -classpath c:/Users/Ximei/AppData/Local/Android/sdk1/platforms/android-21/android.jar;../../build/intermediates/classes/debug com.example.jnitest
好长一串,  好家伙,  这通敲.

然后就看到 project /app/src/main/jni/com_example_jnitest.h出现了. 

Step: 4.编辑c文件

在 project /app/src/main/jni/jnitest.c文件中实现头文件中的函数。
 

Step: 5.配置NDK

这一步包括两个动作:
 

1.指明ndk路径
在local.properties中添加ndk目录, ndk目录中不可包含空格.
ndk.dir=C/://android-ndk-r10d

2. 修改build.gradle配置

工程中共有两个build.gradle配置文件,我们要修改的是在 Project /app/build.gradle这个文件。为其在defaultConfig分支中增加上
  ndk {
  moduleName jnitest

  }

3.  添加Application.mk  和 Android.mk文件

Application.mk
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES  := nativebt
 
Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE  := jnitest
LOCAL_SRC_FILES :=  jnitest.c

LOCAL_DEFAULT_CPP_EXTENSION := cpp

#include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)

然后进行编译,  会出现no rule to make target .错误,  按照网上的经验,  生成一个空的empty.c文件,  错误通过. (啧, 2014年3月的bug,  居然还没有fix版)
终于编译成功, 编译出来的库文件在如下路径: 
project /app/build/intermediates/ndk/debug/lib/  共7个目录, 7种架构吧。

至此, 开发环境建立成功。