Android Studio NDK的.so文件开发

本文环境:
Android Studio 3.4.1
NDK 20.0.5594570

1.环境配置
下载并安装Android Studio
2.下载NDK
在这里插入图片描述
然后配置环境变量

最后在Project Structure里确认一下Android NDK location:
在这里插入图片描述
3.接下来开始创作,新建工程
在这里插入图片描述
在com.crimson.lz4下新建LZ4.java文件,编写代码:

package com.crimson.lz4;

public class LZ4
{
    static {
        public native String get();
    }
}

生成.h文件:
进入java目录,执行:javah -jni [.h文件]

C:\Users\houyaosen\AndroidStudioProjects\LZ4>cd app\src\main\java

C:\Users\houyaosen\AndroidStudioProjects\LZ4\app\src\main\java>javah -jni com.crimson.lz4.LZ4

编写.c文件
.h同级目录创建.c文件:

#include "com_crimson_lz4_LZ4.h"

#include <android/log.h>

#define LOG_TAG "infoo"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)

JNIEXPORT jstring JNICALL Java_com_crimson_lz4_LZ4_get
  (JNIEnv *env, jclass jc){
  LOGI("hello,这里是native层");
    return (*env)->NewStringUTF(env, "from c");
  }

编写Android.mk
.h同级目录创建Android.mk:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := LZ4
LOCAL_SRC_FILES := LZ4.c
LOCAL_LDLIBS +=-L$(SYSROOT)/usr/lib -lm -llog
include $(BUILD_SHARED_LIBRARY)

配置build.gradle

找到app/build.gradle,设置ndk和sourceSets.main如下:

android {
			.... //为其它配置选项---忽略并非配置中添加...
    		ndk {
            		moduleName "BluetoothJniLibrary"
           			 ldLibs "log"
            		abiFilters 'armeabi','arm64-v8a','armeabi-v7a','x86','x86_64'
		        }
		        
		  sourceSets.main{
        			jni.srcDirs = []
        			jniLibs.srcDir "src/main/libs"
    			}
		    ....//为其它配置选项---忽略并非配置中添加...
    }

生成.so
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值