Android Studio Cmake 引入三方库

Android NDK 开发之 CMake 必知必会,安卓开发面试技能介绍 通过set在 CMake 中有许多预定义的常量,使用好这些常量能起到事半功倍的效果。指当前 CMake 文件所在的文件夹路径指当前工程的 CMake 文件所在路径指当前 CMake 文件的完整路径指当前工程的路径比如,在中需要指定 cpp 文件的路径,以为基准,指定 cpp 相对它的路径就好了。openglutil上面这些公司都是时下最受欢迎的互联网大厂,他们的职级、薪资、福利也都讲的差不多了,相信大家都是有梦想和野心的人,心里多少应该都有些想法。 阅读详情

Android开发中引入三方库有两种方式,一种是用mk文件编译,还有一种是 android studio直接cmake引入。下面只记录了cmake引入三方动态库的示例:

1.  新建native工程, 放入inclue和libs,如下图:

2.  修改CmakeList:

  • 设置cmake变量:
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../)

  • 引入头文件:
target_include_directories(native-lib PRIVATE ${distribution_DIR}/include)
  • 引入库文件:
add_library(PocoFoundation SHARED IMPORTED)
set_target_properties(PocoFoundation PROPERTIES IMPORTED_LOCATION
        ${distribution_DIR}libs/${ANDROID_ABI}/libPocoFoundation.so)

add_library(PocoNet SHARED IMPORTED)
set_target_properties(PocoNet PROPERTIES IMPORTED_LOCATION
        ${distribution_DIR}libs/${ANDROID_ABI}/libPocoNet.so
        )
  • 添加库链接:
target_link_libraries( # Specifies the target library.
                       native-lib
        PocoFoundation
        PocoNet

        # Links the target library to the log library
        # included in the NDK.
        ${log-lib} )

工程配置已经完成,可以在cpp文件中引入头文件,进行代码编写。

 

完整的demo示例:

https://github.com/caifubing/AndroidStudio_Pro.git

 

 

