AndroidStudio现有项目添加NDK支持(ndk-build编译)

此篇主要以案例讲解在现有项目添加NDK支持,并且使用ndk-build编译库文件;

1. 从IDE左侧打开Project窗口,从下拉框选择Project视图

2. 导航到app目录下的src的main目录下,右键->New Directory新建一个目录jni;


3. 在main的java目录下添加native函数;

添加 com.niubashaoye.demo.ndkdemo.JNITools.java

public class JNITools {
    static{
        System.loadLibrary("NDKLib");
    }
    public native int addNum(int num1,int num2);
}

 

4. 添加javah自动生成头文件配置,然后使用javah生成头文件到jni目录中;

 

5. 项目添加NDK路径:File->Project Structrue ->SDK Location ->设置NDK路径;

6. 在jni目录下新建一个C/C++ Source文件NDKLib.cpp;

7. 在jni目录下新建Android.mk文件,配置ndk的库文件编译环境;

详情参考:Android.mk用法详解

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := NDKLib
LOCAL_SRC_FILES := NDKLib.cpp
LOCAL_LDLIBS := -lm -llog
include $(BUILD_SHARED_LIBRARY)

8. 添加C/C++引用到Gradle配置中

切换到Anroid视图下,项目名右键 ->Link C++ Project with Gradle ->选择ndk-build,然后选择Android.mk的路径

9. 在jni目录NDKLib.cpp的实现头文件的函数,引用头文件并实现方法;
    如果此处C/C++文件不能自动补全,请参考:AndroidStudio NDK开发C/C++文件自动补全设置

#include <jni.h>
#include "com_niubashaoye_demo_ndkdemo_JNITools.h"

JNIEXPORT jint JNICALL Java_com_niubashaoye_demo_ndkdemo_JNITools_addNum
  (JNIEnv *env, jobject obj, jint num1, jint num2){
   return num1+num2;
  }

 

10. 调用JNI函数

 int num = new JNITools().addNum(34,68);
 Toast.makeText(getApplicationContext(), "34+68="+num, Toast.LENGTH_SHORT).show();

注:记得加载库文件;
AndroidStudio现有项目添加NDK支持(CMake编译)

代码下载:https://download.csdn.net/download/niuba123456/10542053

 

AndroidStudio现有项目添加NDK支持(CMake编译)

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值