在Visual Studio中用C++开发Android和iOS

当涉及到构建移动应用程序时,许多开发人员在C++中编写大部分或部分应用程序。为什么?那些正在构建计算密集型应用程序(如游戏和物理模拟)的人选择C++作为其无与伦比的性能,而其他人则选择C++作为其跨平台性质,并在现有的移动应用中利用现有C/C++库。无论你是针对通用Windows平台(UWP)、Android或IOS,VisualStudio都能在一个单一IDE中构建跨平台的C++移动应用程序,并具有完整的编辑和调试功能。

在这篇博客文章中,我们将重点讨论如何在VisualStudio中用C++构建Android和iOS应用程序。首先,我们将讨论如何获取Android和iOS开发工具,然后我们将使用内置的模板创建一些C++移动应用程序。接下来我们将使用VisualStudioIDE编写C++和java代码,然后使用世界一流的VisualStudio调试器来捕捉C++和java代码中的问题。最后,我们将讨论如何结合XAMARIN使用C++移动解决方案。

安装Visual Studio for Android和iOS开发

第一, 下载Visual Studio 2017 并启动visualstudio安装程序。

要构建Android或iOS应用程序,请选择“ 用C++开发手机 “下的工作量” 移动和游戏 “类别。

1-vs-install

Android开发 默认情况下,此工作负载包括核心VisualStudio编辑器、C++调试器、GCC和Clang编译器、Android SDK和NDKS、Android构建工具、java SDK和C++ Android开发工具。您可以选择在 可选组件 如果您没有Android设备进行测试,请列出。这将为您提供开始构建Android应用程序所需的一切。

iOS开发 :如果您也针对iOS,请选中“ C++ iOS开发工具 可选组件 列个单子,你就可以走了。

使用项目模板创建一个新的Android应用程序

如果你打算先瞄准Android,然后再担心其他平台,那么VS内置的Android项目模板,包括原生活动应用程序、静态库、动态共享库,可能是一个很好的起点。如果您希望从跨平台解决方案开始,以多个移动平台为目标,请跳到下一节 在Android和iOS上构建OpenGLES应用程序 在这里我们将讨论构建一个应用程序,它以两个共享C++代码的平台为目标。

你可以在下面找到Android模板 Visual C++ -> 跨平台->Android 节点。

2-templates

在这里我们要创建一个新的 本地活动 应用程序(Android) ,这是流行的创建游戏和图形密集型应用程序。创建项目后,在 解决方案平台 下拉列表,选择与您正在使用的Android仿真器或设备匹配的正确架构,然后按F5运行该应用程序。

3-solution-platforms

默认情况下,visualstudio使用Clang工具链为Android编译。应用程序应该成功构建和运行,你应该看到应用程序在背景中改变颜色。这篇文章 创建Android本机活动应用程序 更详细地讨论本机活动项目。

在Android和iOS上构建OpenGLES应用程序

这个 OpenGL ES应用程序 下的项目模板 Visual C++ -> 跨平台 node是面向Android和iOS的移动应用的一个很好的起点。OpenGL ES(OpenGL for Embedded Systems或GLES)是一种在许多移动设备上支持的二维和三维图形API。这个模板创建了一个简单的iOS应用程序和一个Android本地活动应用程序,它有C++代码,使用OpenGL ES在每个平台上显示相同的动画旋转立方体。

4-opengles-template

创建的OpenGL ES应用解决方案包括库文件夹中的三个库项目,每个平台一个,另一个共享C++代码,以及Android和iOS的两个应用程序。

5-solution-explorer

现在让我们在Android和iOS上运行这个应用程序。

在Android上构建并运行应用程序

模板创建的解决方案将Android应用程序设置为默认项目。就像 运行Android本机活动应用程序 我们之前讨论过 解决方案平台 下拉列表,选择与您正在使用的Android仿真器或设备匹配的正确体系结构,然后按F5运行该应用程序。opengles应用程序应该成功构建和运行,你会看到一个彩色的3D旋转立方体。

在iOS上构建并运行应用程序

在解决方案中创建的iOS项目可以在visualstudio中编辑,但是由于许可限制,它必须从Mac构建和部署。VisualStudio与运行在Mac上的远程代理通信,以传输项目文件并执行生成、部署和调试命令。您可以按照说明设置Mac 安装和配置工具以使用iOS生成 .

一旦远程代理在Mac上运行并且visualstudio与之配对,我们就可以构建并运行iOS应用程序。在 解决方案平台 在visualstudio下拉列表中,为iOS模拟器(x86)或iOS设备选择正确的体系结构。在解决方案资源管理器中,打开OpenGLESApp1.iOS.Application项目的上下文菜单,然后选择 建造 . 然后选择 iOS模拟器 在工具栏上,在Mac上的iOS模拟器中运行应用程序。你应该在iOS模拟器中看到相同颜色的3D旋转立方体。

6-ios-simulator

这篇文章 在Android和iOS上构建opengles应用程序 包括有关OpenGLES项目的更多详细信息。

Visual Studio以所有移动平台为目标

如果您正在构建一个应用程序,针对多个移动平台(Android、iOS、UWP),并希望在C++中共享公共代码,您可以通过拥有一个VisualStudio解决方案并在同一IDE中利用相同的代码创作和调试体验来实现这一目标。使用VisualStudio,您可以通过共享项目组件轻松地共享和重用现有的C++库,以面向多个平台。下面的截图显示了一个具有4个项目的单个解决方案,每个移动平台一个,一个共享C++代码的共享项目。

