重拾C++

最近在做一个有趣的项目,想法来自于scrcpy. scrcpy是PC端控制Android手机人一个应用,和我之前用过的同类的软件相比,scrcpy视频的帧数非常高,通过PC控制Android设备响应非常迅速。想起之前学习人工智能时用过的Open AI Gym ,想着是否可以通过改进scrcpy,把任意的Android游戏改造成Gym的运行环境,然后可以通过机器学习的方式使用训练AI来玩如何任意的Android游戏,而不是局限Gym提供的环境。

scrcpy为开源,但本身是使用C语言写的。C语言(包括C++)之前我有过10多年的工作经验,但最近10多年基本是没有在碰过C语言,虽然基本概念还是记得很清楚,但C,C++经过这十多年的发展,已经不是当年我所知道的C语言了,一些在Python,C#等语言支持的语法结构比如Lambda,auto,closure在新版C++也提供了,开发的工具链(Toolchain)也有了大的改进。比如CMake,C++ 软件包管理工具(conan, vcpkg),集成开发环境,CLion, XCode, Visual Studio ,VSCode等等。

有必要重新了解下C++的开发。最近几周重新学习了C++(c17),CMake ,vcpkg。然后试着修改了scrcpy,加进了opencv,改造scrcpy变成通用Open AI Gym在技术上上可行的。

最近准备写些关于FFmpeg, OpenCV方面的文章,教程的C++项目框架ffmpeg-tutorial  ,使用CMake 作为编译工具,vcpkg作为C++ 软件包管理工具,Catch2作为单元测试框架。支持Ubuntu, Windows ,MacOS.