Android Studio 2.2 NDK 开发 之 cMake 方式
2017-04-06 17:43
567 查看
前言:Android Studio 推出 2.2 之后 ,解锁一个 NDK 开发新姿势 : cMake ;跟传统的(Android Studio 2.2 之前)有很多大的不同.
首先来比较一下两者的目录结构:
传统方式:
cMake 方式:
结构上还是有略微的差别的 ,接下来进入主题 。
另外,需要下载如下图这两个工具,
在创建项目的时候,记得将此处打上勾,其他默认就行;
然后 Android Studio 就会自动给你生成 jni demo;
比如你要自定义个 getBytes() 方法 ,直接声明这个方法,然后 利用快捷键 Alt+Enter 弹出提示,在 native-lib.cpp 中创建该方法(当然也可以自己按照命名方式自己去写)。如下图
在 native-lib.cpp 中声明后记得在方法名的上面一行添加 extern”C”,否则执行后会找不到该方法。
注 :如要修改 byte 数组里面的值 , 需要如上图所示 ,通过转换修改再转换回来;因为在这里 java 基本数据类型都通过 <jni.h> 转换了,具体可以点击进入 jni.h 里面查看源码
如果要声明一个新的 byte[] ,获取数组的长度,如下图
2.2 debug
直接在 .cpp 文件里面加断点 ; debug 运行就好了 ;
2.3 修改 so 库名字
第一步,将 cpp 文件夹下的文件名 修改
第二步,将此句 System.loadLibrary(“native-lib”); 的名字修改
第三步,将 CMakeLists.txt 文件里面所有 “native-lib” 的字段修改
然后先 Clean Project ,再重新编译一下项目( Ctrl + F9)
2.4 导出 so 文件
编译之后再如下图路径可以找到编译后的 so 文件:
这里面有默认 7 中架构的 so 库; 如果你不需要生成那么多 ,可以在
build.gradle 配置 ;
Clean Project , 再重新编译 ,就只生成你配置的那几种了 ;
总结 :比起以往传统的方式, 用起 cMake 是要简单方便的多 ,特别是声明方法跟 debug ;
以往传统的方式 : Android Studio 中 NDK 开发与调试(生成 .so 文件)
首先来比较一下两者的目录结构:
传统方式:
cMake 方式:
结构上还是有略微的差别的 ,接下来进入主题 。
1、环境搭建
这就不多说了,照着传统方式做,http://www.jianshu.com/p/e7c2c63fa70e另外,需要下载如下图这两个工具,
在创建项目的时候,记得将此处打上勾,其他默认就行;
然后 Android Studio 就会自动给你生成 jni demo;
2、 拓展
2.1 自定义方法 :比如你要自定义个 getBytes() 方法 ,直接声明这个方法,然后 利用快捷键 Alt+Enter 弹出提示,在 native-lib.cpp 中创建该方法(当然也可以自己按照命名方式自己去写)。如下图
在 native-lib.cpp 中声明后记得在方法名的上面一行添加 extern”C”,否则执行后会找不到该方法。
注 :如要修改 byte 数组里面的值 , 需要如上图所示 ,通过转换修改再转换回来;因为在这里 java 基本数据类型都通过 <jni.h> 转换了,具体可以点击进入 jni.h 里面查看源码
如果要声明一个新的 byte[] ,获取数组的长度,如下图
2.2 debug
直接在 .cpp 文件里面加断点 ; debug 运行就好了 ;
2.3 修改 so 库名字
第一步,将 cpp 文件夹下的文件名 修改
第二步,将此句 System.loadLibrary(“native-lib”); 的名字修改
第三步,将 CMakeLists.txt 文件里面所有 “native-lib” 的字段修改
然后先 Clean Project ,再重新编译一下项目( Ctrl + F9)
2.4 导出 so 文件
编译之后再如下图路径可以找到编译后的 so 文件:
这里面有默认 7 中架构的 so 库; 如果你不需要生成那么多 ,可以在
build.gradle 配置 ;
Clean Project , 再重新编译 ,就只生成你配置的那几种了 ;
总结 :比起以往传统的方式, 用起 cMake 是要简单方便的多 ,特别是声明方法跟 debug ;
以往传统的方式 : Android Studio 中 NDK 开发与调试(生成 .so 文件)
相关文章推荐
- AS2.2使用CMake方式进行JNI/NDK开发
- Android Studio 2.2 NDK CMake方式入门
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- Android Studio中进行NDK开发(android studio 2.2 及 CMake)
- 【转载】Android Studio 2.2 NDK cMake 方式
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- Android Studio2.2 CMAKE高效NDK开发
- 我的第一篇博客——Android Studio 2.2 NDK开发之Cmake 编译多个源文件的问题
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- Android Studio 2.2 NDK CMake方式入门
- AS2.2使用CMake方式进行JNI/NDK开发
- AS2.2使用CMake方式进行JNI/NDK开发
- Android Studio 2.2 NDK开发环境搭建【转载+补充新接口】
- android studio 2.2 NDK开发经验总结及相关错误汇总(旧版NDK开发转新版NDK开发经验)
- AndroidStudio2.2 NDK开发之CMake和传统JNI区别
- Android Studio 2.2 NDK开发 opencv 人脸识别
- AndroidStudio2.2 Preview3中NDK开发之CMake和传统 JNI在目录结构和配置文件上的区别(转载)