AndroidNDK生成so文件配置
来源:互联网 发布:linux shell debug 编辑:程序博客网 时间:2024/05/16 10:29
废话少说打开androidStudio,新建一个工程 NDKTest
新建完毕
依次打开 File->ProjectStruct 得到下面图
检查第三行是否为空,是则代表ndk还没下载,直接点击下载即可
下载完毕后,打开设置,在搜索那里输入Exter,选择ExternalTools
注意!默认情况下这里是空的
点击左下角那个+号,添加这几个工具路径
分别是javah,ndk-build,ndk-build clean,依次如下图
Program $JDKPath$/bin/javah (javah存放路径)
Parameters -classpath $Classpath$-v -jni $FileClass$ (命令参数)
Working directory $SourcepathEntry$/../jni (这个是你的c/c++文件存放路径)
第一个是ndk的文件路径,默认下载地址是在你的sdk包下面
Working directory $ProjectFileDir$/app/src/main
这个跟ndk-build相比只是第二行多了个clean
到这里环境就配置完毕了
然后将目录切换到project
右键main-NEW-floder-jniFloder-finish
此时会多出一个与java并级的目录jni
好,先把这个目录放一边,打开java,新建一个类NdkTest,敲上如下代码
然后打开build.gradle
在defaultConfig里面加入下面几句
ndk{
moduleName "MyJniLib"
}
sourceSets.main{
jni.srcDirs=[]
jniLibs.srcDir "src/main/libs"
}
打开gradle.properties
最下面加一句 android.useDeprecatedNdk=true
点击Build-Make Project
make完毕后
右键刚才新建的类(NdkTest)选择javah
build完后,jni文件下会出现
里面是这样的,这是该c库的头文件
右键jni文件,新建一个file,起名为MyJniLib.cpp
导入生成的头文件
#include"com_zy_ndktest_NdkTest.h"
将头文件的函数名复制过来实现
JNIEXPORT jstring JNICALL Java_com_zy_ndktest_NdkTest_getString(JNIEnv *e, jobject)
{
return e->NewStringUTF("hello ndk !!!");
}
文件如图
最后,继续在jni文件中新建两个文件—>Android.mk和Application.mk
在Android.mk中写下如下几句
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE :=MyJniLib
LOCAL_SRC_FILES=MyJniLib.cpp
include $(BUILD_SHARED_LIBRARY)
Application.mk中
APP_MODULES :=MyJniLib
APP_ABI :=all
然后,右键jni文件,选择ndk-build
让其build一会,so库就生成了,并存放在之前指定的libs中
最后运行检验
如图,可以看到log中的hello ndk!!!
成功!!
- AndroidNDK生成so文件配置
- AndroidNDK初步开发之如何调用jni生成.so文件、Android.mk配置及第三方so不被删除的方法(二)
- AndroidNDK初步之如何调用jni及.so和mk的配置
- android生成so文件
- android生成so文件
- 生成so文件
- NDK生成so文件
- eclipse生成SO文件
- NDK生成so文件
- Ubuntu下Android NDK配置及生成so文件步骤
- android JNI生成.so文件(arm64-v8a等)配置
- android项目中配置NDK自动编译生成so文件
- android studio NDK开发配置以及生成SO文件
- android.mk和gradle两种配置生成so文件
- eclipse配置生成.h和.so文件过程
- windows下androidNDK环境配置
- windows下androidNDK环境配置
- windows下androidNDK环境配置
- Android属性动画完全解析(上),初识属性动画的基本用法
- Swift 图片平铺
- jshint常用检查规则
- JAVA 环境变量配置
- 消息队列的作用
- AndroidNDK生成so文件配置
- solr 整理
- electron开发记录(三):应用基本框架解析
- j2ee的web项目怎么防止,重复提交的问题?(即点击了提交,后台新增了两条数据,也就是说,其实是点了多次提交,发起了多次http url,这样就插入了多条相同数据,但是主键id是不同的)
- 【C#】—.net,VS,C#三者的关系
- js-tips
- nutch 在hadoop环境下过滤抓取url的设置
- oracle下lag和lead分析函数
- stm32调试-- 获取内存数据