Android studio中NDK开发(二)——使用CMake引入第三方so库及头文件 一、前言 通常来说,第三方提供的so库以及头文件都没有没有引入jni.h头文件。所以我们在导入第三方so库以及头文件的时候需要手动的将其关联到官方的native-lib库中,关联成功后就可以在native-lib中include进第三方头文件,引进头文件成功后就可以在自定义的JNI接口中对第三方头文件中内容进行调用。 二、准备 第三方so库以及头文件 创建一个默认的NDKDemo(可按照CMak... 阅读详情

相关推荐

Android Studio NDK 构建工具 CMake初探

CMake 是 Android studio 支持的一种新的NDK构建工具,这篇文章主要是对官方介绍的一个翻译和一些简单的尝试。

Final Object 的博客 1万+

cmake编译android平台的libPoco

1、下载源代码,解压到POCO-1.7.8-ALL 2、从$ANDROID_NDK\cmake下复制android.toolchain.cmake AndroidNdkGdb.cmake AndroidNdkModules.cmake至POCO-1.7.8-ALL\cmake\下 3、vim POCO-1.7.8-ALL\cmake\android.cmake,内容如下 #cd POCO...

weixin_33779515的博客 464

Android Studio Cmake & OpenCV3.2环境

前言: Cmake是跨平台的一个编译配置工具,android studio 2.2之后就开始支持这个cmake工具了,之前Android studio开发c++都是利用NDK的方式,也就是Android.mk + Application.mk + soucre.cpp的构建方式,然后在gradle构建工具下执行一条命令生成c++ so库并打包进去。而cmake则是 CMakeLists.txt +

天马行空,隐姓埋名 6001

Android CMake的使用

Android CMake的使用 CMake 的基本语法规则 使用星号 # 作为注释; 变量使用 ${} 方式取值,但是在 IF 控制语句中是直接使用变量名; 指令名(参数1 参数2 …),其中参数之间使用空格或分号隔开; 指令与大小写无关,但参数和变量是大小写相关的; CMake 的常用指令 注:指令与大小写无关,官方建议使用大写,不过 Android 的 CMake 指令是小写的,下面为了便于阅读,采取小写的方式。 project 指令 语法:project( [CXX] [C] [Java]) 这

xiaomaothm的博客 2754

Android studio中NDK开发(一)——使用CMake构建NDKDemo

一、前言 NDK可以支持使用C/C++来编写Android程序,不但可以引入C/C++中优秀的库资源,而且在使用底层的C/C++来处理一些复杂的运算效率更高,并且可以方便跨平台移植。本篇主要以CMake的方式来构建NDK,主要以最常规的方式创建一个NDKImportDemo,并对自动创建官方例子进行分析构建的过程以及CMakeLists.txt构建文件的配置。   二、准备 1、检查And...

Xiongjiayo的博客 2619

Lattice FPGA 开发流程(以 ECP5 为例)

以下是以 Lattice ECP5 FPGA 为例的开发流程,涵盖从需求分析到硬件部署的完整步骤。ECP5 系列是 Lattice 提供的高性能、低功耗 FPGA,适用于通信、工业控制和嵌入式系统等领域。

u011732210的博客 1258

Android NDK入门(CMake)

本文使用CMake进行NDK开发!!! 学会NDK就可以把你写或者别人写的C和C++代码在Android 下调用,可以大大提高性能和安全。 (注意)本文图文齐全,绝对可以让你轻松学会NDK开发的入门。注意Demo是Android Studio是自动生成的 一、概述 1.概述 Android 调c /c++代码,是每一个Android工程师进阶都要学的。本文简单讲解NDK入门。 ...

光临天下 381

IQA图像质量评价 数据集介绍(LIVE、TID2013、CSIQ、LIVEC、KonIQ-10K)

LIVE、TID2013、CSIQ、LIVEC、KonIQ-10K 数据集介绍

qq_37925923的博客 1万+

CMake中add_library的使用

CMake中add_library的使用

网络资源是无限的 1万+

手把手教你用Synopsys AHB VIP搭建验证环境:从SINGLE到WRAP16的完整波形分析与避坑指南

本文详细介绍了如何使用Synopsys AHB VIP搭建验证环境,从基础配置到复杂波形调试实战。重点解析了AHB协议中各种Burst类型的地址计算机制,包括INCR和WRAP类型,并提供了实际案例和避坑指南,帮助工程师快速掌握验证技巧。

weixin_42552716的博客 414

使用 ArxivLoader 从 arXiv 加载学术文献并实现高效文档处理

arXiv是一个开放获取的学术存储平台,涵盖了物理、数学、计算机科学等多个领域的 200 万篇学术论文。这些文献中包含了如逻辑推理、机器学习等热门领域的最新研究进展。通过使用 ArxivLoader,我们可以轻松地搜索和加载 arXiv 上的学术文献,并将其转换为文本以供分析或应用于下游任务,例如问答系统、摘要生成或知识图谱构建。有时我们并不需要完整的文献内容,而是只需要摘要用于快速预览。可以使用 get_summaries_as_docs()# 获取文献摘要# 查看第一篇摘要。

hgSdaegva的博客 888

Android Studio jni+CMake配置引入第三方库(librtmp为例)

android studio +jni+cmake配置rtmp

m0_62602360的博客 1727

第一节:从Chat_Bot 到 AI_Agent——一个范式转换

本文系统剖析了工业级AI代理系统ClaudeCode的设计原理与工程实践。通过对比ChatBot与Agent的三个本质差异:自主循环决策vs单轮应答、环境交互vs纯文本I/O、持久状态管理vs无状态对话,揭示了构建生产级Agent系统的关键挑战。文章详细解析了ClaudeCode的五层架构设计、1800+文件组成的运行时系统,包括工具调度、权限管理、状态持久化等核心机制,并阐述了从简单API调用到完整Agent系统的演进路径。

2201_75869398的博客 68

Android studio使用CMake引入第三方so库及头文件

Android studio中NDK开发(二)——使用CMake引入第三方so库及头文件 一、前言 通常来说,第三方提供的so库以及头文件都没有没有引入jni.h头文件。所以我们在导入第三方so库以及头文件的时候需要手动的将其关联到官方的native-lib库中,关联成功后就可以在native-lib中include进第三方头文件,引进头文件成功后就可以在自定义的JNI接口中对第三方头文件中内...

mjfh095215的专栏 6528

Qt5+Ros+GUI界面

在之前建立的工程的基础上添加一个gui界面。 在ros包中新建一个文件夹,名字叫gui 右击gui文件夹添加一个文件,选择Qt->Qt设计师界面类 选择MainWindow 选择下一步 最后在gui中生成三个文件 mainwindow.cpp、mainwindow.h、mainwindow.ui 但此时,这些新创建的文件和原本的ros工程还没建立任何关系,只是目录下多出了几个文件而已...

二毛的博客 8843

Grafana 可视化配置

Grafana 可视化操作使用

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 1940

android cmake log,Android Studio中CMakeList的写法

只要在Android中有使用过jni的应该都了解我们要编译写的c/c++文件都需要配置编译用的配置文件,在eclipse中要写mk文件;在Android Studio中要写CMakeList.txt这个配置文件。只有写好了这个配置文件我们才正确编译出我们想要的so动态库,今天就讲讲Android Studio中的CMakeList.txt这个文件怎么写,eclispe的mk文件的写法在这就不讲了...

weixin_32446485的博客 445

python基础:工作会用到的90%的python代码都在这了(万字详解!)

Python 备忘单是 Python 3 编程语言的单页参考表 著名的“Hello World”程序在 Python 中的实现 Python 不能在没有赋值的情况下声明变量 变量可以存放不同类型的值 内置数据类型 序列指一批有序的元素,集合指一批无序且不重复的元素查看: 数据类型 查看: 字符串 查看: 列表 查看: 判断 查看: 循环 查看: 函数 查看: 文件处理 表示 x 和 y 的商, 表示 x 和 y 的底商,另见 StackOverflow f-字符串 (Python 3.6+) 查看

数据知道的博客 1万+

Android NDK项目CMakeLists.txt配置导入第三方库

CmakeLists 配置记录 方便查看 cmake_minimum_required(VERSION 3.4.1) #include头文件目录 include_directories(src/main/cpp/include src/main/cpp/) #source directory源文件目录 自定义搜索规则 file(GLOB MTCNN_SRC src/main/cpp/*.h src/main/cpp/*.cpp) #设置变量 set(MTCNN_COMPI

莫翊痕的博客 4238

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android Studio中的CmakeList NDK配置

Android Studio2.2之后直接可以在创建工程时添加NDK支持了,添加之后,main文件夹下会多出一个native-lib.cpp这个文件,如果只为了一个简单的NDK接口,貌似这就结束了。直接在native-lib.cpp下编程即可。   但是,如果使用第三方库,就得重新配置了。到目前为止,网上大半文章都是.mk的配置方法,按照他们的步骤,在AS上一步一步做下去好像很难成功。...

a757428997的博客 283

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android c语言编程环境,Android Native开发环境搭建(Android Studio 2.32)

Android Studio 2.2之后,引入了Cmake的构建方式来使用C/C++开发,相较于之前Android.mk的方法更加灵活也更加方便。1. 新建Android Studio工程,勾选C++Support2. 一路Next到这一步Step 23. 如果没报错那就是完成了,报错可能是你可能没有NDK,如果没有的话需要下载NDK或者指定本地NDK的目录Step 34. 下载完成后,你需要在当...

weixin_36081187的博客 478

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

AS使用NDK Cmake方式依赖第三方库

AS使用NDK Cmake方式依赖第三方库注意事项 AS2.2以后支持Cmake了,以前的Android.mk的方式可以告别了,官方教程 CMakeLists.txt文件的书写 引入第三方库使用add_library()需要指定是SHARED->.so or STATIC->.a,和IMPORTED,并且每次只能写一个库...

weixin_33948416的博客 409

android ndk 第三方 so,Android ndk 使用第三方so和头文件编译

我们在使用ndk的时候,有时候可能会使用到第三放提供的so和头文件。一般他们是提供对外暴露的接口,供开发者去开发。这里我举个例子,看看如何在Eclipse环境下使用第三方的so。第三方的提供:|___libXyun.so|___Xyun|__HeaderA.h|__HeaderB.h我们要基于这个so和两个头文件做自己的事情。需要在android.mk中添加对他们的引用。首先,需要把他们拷贝到工程...

weixin_36410277的博客 698

Android Studio引入JNI第三方库

Android Studio引入JNI第三方库前言创建应用导入第三方配置导入头文件和实现文件配置CPU运行环境CMakeLists.txt配置FMOD的使用初始化和释放C++宏的创建头文件的编写native-lib.cpp执行文件的编写 前言 JNI作为Java与native沟通的桥梁,项目开发中难免要使用到;而我们除了自己开发JNI之外,有时候还要在Android Studio引入别人开源的C++第三方库,并在jni层实现第三方库的调用。 记录一下第一次引入第三方库的步骤和一些需要注意的地方。 这里使用的

theyangchoi的博客 7377

Android Studio CMake 引入静态包.a 以OpenCV为例

以OpenCV为例,记录开发过程并附上部分踩坑细节 1.引入openCV的.a包,官方SDK目录如下: 记得第三方也要引入。引入后的样子如下: 你会发现,x86和arm的包不太一样。 2.引入OpenCV头文件.h .hpp 首先,在你的cpp/include下,加入openCV的头文件,如下图: 官方SDK在这里: 3.CMake引入.a及你自己的c++源码 先引入头文件: set(libs ${CMAKE_SOURCE_DIR}/..) include_directo

迷彩狼的博客 3395

【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

一、Android NDK 构建脚本、 二、CMake 构建脚本示例、 三、CMake 命令手册、 1、CMake 脚本命令、 2、CMake 工程命令

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 4004
上一篇: CMake管理VS+Qt工程
下一篇: Android 下 Poco库的异常不能被catch
caifubing
博客等级 码龄12年 12粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值