文档章节

android studio下的ndk开发流程

abcijkxyz
 abcijkxyz
发布于 2016/07/30 17:23
字数 301
阅读 7
收藏 0

总结了下android studio 下的ndk开发流程,步骤稍微有点多,不过流程还是挺简单的,掌握了这一套固定流程后,后续有需要的话,就可以直接拿来实用了。

1、配置ndk路径(需要先下载ndk压缩包),如下:

2、配置local.properties文件的ndk路径
ndk.dir=D\:\\android\\ndk\\android-ndk-r10b(下载的ndk的路径)
3、在gradle.properties文件末尾加上android.useDeprecatedNdk=true

4、创建Model,选择Android Library即可,如下:


5、在新建的library的main/java/packagename下面建立一个TestJni.java文件,里面的实现如下:
public static native String getStrFromC();
6、生成jni目录下面的.h文件,方法是:在终端(ctrl+shift+F12)的mylibrary\src\main目录下执行:javah -d jni -classpath ..\..\build\intermediates\classes\debug com.example.wdong.mylibrary.TestJni
7、在jni目录下面新建一个c文件(另外还需要再建一个空的c文件,不然编译会报错),实现本地方法,如下:
JNIEXPORT jstring JNICALL Java_com_example_wdong_mylibrary_TestOne_getStrFromC
  (JNIEnv *env, jclass jclass)
{
	(*env)->NewStringUTF(env, "test");
}
8、执行build下面的Make Model,就会在mylibrary\build\intermediates\ndk\debug\lib下面生成so库了
9、编写代码调用c库里面的函数,如下:
static {
	System.loadLibrary("mylibrary");
}
String str = TestJni.getStrFromC();

本文转载自:http://blog.csdn.net/wdong_love_cl/article/details/51429769

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
Android JNI学习(二)——实战JNI之“hello world”

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头
05/09
0
0
开发兼容英特尔架构的Android应用(三) 如何设置您的NDK应用

如何设置您的NDK应用 本篇主要介绍NDK应用的开发步骤,调试流程已经如何为英特尔架构设置您的NDK应用。 相关文章 •1. 开发兼容英特尔架构的Android应用(一) 应用架构介绍 •2. 开发兼容英特...

LiSteven
2013/08/07
0
0
[Android] 环境配置之Android Studio开发NDK

======================================================== 作者:qiujuer 博客:my.oschina.net/u/1377710 网站:www.qiujuer.net 开源库:Genius-Android 转载请注明出处:http://my.osc......

Qiujuer
2014/12/21
0
8
Android应用开发相关下载资源

官方终于发布了Android Studio正式版,Android Studio将会成为推荐使用的主要Android开发工具. (1)Android SDK (Android SDK主安装包,包含SDK Manager、AVD Manager、工具包tools,释放后的...

吴斌大大
2015/04/01
0
0
Android:随笔——新的 NDK/JNI 调用方式

转载请标明地址 QuincySx: http://www.jianshu.com/p/c6108131ba0f 众所周知现在 Android 开发已经到了 Android Studio 的时代,那么 JNI 的调用方式也经过了好几代 在eclipse 时代就存在的...

quincy
2017/04/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis应用之分布式锁(set)

Redis应用之分布式锁(set) 在单机应用的场景下,我们常使用的锁主要是synchronized与Lock;但是在分布式横行的大环境下,显然仅仅这两种锁已经无法满足我们的需求; 需求:秒杀场景下,有若干...

GMarshal
21分钟前
0
0
python实现简单的文件加密与解密

对于任意的一个文件,本质上来讲都是二进制的。 对于任意一个二进制数a,对其用另外任意一个与a的位数相同的二进制数m进行“异或”操作得到结果e,即e=a xor m; 如果再讲上面得到的e用m进行...

Aomo
22分钟前
0
0
Android开发应用程序生成以太坊钱包

Android应用程序以太坊钱包生成,要做的工作不少,不过如果我们一步一步来应该也比较清楚: 1.在app/build.gradle中集成以下依赖项: compile ('org.web3j:core-android:2.2.1') web3j核心是...

geek12345
37分钟前
0
0
ArrayList嘿嘿嘿

数组扩容技术: //扩容技术 将原数组objs类容复制到新数组并且长度为11 Object[] newObjs = Arrays.copyOf(objs,11); 数组比较大那么System.arraycopy比较有优势,因为其使用的是内存复制,省...

熊猫你好
今天
2
0
Android平台下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

python版的sxtwl_cpp传送入口 在build.gradle的allprojects中加入 maven { url 'https://dl.bintray.com/yuangu/sxtwl' } 最终如下面代码所示: allprojects { repositories { ......

元谷
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部