终极篇 C++算法到安卓的移植——AS调用VS的so库

本文详细介绍了如何将Windows平台的C++算法移植到Android系统,利用Visual Studio 2019创建动态共享库,然后在Android Studio中调用。过程中涉及VS的c++移动开发、动态库配置、JNI接口、Android Studio项目构建以及Android模拟器的使用。虽然遇到诸多困难,但最终成功实现了移植。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:windows平台下的c++算法,需要移植到安卓系统上。平时用惯了Visual Studio,再在其他软件上重新写算法,调试算法,实在头疼。所以我用VS的c++移动开发功能创建动态共享库,将算法内容放入,并实现JNI和JAVA接口部分;最后用Android Studio调用成功。

 

吐槽微软的仿真器以及VS自带的google emulator for android,搞了很久,还是有问题,不能直接用(本着放在一起调试方便,竟然没搞出来。如果有朋友在这一块调试好了,记得发文章,还是很期待的),索性重点不在这里,干脆放弃,使用Android Studio做测试。(本来算法功能测试已经在windows平台测试的差不多了)

 

吐槽开始。。。

三周了,从未接触java,android,对于一个C++死忠粉各种没信心,只能各种查资料,找度娘,找论坛,都以为没戏了,终于给我搞成功了!!

在此特别感谢优快云的Mr_L_Y,他对我的帮助无以言谢。这位大神贡献的资料可以查看:

VS2019 C++的跨平台开发——Android .so开发

https://blog.youkuaiyun.com/luoyu510183/article/details/94590497

VS2019 OpenCV的Windows工程到安卓的移植

https://blog.youkuaiyun.com/luoyu510183/article/details/102710080

 

其实有这两篇文章足以移植VS中创建的C++移动开发的SO库,但是想想这么久的辛苦,还是记录一下自己的成果。

(这里插一句,如果是整个大项目的移植,比如团队项目,直接参考Mr_L_Y的移植方法;如果是自己写的,源码结构比较简单的直接参考我这里的方法会更方便一点。)

 

本文使用的软件版本如下:

  • VisualStudio 2019 (创建c++移动开发的动态库)
  • AndroidStudio 3.5 (调用VS创建的动态库,并在模拟器中显示结果)
  • NDK-r16B
  • Android SDK 21
  • Opencv 4.1.1(android)

 

 

第一部分:创建c++算法的so库,供安卓调用

1. 软件准备:安装Visual Studio中的“使用C++的移动开发”,不需要在可选项中选择模拟器

2. 打开VS,新建项目,选择”动态共享库(Android)“,命名为SharedObject

3. 配置opencv

由于算法中使用了opencv,具体配置可以参考文章

Visual Studio + android + opencv 跨平台生成动态库文件https://blog.youkuaiyun.com/Merria28/article/details/102517646

在这里特别讲一下配置的问题,java不需要区分debug和release,所以在附加依赖项或者库依赖项中的所有配置是一样的。需要注意的是,opencv的第三方依赖库x86_64和x86中比arm64和arm的库文件少一个libtegra_hal.a,配置的时候不要添加就可以了。

附加库目录需

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值