Android Studio中的NDK开发
2017-06-05 10:44
183 查看
最近研究了下Android Studio中的NDK开发
一、NDK配置
1、在Project的local.properties文件添加NDK路径
二、java代码与c代码编写
1、新建一个类HelloWord.java,声明native方法,方法由java声明,在c/c++中实现
2、编译代码,生成HelloWord.class文件,如下图所示:
3、在AndroidStudio中调出命令编译工具Terminal:
4、生成头文件
Terminal中默认指向JNITest工程目录,敲命令指向HelloWord.java文件所在的目录,
使用javah -jni com.example.dai.jnitest.HelloWord自动生成.h文件
5、在app\src\main目录下,新建一个jni文件夹,把com_example_dai_jnitest_HelloWord.h文件复制进去,新建一个.c文件,实现com_example_dai_jnitest_HelloWord.h文件中的函数
7、so库文件的使用
在app\src\main下,新建jniLibs文件夹,将so文件放入
注意:可以指定so文件的位置,在app的build.gradle中的android节点加入
然后在app\libs中使用即可
一、NDK配置
1、在Project的local.properties文件添加NDK路径
## This file is automatically generated by Android Studio. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. # # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. #Mon Jun 05 10:03:15 CST 2017 ndk.dir=D\:\\Android\\android-sdk\\ndk-bundle sdk.dir=D\:\\Android\\android-sdk2、打开app Module的build.gradle文件,在defaultConfig节点里添加以下代码
defaultConfig { ndk { moduleName "HelloWord" //生成的so名字 abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库。目前可有可无。 } }3、在gradle.properties中加上一句话
android.useDeprecatedNdk=true
二、java代码与c代码编写
1、新建一个类HelloWord.java,声明native方法,方法由java声明,在c/c++中实现
package com.example.dai.jnitest; public class HelloWord { public native String printf(); public static void main(String[] args) { new HelloWord().printf(); } static { System.loadLibrary("HelloWord"); } }
2、编译代码,生成HelloWord.class文件,如下图所示:
3、在AndroidStudio中调出命令编译工具Terminal:
4、生成头文件
Terminal中默认指向JNITest工程目录,敲命令指向HelloWord.java文件所在的目录,
使用javah -jni com.example.dai.jnitest.HelloWord自动生成.h文件
5、在app\src\main目录下,新建一个jni文件夹,把com_example_dai_jnitest_HelloWord.h文件复制进去,新建一个.c文件,实现com_example_dai_jnitest_HelloWord.h文件中的函数
#include "com_example_dai_jnitest_HelloWord.h" /* * Class: com_example_dai_jnitest_HelloWord * Method: printf * Signature: ()V */ JNIEXPORT jstring JNICALL Java_com_example_dai_jnitest_HelloWord_printf (JNIEnv *env, jobject obj){ return (*env)->NewStringUTF(env,"This is a test!"); }6、Rebuild Project生成so文件
7、so库文件的使用
在app\src\main下,新建jniLibs文件夹,将so文件放入
注意:可以指定so文件的位置,在app的build.gradle中的android节点加入
//指定so库的位置 sourceSets { main { jniLibs.srcDirs = ['libs'] } } }
然后在app\libs中使用即可
相关文章推荐
- [Android] 环境配置之Android Studio开发NDK
- Android Studio中NDK开发
- Android studio进行NDK开发
- android studio下的NDK开发详解(一)
- Android-使用Android studio 进行NDK-JNI开发实例(一)
- Android Studio 添加C库so文件方法(NDK开发)
- Android Studio下的NDK-JNI开发总结
- Android studio 1.3 NDK开发
- android开发资源网站,下载各版本SDK源码、Android Studio、NDK等
- 用Android Studio进行NDK开发(简化流程)
- Android Studio中NDK开发
- Android studio开发NDK,第一个NDK程序教程
- Android Studio中NDK开发(一)如何使用预编译好的.so动态链接库
- 使用Android Studio 1.3 版本进行NDK开发
- 关于使用Android Studio 开发NDK项目生成.h文件方法
- Android studio NDK开发
- Android Studio NDK开发浅谈
- Android Studio开发配置NDK环境
- 使用Android Studio 1.3 版本进行NDK开发准备工作
- Android Studio 1.4 NDK 开发中Javah命令找不到类的解决方法