androidstudio配置ndk开发

androidstudio配置ndk开发

2023年7月7日发(作者:)

androidstudio配置ndk开发⽹上很多资料都⽐较旧,我查了⼀些资料,并且试了⼀下,总结了⼀个最简单的配置ndk开发的⽅法,步骤如下:1. 在SDK Tools中勾选安装CMake、LLDB、2. 配置External Tools,省去了⾃⼰敲命令参数讲解 javah ⽤于⽣成头⽂件 Program:$JDKPath$/bin/javah Parameters:-d ../jni -jni $FileClass$ Working directory:$SourcepathEntry$..java ndk-build ⽤于构建so包 注意:MAC/Linux⽤ndk-build,没有.cmd后缀 Program:D: Parameters:什么都不⽤填 Working directory:$ModuleFileDir$我的javah配置是Program:/usr/bin/javahParameters:-d ../jni -jni $FileClass$Working directory:$SourcepathEntry$/../我的ndk-build配置是Program:$ANDROID_HOME/ndk-bundle/ndk-buildWorking directory:$ModuleFileDir$/src/main3. 在⼯程的ties⽂件中配置NDK的⽬录=/Users/user/Library/Android/sdk/=/Users/user/Library/Android/sdk4. 创建#定义cmake⽀持的最⼩版本号cmake_minimum_required(VERSION 3.4.1)add_library( # 设置⽣成so库的⽂件名称,例如此处⽣成的so库⽂件名称应该为: native-lib # 设置⽣成的so库类型,类型只包含两种: # STATIC:静态库,为⽬标⽂件的归档⽂件,在链接其他⽬标的时候使⽤ # SHARED:动态库,会被动态链接,在运⾏时被加载 SHARED # 设置源⽂件的位置,可以是很多个源⽂件,都要添加进来,注意相对位置 src/main/jni/ )# 从系统⾥查找依赖库,可添加多个find_library( # 例如查找系统中的log库 log-lib # 库指定的名称即为log,如同上⾯指定⽣成的库名称为native-lib⼀样 log )# 配置⽬标库的链接,即相互依赖关系target_link_libraries( # ⽬标库(最终⽣成的库) native-lib # 依赖于log库,⼀般情况下,如果依赖的是系统中的库,需要加 ${} 进⾏引⽤, # 如果是第三⽅库,可以直接引⽤库名,例如: # 引⽤第三⽅库libthird.a,引⽤时直接写成third;注意,引⽤时,每⼀⾏只能引⽤⼀个库 ${log-lib} )⽂件中的native-lib是我⽣成的so⽂件的名字,src/main/jni/是我实现的native⽅法所在的类,注意路径不要写错,我的⽂件所在路径是这样的5. 在模块的⽂件中添加android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { externalNativeBuild { cmake { cppFlags "" } } } externalNativeBuild { cmake { path "" } }}6. 创建native⽅法package ;public class NativeHelper { static { brary("native-lib"); } public native String stringFromJNI();

}7. 编写cpp⽂件#include "stdio.h"#include "jni.h"#include "string"extern "C"JNIEXPORT jstring JNICALL Java_com_test_NativeHelper_stringFromJNI (JNIEnv *env,jobject jobject1){ return env->NewStringUTF("hello world from cpp");}然后项⽬就可以运⾏了

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688677261a161763.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信