本文主要是介绍Android studio 3.4 使用JIN(创建工程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 .创建一个新的工程:
首选要保证集成开发环境已经安装了NDK和Cmake;
2. 右键 src->New->Folder->JNI Folder ,这时就可以在main目录下生产一个JNI文件夹。
3. 创建JNI类 在Mainactivity相同的目录下,创建一个类,在类中加入要实现的native方法;
这个例子是java通过调用Linux库函数实现串口通信。
4. 将上级目录拖到teriminal下如图所示:
terminal就会自动进入到这个包的目录,然后在该目录下执行javac + 刚才创建的类文件,成功以后,会在当前目录下生成一个class文件。
5. 接下来拖动java目录到Terminal,生成的.h文件一定要和包在同一个路径下。
拖动完成之后,执行javah -jni 包名+类名,如下图所示:
得到.h文件以后,把这个文件拖动到JNI目录下。
6. 在该目录下创建三个文件
1. Android.mk
2. Application.mk
3. SerialLib.cpp (这个文件要和加载的库对应起来)
在Android.mk中加入以下脚本
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SerialLib
LOCAL_SRC_FILES =: SerialLib .cpp
include $(BUILD_SHARED_LIBRARY)
以上代码需要注意两点:LOCAL_MODULE和LOCAL_SRC_FILES ,一定要与自己项目对应起来。
在Application.mk 文件中加入下列代码:
APP_MODULES := SerialLib
APP_ABI := all
注意APP_MODULES 要与自己的项目名称对应
接下来就是在SerialLib.cpp实现自己的本地函数
7. 其他相关的配置:
在app目录下的bulid.gradle中加入
ndk{moduleName "serialLib"
// abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定的三种abi体系下的so库}sourceSets.main{jni.srcDirs = []jniLibs.srcDir "src/main/libs"}
注意一定是在defaultConfig节点下加入。
在根目录下的gradle.properties中加入android.useDeprecatedNdk=true;
8. NKD编译器设置
在file->setting中加入一个外部工具,如下图
program = C:\Android\SDKANDTOOLS\ndk-bundle\build\ndk-build.cmd
Work directory = P r o j e c t F i l e D i r ProjectFileDir ProjectFileDir\app\src\main
设置号好以后点击OK。
选中JNI类右键->New->External Tools->ndk-build,之后就会生成.so库。
最后就可以直接在其他类中调用此库。
这篇关于Android studio 3.4 使用JIN(创建工程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!