7-shared-project

欲了解更多信息,请参阅 半砖块制造商流行的手机游戏水果忍者和JETPACKYORYBY使用Visual Studio为C++跨平台的移动开发体验 .

用VisualStudioIDE的全部功能编写跨平台C++代码

使用VisualStudio,可以使用相同的强大的智能感知和代码导航特性来编写跨平台的C++代码,从而使代码编写更加高效。这些编辑功能不仅会在公共代码中显示出来,而且在编写特定于平台的代码时,还可以感知目标平台的上下文。

会员名单 快捷信息 ,如下面的屏幕截图所示,这只是VisualStudio提供的IntelliSense功能的两个示例。 会员名单 显示类型或命名空间中有效成员的列表。在C++代码中的对象实例中键入“->”将显示成员列表,并且可以通过按选项卡或通过键入空间或周期来将选定成员插入到代码中。 快捷信息 显示代码中任何标识符的完整声明。针对Android平台,IntelliSense是基于Clang工具链实现的。在下面的屏幕截图中,visualstudio显示了当Android原生活动项目处于活动状态时可用的Android特定功能的列表。

8-editing

自动完成、扭曲、引用高亮显示、语法着色、代码段是其他一些有用的生产力特性,对代码编写和编辑有很大帮助。

在大型代码库中导航和在多个代码文件之间跳转可能是一项累人的任务。VisualStudio提供了许多优秀的代码导航功能,包括 转到定义 , 转到线条/符号/成员/类型 , 查找所有引用 , 查看 调用层次结构 , 对象浏览器 ,以及更多,以提高您的生产力。

这个 Peek定义 特性,如下面的屏幕截图所示,将定义带到当前代码文件中,允许查看和编辑代码,而无需切换您正在编写的代码。你可以找到 Peek定义 通过右键单击打开上下文菜单,或使用快捷方式Alt+F12查找要探索的方法。在屏幕截图中的示例中,VisualStudio引入了在AndroidSDK log.h文件中定义的uuu android_ulog_uprint方法的定义,该方法作为一个嵌入式窗口嵌入到当前的cpp文件中,使得读写android代码更加高效。

9-peek-definition

用世界一流的Visual Studio调试程序调试C++代码

对代码中的问题进行故障排除可能非常耗时。使用VisualStudio调试器帮助更快地查找和修复问题。在Android C++代码中设置断点,然后按F5启动调试器。当到达断点时,您可以在 汽车 观察 windows以及在数据提示中鼠标悬停,查看 调用堆栈 窗口,轻松进出功能。在下面截图中的示例中 汽车 窗口显示Android sensorManager和accelerometerSensor类型中更改的值。

10-debugging

visualstudio中的Android调试体验也支持 用于调试预构建的Android应用程序 通过其他IDE、其他基本调试器功能(跟踪点、条件断点)和高级功能,如调试器可视化(Natvis支持)以及附加到运行的Android应用程序。

您可以在博客帖子中找到更多关于C++调试器的信息 C++调试与诊断 .

Android的Java调试和语言支持

无论你在Android应用程序中编写java或C++代码,VisualStudio都已经覆盖了它。visualstudio包含一个Java调试器,它支持在Android项目中调试Java源文件,并使用 用于Android扩展的Visual Studio Java语言服务 ,您还可以利用 VisualStudioIDE中Java文件的智能感知和浏览功能。

编辑Java代码

首先,安装 用于Android扩展的Visual Studio Java语言服务 . 它在Java文件中提供了颜色化(语法和语义)、错误和警告扭曲以及代码大纲和语义高亮显示。您还将获得IntelliSense帮助,如成员列表、参数帮助、快速信息,使编写Java代码更加高效。在下面的屏幕截图中,VisualStudio提供了android.util.Log类的成员列表。

11-java-editing

对于更大的代码库或导航第三方库的另一个方便的功能是转到定义(F12),它将带您到符号定义位置(如果可用)。

调试Java代码

要在下一个调试会话中为Android项目启用Java调试,请在 调试目标 工具栏,更改 调试类型 下拉到“ 仅限Java ”如下面的截图所示。

12-java-setting

现在可以在Java代码中的任何地方设置行断点,包括断点的条件或命中计数。当遇到断点时,可以在 当地人 汽车 窗口中的调用堆栈 调用堆栈 窗口,并检查 Logcat公司 窗户。

13-java-debugging

博客文章 visualstudioforandroid中的Java调试与语言支持 有更多关于这个话题的细节。

构建Xamarin Android本机应用程序

沙马林 是一种流行的跨平台解决方案,用于在移动平台上使用C#创建丰富的本机应用程序,同时最大化代码重用。使用Xamarin,您可以创建具有本机用户界面的应用程序,并在每个移动平台上获得本机性能。如果你想利用XAMARIN在C语言中编写用户界面,同时重用现有的C/C++库,VisualStudio完全支持构建和调试引用C++代码的XAMARIN Android应用程序。此博客帖子 开发Xamarin-Android本机应用程序 更详细地描述此场景。

在XAMARIN iOS应用程序中引用C++库可以通过遵循这个博客文章来实现 从XAMARIN代码调用C/C++库 .

试用Visual Studio 2017进行C++开发

下载Visual Studio 2017 ,试用并分享您的反馈。如有问题,请通过 报告问题 选项位于VS标题栏的右上角。跟踪您对 开发者社区门户 . 如需建议,请告知我们 用户语音 .

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞1 分享