您的位置:首页 > 移动开发 > Android开发

Android Studio NDk-JNi开发(二)AS下开发流程

2017-02-18 13:48 330 查看

一、详细步骤

1.创建一个类,在里面声明native方法,如下图:



2.先clean project ,之后Rebuild Project,在Terminal控制台进入到 …\app\build\intermediates\classes\debug 目录下,执行 javah -jni tongsiw.jnidemo.JniUtil。语句的格式是: javah -jni + 后面是native方法所在类的全类名。如下图:



执行完之后,会在…\app\build\intermediates\classes\debug 目录下生成.h头文件



3.在main文件夹下创建jni文件夹目录,将生成的头文件复制到jni目录下,同时在jni目录创建一个c文件,c文件名可以根据需求命名,添加代码,如下图:



4.接下来就是相关的配置

(1)在gradle.properties文件下添加代码 android.useDeprecatedNdk=true

(2)在Moudule下面的build.gradle文件下添加配置



5.在native本地方法类里面添加代码,如下图



6.好了,到这就可以build项目了,但我这里会有个bug,不知道大家有没有遇到过



解决办法:

1.下载一个LockHunter.exe,安装好

2.在Moudule下面的build.gradle文件下添加配置

task clean(type: Exec) {
ext.lockhunter = '\"D:\\Develop_File\\LockHunter\"'
def buildDir = file(new File("build"))
commandLine 'cmd',
4000
"$lockhunter", '/delete', '/silent', buildDir
}


贴张图:



到这,简单的开发流程就结束了;最后如果大家想要拿到so库,有两种方法:

1.通过命令行的方式

首先在jni目录下创建一个 Android.mk文件,代码如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := jnidemo
LOCAL_SRC_FILES := jnidemo.c

include $(BUILD_SHARED_LIBRARY)




然后在Terminal窗口进入到 main文件夹下,执行ndk-build命令,如下图:



2.在…app\build\intermediates\ndk\debug目录下面可以拿到so库,推荐这种,直接copy。如下图



二、拿到so库之后就可以删除掉jni目录了

两种方法:

一、在main文件夹下创建jniLibs文件夹,将生成的so库放进去,就可以删掉jni目录了



二、将生成的so库放到app下的libs文件夹,但是这里在Module下的build.gradle中需要一个配置

sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}




其实so库还可以放在别的目录下,如下图:



最后到这就基本结束了,这些也是在网上找的资料然后自己总结的,如果有问题,希望大神能够多多指点。

点击下载源码

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: