软件下载
链接:http://pan.baidu.com/s/1cev9FK
密码:7yab
当然其他版本的也可以,建议不要用最新的
注意:执行Javah的时候生成头文件是对Java文件所生成的.class进行处理的命令
使用gradle,你再也不用手动添加Android.mk和Application.mk文件,一切在build.gradle文件中就都能搞定,在这里我们直接贴出build.gradle中ndk相关的配置:
#### eclipse adt 选择ndk目录时不识别,出现“Not a valid NDK directory”
解决方案
在ndk的主目录下创建一个ndk-build空文件,关闭对话框再次尝试
需要在
gradle.properties文件中
添加
android.useDeprecatedNdk = true
AndroidStudio没有像Eclipse那样的一键add native support,相对来说比较麻烦
下面就介绍在AndroidStudio中如何实现类似于Eclipse的add native support功能(也就是进行NDK开发的步骤)。
(1)先下载NDK并安装(这句基本是废话);
点菜单栏的Build->Make Project,如下图所示
这时,在工程的app/build/intermediates下就会生成classes文件夹,打开classes目录下的debug目录就会看到以你的包名命名的各级文件夹,最里边文件夹下有你的Java类对应的.class文件;
比如你想在MainActivity中引用本地方法,那么你先用
来声明本地代码库,然后定义几个natvie方法,比如
public native String getStringFromNative();
static {
System.loadLibrary("myNativeLib");
}
做完这些工作就可以进行下一步了。
如图所示,打开命令行编辑工具后,cd到工程的src/main/java目录,输入
javah -d ../jni 你的包名.引用本地方法的类的名称
javah -d ../jni com.example.lixinyu.myapplication2.MainActivity
我直接用了MainActivity类做为调用JNI的Java类,你也可以写一个自己的类,之后就等吧,构建完成后就会在工程的src/main目录下生成一个jni目录,下边还包含.h头文件,如下图所示:
这里的build.gradle是指app模块下的build.gradle,不是整个工程的build.gradle文件。在模块的build.gradle的defaultConfig下加入以下idk配置:
ndk {
moduleName"myNativeLib"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
打开工程目录下的local.properties,感觉这一步是自动配置的,或者说在你一开始在AndroidStudio中指定NDK目录时已经自动生成了。我的AndroidStudio在打开local.properties已经有了
ndk.dir=/Develop/Android/android-ndk-r10e
这一行,所以就不用配了;
打开工程目录下的gradle.properties文件(注意不是build.gradle,而是gradle.properties),在文件的最后一行加入
android.useDeprecatedNdk=true
NDK探究之旅:
NDK和JNI初探及其联系和区别
NDK探究之旅《一》——对jni和NDK的认识
NDK探究之旅《二》——C语言的基本认识
NDK探究之旅《三》—C语言的输入输出函数
NDK探究之旅《四》——指针的强化理解
NDK探究之旅《五》——指针和数组之间的关系
NDK探究之旅《六》—函数的指针、结构体、枚举、宏定义
NDK探究之旅《七》—函数指针,宏定义的优缺点及应用场景
NDK探究之旅《八》——jni的开发流程规范及环境配置
NDK探究之旅《九》——jni开发中常见的错误及其注意事项
NDK探究之旅《十》——ndk项目实战之Androidstudio开发经验总结
NDK探究之旅《十一》—C代码调用Java代码之项目实战
NDK项目实战—高仿360手机助手之卸载监听
关于更多:
2017上半年技术文章集合—184篇文章分类汇总
如果你觉得此文对您有所帮助, 欢迎关注微信公众号:终端研发部 这里不仅仅学到的是技术
(欢迎关注学习和交流)