第一,创建一个新项目,并且新建一个类FirstNDK

定义两个native接口getStringFromNative和getIntFromNative。

public class FirstNDK {

static{

System.loadLibrary("firstNdk");//so 名称

}

public static native String getStringFromNative();

public static native int getIntFromNative(int a, int b);

}

Android studio的ndk开发_第1张图片


第二,执行Build->Make Project

Android studio的ndk开发_第2张图片

编译工程,生成.class文件,在这个目录下

/Users/littleghost/Documents/Android/Github/FirstJNI/app/build/intermediates/classes/debug/me/corer/firstjni

Android studio的ndk开发_第3张图片

第三,使用命令行生成c头文件

进到项目的app/src/main目录

CorerMacBook-Pro:~ littleghost$ cd /Users/littleghost/Documents/Android/Github/FirstJNI/app/src/main

执行javah命令

CorerMacBook-Pro:main littleghost$ javah -d jni -classpath /Users/littleghost/Documents/Android/SoftWare/sdk/platforms/android-16/android.jar:../../build/intermediates/classes/debug me.corer.firstjni.FirstJNI

这时候就会发现项目中多了一个jni目录,里面有一个.h文件me_corer_firstjni_FirstJNI.h

Android studio的ndk开发_第4张图片

第四,在jni目录中,新建main.c文件,实现头文件定义的方法

Android studio的ndk开发_第5张图片

第五,配置ndk,生成so文件

到这里后,我们再执行一个"Build->Make Project",发现"Messages Gradle Build"会给出提示如下:

Error:Execution failed for task ':app:compileDebugNdk'.

> NDK not configured.

Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties.

(On Windows, make sure you escape backslashes, e.g. C:\\ndk rather than C:\ndk)

这时候我们就应该先这里下载ndk,

然后在项目的local.properties配置ndk的目录

Android studio的ndk开发_第6张图片

修改build.gradle配置


这时,再执行"Build->Rebuild Project",就可以编译出so文件了,在以下目录

/Users/littleghost/Documents/Android/Github/FirstJNI/app/build/intermediates/ndk/debug

Android studio的ndk开发_第7张图片

第六,调用

直接在MainActivity中调用getStringFromNative和getIntFromNative

Android studio的ndk开发_第8张图片


更多相关文章

  1. 如何让Android支持GIF图片
  2. android java调用命令行给文件赋权限
  3. Android实现下载图片并保存到SD卡中
  4. android中实现从相册中一次性获取多张图片与拍照,并将选中的图片
  5. Android 获取文件目录以及文件的删除 .
  6. android 使用http协议上传文件
  7. EditText插入表情图片
  8. android Pull方式解析xml文件
  9. android操作sqlite3的blob字段,显示数据中的图片

随机推荐

  1. android 进程内存查看
  2. Android:动画效果translate、scale、alph
  3. android Immutable bitmap passed to Can
  4. android软件安全攻防实例第一章笔记
  5. Android中两种设置全屏的方法 && Android
  6. 转 : Android中Message机制的灵活应用
  7. Android源码及SDK国内镜像下载
  8. Android(安卓)Audio System 之二:AudioFli
  9. Android启动过程
  10. Android(安卓)Error: Conversion to Dalv