使用visualstudio2015调试用Marmalade构建的Android应用程序

对于这篇博文,我们欢迎 果酱 ( https://www.madewithmarmalade.com )作为我们博客的客座作者。他的团队最近发布的 果酱台 现在支持VisualStudio2015,我们邀请他告诉我们更多关于他们在这方面的工作。

null

Visual Studio 2015提供了跨平台的本地开发技术,用于在Android平台上构建和调试跨平台C++代码。VisualStudio2015提供了基于Android本机活动的模板,可以快速创建高性能应用程序。

果酱平台包括一个跨平台的C++ SDK,果酱核心,其一个关键特征是平台抽象API,隐藏了许多本地平台的复杂性,并允许开发者一次性编写代码并部署到许多目标。基于C++的果酱核心应用程序可以部署到iOS、Android、NaCL、Windows Phone和Windows 10,举几个例子。

现在,通过我们最新的SDK版本,利用Visual Studio 2015新的跨平台功能,可以对运行在Visual Studio Emulator for Android(x86)或附加的Android设备(ARM)上的Marmalade核心应用程序进行本机调试。

使用Visual Studio 2015构建果酱核心应用程序

默认情况下,Marmalade核心项目生成一个visualstudio解决方案,该解决方案能够生成一个应用程序二进制文件,无需重新编译即可部署到多个目标平台。这种所谓的“单二进制”使用了专有的果酱技术,可以用来针对Windows机器上的iOS以及Android。这种类型的visualstudio解决方案非常适合生成二进制文件以供分发或在Marmalade桌面模拟器上进行调试。

对于设备上的本机调试,Marmalade核心项目还可以生成一个特殊的visualstudio解决方案,允许在windowsphone、windows10和现在的Android上进行调试。

Visual Studio 2015可以在Android本机调试模式下从命令行或Marmalade Hub启动。

从命令行运行以下命令:

mkb MyProject.mkb–buildenv=VC14–buildenv toolset=ANDROIDNATIVE

从果酱中心,选择 安卓 作为项目屏幕中的目标平台,并单击 在IDE中打开以进行调试 按钮如下所示。

图片[1]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

图片[2]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

在visualstudioide中,您会注意到生成的解决方案由两个项目组成,如下所示。

图片[3]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

Android.打包

此项目包含将应用程序打包并部署到Android目标所需的visualstudio配置。

u vc14u androidnativetoolset

此项目包含应用程序的源代码,并生成一个动态库,该库将包含在应用程序创建的APK中 Android.打包 项目。

果酱的MaFilm Builder系统将自动为项目的C++和链接器设置合适的标志,适合于果酱核心应用程序。默认情况下,选择GCC4.9为ARMv7-a和vfpv3-d16 fpu变体和softfp浮点ABI构建。

一旦生成,开发者就可以像往常一样从IDE编辑、构建和运行应用程序,新的visualstudio2015 Android特定功能,如用于代码完成和代码高亮显示的IntelliSense。

使用Visual Studio 2015调试果酱核心应用程序

调试Marmalade核心应用程序非常简单:只需像平常一样使用现有的visualstudio调试功能。

例如,点击F5,应用程序将被构建、打包,然后部署到已连接的Android设备或VisualStudioEmulator For Android。然后,应用程序将自动启动并连接调试器。

图片[4]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

为了进一步演示VisualStudio2015的调试功能,我们将使用Mad Fellows Games Studio用果酱制作的正弦波(SineWave)真实游戏进行调试,该游戏可用于iOS、Android和Windows。这款游戏是一款未来派的铁轨射击游戏,音乐为你的动作设定节奏。

设置断点并检查局部变量

在主菜单中声音按钮的回调中设置了一个断点,以演示在发生某些用户交互时命中断点。

图片[5]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

主菜单.cpp “源”窗口中,黄色箭头显示当前执行点。当游戏暂停时,您可以将此黄色箭头拖动到另一个点,以跳到该执行点,从而绕过特定的代码路径。断点可以在源窗口以及 断点 窗户。

最有用的特性之一是 调用堆栈 窗口,该窗口沿代码路径为函数提供源文件和行号。另外,在 当地人 窗口中,visualstudio提供了对当前范围内局部变量的快速访问,提供了变量的内存地址和值。在这个例子中 C菜单 实例及其成员变量。

分步拆卸

通常有必要查看特定函数的反汇编,特别是当代码具有内联汇编时。Visual Studio在同一断点处为x86和ARM提供了此功能,如下所示:

图片[6]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库 图片[7]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

使用即时窗口

为了获得更多的控制权,开发人员还可以访问 即时窗口 从中可以在运行时计算函数(与到达断点的线程在同一个线程上)。这对于评估动态的或每个设备不同的事物很有用。

下面是果酱核心功能的一个例子, s3edevicegent公司 ,被调用以检索属性,如PPI、逻辑PPI、可用内存量以及ARM设备和x86 emulator的体系结构:

x86仿真器

图片[8]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

ARM设备

图片[9]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库

结论

VisualStudio 2015的新能力,以建立和调试本地C++ Android应用程序完全利用果酱平台。这允许我们为用户的开发工具箱提供强大的补充。

visualstudioemulatorforandroid提供了一个快速的x86仿真器,用于在各种外形和具有不同技术规范的Android版本上进行调试。同时在连接的设备上进行调试的能力为开发人员提供了一种简单的方法,可以在visualstudioide中轻松地部署和测试他们的游戏。

图片[10]-使用visualstudio2015调试用Marmalade构建的Android应用程序-yiteyi-C++库 亚历克斯·波特 是Marmalade Technologies的高级软件工程师,致力于Marmalade平台,这是一个跨平台的SDK,允许开发人员从单个代码库中针对各种移动和桌面平台。他在Windows Phone和iOS上做了大量工作,专门研究交叉编译器和低级工具,目前专注于在marmaladesdk中扩展Android支持

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