Adroid studio3.2 JNI教程
16lz
2021-01-25
此贴记录一下自己Android Studio3.2 进行jni开发的基础配置以及入门教程
1.下载NDK
2.配置
(1)打开gradle.properties,添加:android.useDeprecatedNdk=true
(2)打开local.properties,添加:ndk.dir=D:\Android\SDK\ndk-bundle
(3)app里面的build.grald文件夹中添加
android { compileSdkVersion 28 defaultConfig { applicationId "com.example.administrator.testjni" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" ndk { moduleName "JNISample"//moduleName 表示编译出的so文件的名字 } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}
3.新建java访问c层的接口类,并写一个native方法
public class JniUtils { //创建一个Jni的工具类,并定义接口函数,函数关键字用native(static用不用均可) //getJniString()方法即要与C层的交互的函数 public static native String getJniString(); static { //名字注意,需要跟你的build.gradle ndk节点下面的名字一样 System.loadLibrary("JNISample"); }}
4.生成头文件
首先要安装JDK并配置环境变量,才可执行下图步骤
输入命令 javah com.example.administrator.testjni.JniUtils
5.创建jni开发的文件夹
点击main文件夹,New → Folder → JNI Folder,生成成功后main目录下会出现一个jni的文件夹
找到刚才生成到头文件,复制到jni文件夹下
头文件有了,现在在jni目录下创建一个C++文件用于开发使用,命名与头文件相同
编写C++文件中定义函数的代码
com_example_administrator_testjni_JniUtils.cpp文件
//// Created by Administrator on 2019/4/2.//#include "com_example_administrator_testjni_JniUtils.h"JNIEXPORT jstring JNICALL Java_com_example_administrator_testjni_JniUtils_getJniString(JNIEnv *env,jclass jobj) {//new 一个字符串,返回Hello Worldreturn env -> NewStringUTF("Hello World");}
6.调用函数,运行项目
生成so文件
1.配置ndk-bundle系统变量path,值为D:\Android\SDK\ndk-bundle
2.在jni目录下新建Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := JNISampleLOCAL_LDFLAGS := -Wl,--build-idLOCAL_SRC_FILES := \C:\Users\Administrator\Desktop\code\TestJNI\app\src\main\jni\com_example_administrator_testjni_JniUtils.cpp \LOCAL_C_INCLUDES += C:\Users\Administrator\Desktop\code\TestJNI\app\src\debug\jniLOCAL_C_INCLUDES += C:\Users\Administrator\Desktop\code\TestJNI\app\src\main\jniinclude $(BUILD_SHARED_LIBRARY)
3.在jni目录下新建Application.mk文件
APP_MODULES := JNISampleAPP_ABI := all
4.编译生成so
在jni目录下执行命令 ndk-build
部分详情可参考一下博客
Android Studio jni开发入门
AndroidStudio JNI详细教程
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android(安卓)WebView使用本地字体
- Mac系统下Android(安卓)SDK无法更新解决办法
- Android(安卓)学习笔记 databinding简单使用:使用databinding在li
- not using the 2- or 3-argument View constructors
- android native调用