Android Studio Ndk 编程
2016-03-31 15:56
543 查看
现在开发Android程序基本都已经从Eclipse转到了Android Studio了, 最近项目需求, 需要用到ndk编程, 于是就折腾了一下。
android-ndk-r10e
gradle 2.8
首先我们新建一个工程叫做NdkDemo, 创建后的工程目录结构如下
然后我们打开gradle.properties文件, 在文件的尾端写一句, 如果没有写这一句会编译不通过
接着配置ndk路径, 点击左上角File然后选择Project Structure(或者直接点击红框标注的那个按钮)进入配置界面, 然后在红框内配置下载好的ndk路径即可。
到此,配置工作就全部完成, 下面进行开发相关的工作。
相信在Eclipse进行ndk编程过的同学都知道我们要去编写Android.mk, 但是在Android Studio是完全不用我们去编写的, 我们只需要在gradle下写几个简单的语句, Studio就会自动帮我们写好Android.mk,非常方便。
以上就是app目录的build.gradle的配置, 只需要在defaultConfig 节点下写入ndk相关的配置就可以了。
接着我们新建一个Comman类, 写一个本地函数, System.loadLibrary的参数填的就是刚才在build.gradle配置的moduleName
然后我们右键app目录, 选择新建一个jni目录
点击下方的控制台Tab, 输入一下命令, 就会发现神奇的在jni目录下会自动生成相关的.h文件
解释一下两句命令行的意思。第一句意思是进入到app/src/main/java目录下。第二句中, javah是jdk一个生成头文件的工具, -d ../jni 表示生成的文件要放到上一层目录的jni文件夹下, com.zwf.ndkdemo.ndk.Command就是刚才我们写的Command的全路径。
有了头文件我们就可以开始编写相关的c文件了, 在jni文件夹下新建一个c文件跟刚才的头文件名字一样, 写入相关的功能。
点击运行, 成功!
那么, 我们生成的so库在哪里找呢。
完毕!Demo源码
开发环境
Android Studio 1.5.1android-ndk-r10e
gradle 2.8
首先我们新建一个工程叫做NdkDemo, 创建后的工程目录结构如下
然后我们打开gradle.properties文件, 在文件的尾端写一句, 如果没有写这一句会编译不通过
android.useDeprecatedNdk=true
接着配置ndk路径, 点击左上角File然后选择Project Structure(或者直接点击红框标注的那个按钮)进入配置界面, 然后在红框内配置下载好的ndk路径即可。
到此,配置工作就全部完成, 下面进行开发相关的工作。
相信在Eclipse进行ndk编程过的同学都知道我们要去编写Android.mk, 但是在Android Studio是完全不用我们去编写的, 我们只需要在gradle下写几个简单的语句, Studio就会自动帮我们写好Android.mk,非常方便。
defaultConfig { ... ndk{ moduleName "ndk-demo" //要引用module的名字 ldLibs "log" //引用库的名字(选填) abiFilters "armeabi" //配置需要编译出那些版本的so库(如果不写,就编译出所有版本的so库) } }
以上就是app目录的build.gradle的配置, 只需要在defaultConfig 节点下写入ndk相关的配置就可以了。
接着我们新建一个Comman类, 写一个本地函数, System.loadLibrary的参数填的就是刚才在build.gradle配置的moduleName
public class Command { public static native String getStringFromC(); static{ System.loadLibrary("ndk-demo"); } }
然后我们右键app目录, 选择新建一个jni目录
点击下方的控制台Tab, 输入一下命令, 就会发现神奇的在jni目录下会自动生成相关的.h文件
解释一下两句命令行的意思。第一句意思是进入到app/src/main/java目录下。第二句中, javah是jdk一个生成头文件的工具, -d ../jni 表示生成的文件要放到上一层目录的jni文件夹下, com.zwf.ndkdemo.ndk.Command就是刚才我们写的Command的全路径。
有了头文件我们就可以开始编写相关的c文件了, 在jni文件夹下新建一个c文件跟刚才的头文件名字一样, 写入相关的功能。
点击运行, 成功!
那么, 我们生成的so库在哪里找呢。
完毕!Demo源码
相关文章推荐
- 【Android】AlarmManager 实现提醒一次,每天提醒,周自定义提醒,月自定义提醒
- Android Studio 导入项目说明
- Using Multiple Android Studio Versions
- Android 自定义View高级特效,神奇的贝塞尔曲线
- 笔记 Android的Fragment初使用
- Android程序中价格的处理
- Realm for Android 快速入门
- Android开源项目分类汇总(七)优秀项目
- android6.0 statusbar 通知栏颜色
- Android Studio使用总结 [未完待续]
- (4.6.9)Android属性allowBackup安全风险浅析
- Android开源项目分类汇总(六)工具库
- 安卓下拉刷新开源库对比
- Android开源项目分类汇总(四)TextView、ScrollView、TimeView、TipView、FlipView
- Android让dialog充满整个屏幕
- Android开源项目分类汇总(三) ViewPager 、Gallery、GridView、ImageView、ProgressBar
- android dialog屏蔽back返回键的解决方法
- Android Studio 快捷设置
- Android开源项目分类汇总(二) ActionBar;Menu
- Android获取本周本月本年的第一天和最后一天