Android Studio + NDK

本文将介绍在Android Studio中使用NDK的一种简便的方法,先给出一些参考:

由于对Gradle的不熟悉,不想对build.gradle文件做过多的修改。那么可以通过先使用NDK编译so文件,然后再将so文件引入Android工程的步骤来配置Android Studio。

准备工作

-Android Studio
-Android sdk
-Android ndk

Android Studio使用的是稳定的1.4版本;ndk使用的是r10d版本。

操作步骤

1. 新建Android工程。

2. 申明native方法:

protected void onCreate(Bundle savedInstanceState) {
    ... ...
    TextView textView = (TextView) findViewById(R.id.textview);
    textView.setText(stringFromJNI());
    ... ...
}

private native static String stringFromJNI();

static {
    System.loadLibrary("hello");
}

3. 新建jni文件夹:

新建jni文件夹

4. 设置javah工具:

打开设置窗口
设置javah工具
右键要生成头文件的java类文件,然后选择NDK Tools -> javah,这样在jni文件夹下就生成了相应的头文件。

5. 新建C源文件

新建main.c

#include "jonesx_ndkexample_MainActivity.h"

JNIEXPORT jstring JNICALL Java_jonesx_ndkexample_MainActivity_stringFromJNI(JNIEnv * env, jclass clazz)
{
    return (*env)->NewStringUTF(env, "Hello from JNI!");
}

6. 新建Android.mk文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := main.c
LOCAL_LDLIBS += -llog
LOCAL_MODULE := hello

include $(BUILD_SHARED_LIBRARY)

7. 新建Application.mk文件:

APP_ABI := armeabi
APP_PLATFORM := android-16

8. 设置ndk-build工具:

和设置javah的步骤相同。
ndk-build设置
Parameters:

NDK_PROJECT_PATH=$ModuleFileDir$/build/intermediates/ndk NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs NDK_APPLICATION_MK=$ModuleFileDir$/src/main/jni/Application.mk APP_BUILD_SCRIPT=$ModuleFileDir$/src/main/jni/Android.mk V=1

9. 生成so文件:

右键jni文件夹,选择NDK Tool -> ndk-build;这样会自动生成jniLibs目录,目录下有相应平台的so文件。
生成的so文件

10. 修改gradle文件:

到现在还不能运行程序,因为会报错:

Error:Execution failed for task ':app:compileDebugNdk'.
> Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.

还需要修改app\build.gradle文件,仅仅是添加一句:

android {
    ... ...
    // add
    sourceSets.main.jni.srcDirs = []
    ... ...
}

运行结果

通过以上步骤后的运行结果如下:
运行结果图

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值