NDK开发笔记—ndk环境安装及其搭建
来源:互联网 发布:火鸟中文移动编程 编辑:程序博客网 时间:2024/06/05 11:05
ndk环境安装及其搭建
软件下载
链接:http://pan.baidu.com/s/1cev9FK
密码:7yab
当然其他版本的也可以,建议不要用最新的
注意:执行Javah的时候生成头文件是对Java文件所生成的.class进行处理的命令
可以简单的使用gradle配置
使用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配置
AndroidStudio没有像Eclipse那样的一键add native support,相对来说比较麻烦
下面就介绍在AndroidStudio中如何实现类似于Eclipse的add native support功能(也就是进行NDK开发的步骤)。
1、新建一个Android工程,这一步就不多说了;
2、在AndroidStudio中配置NDK路径,方法是:
(1)先下载NDK并安装(这句基本是废话);
- (2)点菜单栏的File->ProjectStructure…->在打开的窗口中左侧选中SDKLocation->在右侧Android NDK Location中填入NDK目录所在路径,如下图所示:
3、编译生成.class文件,方法是:
点菜单栏的Build->Make Project,如下图所示
这时,在工程的app/build/intermediates下就会生成classes文件夹,打开classes目录下的debug目录就会看到以你的包名命名的各级文件夹,最里边文件夹下有你的Java类对应的.class文件;
4、确定你要引用本地方法的类:
比如你想在MainActivity中引用本地方法,那么你先用
来声明本地代码库,然后定义几个natvie方法,比如
public native String getStringFromNative();
static { System.loadLibrary("myNativeLib");}
做完这些工作就可以进行下一步了。
5、使用javah命令行生成jni目录及对应的头文件:
如图所示,打开命令行编辑工具后,cd到工程的src/main/java目录,输入
javah -d ../jni 你的包名.引用本地方法的类的名称
javah -d ../jni com.example.lixinyu.myapplication2.MainActivity
我直接用了MainActivity类做为调用JNI的Java类,你也可以写一个自己的类,之后就等吧,构建完成后就会在工程的src/main目录下生成一个jni目录,下边还包含.h头文件,如下图所示:
6、配置build.gradle文件
这里的build.gradle是指app模块下的build.gradle,不是整个工程的build.gradle文件。在模块的build.gradle的defaultConfig下加入以下idk配置:
ndk { moduleName"myNativeLib" ldLibs "log", "z", "m" abiFilters "armeabi", "armeabi-v7a", "x86"}
7、配置local.properties文件
打开工程目录下的local.properties,感觉这一步是自动配置的,或者说在你一开始在AndroidStudio中指定NDK目录时已经自动生成了。我的AndroidStudio在打开local.properties已经有了
ndk.dir=/Develop/Android/android-ndk-r10e
这一行,所以就不用配了;
8、配置gradle.properties
打开工程目录下的gradle.properties文件(注意不是build.gradle,而是gradle.properties),在文件的最后一行加入
android.useDeprecatedNdk=true
9、写一个.c文件测试一下是否运行正常
- 点菜单栏的Build->Make Project编译一下工程
- 看看在工程目录下app/build/intermediates/ndk/debug/lib目录下是否成功生成了相应的.so文件
- 如果以上配置都正确的话这里是会生成对应平台的.so文件的
如果对ndk不了的同学们可以一下参考博客:
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篇文章分类汇总
相信自己,没有做不到的,只有想不到的
如果你觉得此文对您有所帮助, 欢迎关注微信公众号:终端研发部 这里不仅仅学到的是技术
(欢迎关注学习和交流)
- NDK开发笔记—ndk环境安装及其搭建
- NDK搭建环境笔记
- NDK 开发环境搭建
- NDK 开发环境搭建
- NDK开发环境搭建
- NDK开发环境搭建
- NDK开发环境搭建
- NDK开发环境搭建
- NDK开发环境搭建
- NDK 开发环境搭建
- NDK开发环境搭建
- NDK开发环境搭建
- NDK开发环境搭建
- NDK开发笔记(一)---环境搭建
- 开发环境搭建--Ubunut下NDK安装
- 搭建Window环境下android NDK开发环境——NDK安装
- 【NDK开发】android-ndk r10环境搭建
- 【NDK开发】android-ndk r10环境搭建
- 探索数据库的事务隔离级别
- 326. Power of Three
- XML总结
- 直击Redis持久化磁盘IO痛点,让存储不再有负担!
- 聚类分析框架
- NDK开发笔记—ndk环境安装及其搭建
- 20170926_二叉树遍历_递归
- 数据库语言分类DDL DCL DML 知多少?
- UAC/UAS & sip domain设置
- caffe学习日记--lesson4:windows下caffe DEMO (mnist and cifar10)
- 最基本的vector操作
- JS中的算法与数据结构——栈(Stack)
- ubnutu安装vue+webpack,初始化vue项目
- 基于VerticalViewPager的上下滑动,可带动画效果,类似WheelView