序
本篇是杂谈以及准备工作(此处应无掌声)
暂时不管iOS(因为开发hello world都要年费)
软件:
Visual Studio 2019(含Android SDK和NDK编译器等)
OpenCV
这是一个女仆级的系列文章,不过也有技术干货,你可以参考国内外各种方法,无非有三种:
1.使用第三方Nuget包,如Emgu.CV
这是最偷懒的办法,比如数据用Microsoft.Data.Sqlite就是最佳选择
不过OpenCV就不一样了,有些Nuget包收费还没有文档,有些则10年没有更新了,像OpenCvSharp则干脆没有Android的运行时
2.自己编写Nuget包
这个也是老外资料里面最常见的方式(我不喜欢绕那么远)
3.让APK加载C++编写的so动态库
这个对于使用Android Studio的人就简单了,不过如果你用AS则没多大必要看本文章,用以就有了本文的主要读者说明:
3.1.习惯Visual Studio大于其它开发IDE的
3.2.已经初步了解Xamarin开发HelloWorld的(这货被微软收购后已停止维护,现在它的替代是MAUI,不过我个人认为MAUI一团糟,也许微软的牛人都被调去搞OpenAI项目了)
3.3.对编程语言C#、C++、Java都有一定了解
关于Xamarin以后有空随缘发文
关于Android系统以后有空随缘发文
思路:
Xamarin提供了用C#跨平台开发的能力,对于安卓其实是个叫Mono的东东,重要的是:它可以使用C#常见的Dll Import加载C/C++编写的动态库,对于Android就是so文件(Android一类的系统都是从Linux修改的,Linux就不说了,我觉得现在有些才华侧漏的年轻人都可以当我的老师)
一句话,能加载动态库为什么要搞Nuget包?
现在的小姐姐都已经不娇羞了。至于OpenCV那100多M的运行时会不会让App太大,有Visual C++开发经验的都知道,如果程序链接一个静态库,只有使用到的二进制代码才会编译进exe文件中,比如深度学习Intel MKL如果你只调用一两个函数,有可能程序只增大几百K字节
你已经骗我自己编译Python,还骗我自己编译OpenCV,现在又想骗我在Android下编译OpenCV是不是?非也,OpenCV那帮人已经帮你编译好了。
OpenCV的下载
截至目前,最新版是4.9.0,官网:Releases - OpenCV(非盈利技术网站,国内可正常访问)
直接解压(我用的是通用项目文件夹,如下图)
在sdk文件夹里面,想要的都会有(但是不包括成人用品)
下一篇开始新建Android平台的so动态库