Android NDK系列四(Android Studio ndk-build方式配置第三方库 和打包生成多个.so(fmod库为例))

4 篇文章 0 订阅

配置第三方库:

 

1.首先关注一下目录结构,可以只看红框的目录,其他可以忽略。。

 

2.针对上面的目录,我们在build.gradle中的配置,主要添加红色的部分:

android {

compileSdkVersion 27

defaultConfig {

applicationId "hanlonglin.com.fmoddemo"

minSdkVersion 15

targetSdkVersion 27

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

 

#需要生成的so的版本

ndk {

abiFilters "x86","arm64-v8a","x86_64","armeabi-v7a"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

externalNativeBuild {

ndkBuild {

path file('src/main/cpp/ndk_build/Android.mk')

}

}

}

 

3.好,最后是我们的核心环节,Android.mk:

LOCAL_PATH := $(call my-dir)

 

#fmod模块

include $(CLEAR_VARS)

LOCAL_MODULE := fmod

#LOCAL_SRC_FILES := libfmod.so

LOCAL_SRC_FILES := ../../../../libs/${TARGET_ARCH_ABI}/libfmod.so #找到app下libs目录(即上图中上面的红框位置),不写路径会找不到,${TARGET_ARCH_ABI} 表示平台目录

include $(PREBUILT_SHARED_LIBRARY) #PREBUILT_SHARED_LIBRARY表示是预编译的库

 

#fmodL模块

include $(CLEAR_VARS)

LOCAL_MODULE := fmodL

#LOCAL_SRC_FILES := libfmodL.so

LOCAL_SRC_FILES := ../../../../libs/${TARGET_ARCH_ABI}/libfmodL.so #找到app下libs目录(即上图中上面的红框位置),不写路径会找不到,${TARGET_ARCH_ABI} 表示平台目录

include $(PREBUILT_SHARED_LIBRARY) #PREBUILT_SHARED_LIBRARY表示是预编译的库

 

#build play_sound

include $(CLEAR_VARS)

LOCAL_MODULE := play_sound

LOCAL_C_INCLUDES+= $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/include \

./src/main/cpp/fmod_inc

LOCAL_SRC_FILES := play_sound.cpp common_platform.cpp common.cpp

LOCAL_LDLIBS := -lm -llog

LOCAL_SHARED_LIBRARIES :=fmod fmodL #引用预编译库

include $(BUILD_SHARED_LIBRARY)

到此,成功引入了第三方库到我们自己的库中!

 

 

生成多个.so:

 

这个就简单了,比如我想在上面的基础上添加自己的native-lib库

只需要把native-lib.cpp拷贝到ndk_build文件夹中,然后在上面的Android.mk中添加:

#build native-lib

include $(CLEAR_VARS)

LOCAL_MODULE := native-lib

LOCAL_C_INCLUDES+= $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/include \

./src/main/cpp/fmod_inc

LOCAL_SRC_FILES := native-lib.cpp

LOCAL_LDLIBS := -lm -llog

include $(BUILD_SHARED_LIBRARY)

 

编译后发现多了一个libnative-lib.so

 

我已经分享了四篇ndk配置相关的博客,如果看完这四篇,我想你肯定熟悉了ndk在Android studio中的配置,希望可以帮大家打开ndk的大门。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龍林1102

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值