本地配置NDK
1.下载Ndk,点击下图图标,并点击sdkTool,找到Ndk选项选中,点击Ok就可以去下载了。
注:如过没出现Ndk选项的话 可以选择翻墙下载以及去外部下载 然后自己配置Ndk路径
下载链接:
下载:http://developer.android.com/tools/sdk/ndk/index.html
Windows32:android-ndk-r10d-windows-x86.exe
Windows64:android-ndk-r10d-windows-x86_64.exe
Mac OS X 32-bit:android-ndk-r10d-darwin-x86.bin
Mac OS X 64-bit:android-ndk-r10d-darwin-x86_64.bin
Linux 32-bit (x86):android-ndk-r10d-linux-x86.bin
Linux 64-bit (x86):android-ndk-r10d-linux-x86_64.bin
2.手动配置路径,上面一步可行的话忽略这一步
- 点击File,选中Project Structure
- 配置下载好的路径(路径到下载Ndk文件下的子路径即可)
NDK的简单使用以及操作
1. 创建一个项目并配置好项目Ndk环境支持。
在项目中的gradle.properties 配置这句话
android.useDeprecatedNdk=true
在项目中的local.properties 中配置Ndk路径
ndk.dir=自己的Ndk路径
2.生成.h头文件类
1)本地先声明引用c库名称以及方法
2)点击Build—>Make Project,本地生成.class,目的为了找到本地方法声明引用
3)使用javah命令 生成.h文件
点击左下角的Terminal cmd命令行 cd 至 app\src\main\java 目录下
使用javah -jni 包名.类名 创建.h文件 (记得刷新工程目录)
3. 创建Jni文件夹,并创建对应名称的.c文件,并在app目录下的build.gradle配置gradle命令对应生成so库。
1)右键app目录创建Jni文件夹
2)把之前生成.h文件粘贴至Jni目录,并创建 库名.c C文件
3)编写c代码,添加生成的.h头文件,以及复制.h文件对应生成的方法
4)编写gradle命令,并重新编译
在defaultConfig下添加下列命令
ndk{
moduleName"test" //对应c文件名
//生成对应 平台so库,去掉则默认生成全部so库
abiFilters "armeabi", "armeabi-v7a", "x86"
}
4. 测试并使用生成c方法,查看对应生成so库
在app/build/intermediates/ndk/debug/lib 目录下就能看到我们生成的对应平台的so库
最终效果图: