基于Visual C++和Xamarin的跨平台移动开发

微软Hyperlapse Mobile 提供机会把任何长视频-从一个颠簸的自行车骑到一个家庭在公园散步-变成一个简短的,蒸馏版本,你可以很容易地与朋友和家人分享。  这项技术可以在Windows Phone上使用,在Android上也有beta版,对于那些曾经坐在那里不舒服的人来说,这将是一种受欢迎的解脱,他们可以通过一个实时视频记录这些类型的旅行。

null

对于专业射击手和严肃的视频爱好者来说, 微软Hyperlapse Pro 可以使用Windows电脑从任何相机或设备上拍摄的视频创建Hyperlapse,包括用无人机拍摄的空中镜头。它开启了以前即使是严肃的电影人也难以实现的可能性。本博客讨论了如何使用跨平台Visual C++和XAMARIN解决方案开发超驰。

Hyperlapse代码库的结构

由于性能原因,超驰的核心算法部分是用C++编写的,随着时间的推移,我们已经建立了一个高级和高度优化的计算机视觉算法库。这个图书馆代表着一项重大的投资,重新编写它将是一项巨大的事业。类似地,在托管端,我们开发了一个包含控件和功能的工具箱,我们在几个应用程序之间共享这些控件和功能,并希望重用它们。  当我们着手建立hyperlass时,我们不仅想利用我们以前的投资,还想减少我们未来的维护债务;我们想建立一个单一的应用程序,但有许多头。同时,我们的应用程序需要利用底层硬件,同时保持它运行的每个平台的独特外观和感觉。

Xamarin和C++使我们能够实现这些目标:我们可以在跨平台C++中构建核心算法块,并将应用程序业务逻辑的大部分保持在.NET便携式类库中。然后,我们可以在我们的业务逻辑之上构建瘦的、平台本机ui(也用C#编写),让应用程序在每个平台上都有宾至如归的感觉,但却共享了大部分底层实现。

除了库,我们的代码是大约30% %C++,30% %的便携式.NET,20%的XAMARIN / Windows电话专用UI代码。包括库代码严重歪曲它到C++,因为我们的C++库是巨大的(虽然我们在超驰中不使用它)。下图说明了Hyperlapse解决方案的结构:

图片[1]-基于Visual C++和Xamarin的跨平台移动开发-yiteyi-C++库

visualstudio和Xamarin开发经验

使用visualstudio集成的最大优势来自于对工具的熟悉。作为一个微软开发团队,我们的SkyStand在Visual Studio、C++和C.*中投入了大量的资金。避免处理Android工作室、Eclipse和java的能力,极大地提高了我们的生产力,并极大地提高了我们的上市时间。XAMARIN以前允许引进和消费预先构建的C++库。这并不理想,因为它意味着使用像Eclipse这样的第三方工具来开发C++库,然后导入VisualStudio。

VisualStudio跨平台C++与XAMARIN集成关闭了这个循环,确保我们可以编辑、构建和调试  VisualStudio中的C++代码,因此我们需要任何第三方工具。此外,这也使我们能够将Android应用程序与现有的Windows构建基础设施无缝集成;只需按下一个按钮,我们就可以生成两个版本化、签名和打包的应用程序,随时可以提交到各个应用程序商店。要了解XAMARIN C++集成作品是如何引用的 博客 Xamarin写的 浅谈XAMARIN应用程序中C++的构建和调试。

开发经验,特别是考虑到我们正在进行预发布软件是非常顺利的,一般一切都正常。当特性在各种CTP中变得可用时,让它们变亮是一件很好的事情,尽管很明显,像我们一样频繁地重新安装VisualStudio是一件很痛苦的事情。

多亏了visualstudio和Xamarin,我们继续将我们的开发过程和产品推向新的平台和技术,我们期待着将这些过程应用到新的令人兴奋的产品上。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享