Visual Studio对安卓CMake 工程的支持

[原文发表地址] Support for Android CMake projects in Visual Studio [原文发表时间] 2015/12/16 3:16 AM CMake 是一个跨平台工程生成工具,它能让共享的C++跨平台代码在其他多种IDE环境和工程中重复利用。 在Visual Studio中,我们做了一些改变,使CMAKE能支持Android工具链。有了这一改变,你只需做最小的改动,就可以将现有的CMAKE工程变成Android目标平台的工程,你可以在Visual Studio打开你的工程,充分感受到我们丰富的Android集成开发环境的好处。 我们已经在努力做微软CMake 开源github资源库,也打算和Kitware合作将这些改变集成在公开的CMake资源库。 但是当下,下面是你们需要做的一些步骤。 前提条件,请在Visual Studio上安装Android MDD包 获取CMake 在Microsoft CMake 资源库的VCMDDSndroid下面。  请点击“Download ZIP”按钮 ,下载离线备份的VCMDDAndroid,并解压。            从https://cmake.org/download/安装CMake3.4.1,这是编译CMake做必须的,推荐Win32 安装器。  在解压缩的文件目录下,运行 cmake –G “Visual Studio 14” ,这个会从根目录下启动CMake ,大概会花15分钟左右。 这样将会使用Visual Studio 2015生成工具,和生成Visual Studio工程。目的是在Visual Studio中编译CMake。              在CMake运行后,在out文件中应该有Visual Studio 工程。 运行 msbuild cmake.sln,这将会编译CMake, 你可以在VS2015…

0

使用Visual Studio开发跨平台的iOS应用程序

[原文发表地址]Developing cross-platform iOS application using Visual Studio [原文发表时间]2015/6/4 C ++是一种流行的高级编程语言,可运行在iOS,Android或Windows等所有的移动设备上。有许多因素推动了在这些移动的平台使用C ++,从代码重用到运行时的性能。许多平台定义的应用程序可在这些平台运行如Office,Skype, Dropbox已架构他们的移动解决方案,在某种程度上促进或利用C ++作 为 他们绝大多数的的代码库。这不仅为他们提供了代码重用的优势并且降低了开发成本,而且作为C ++代码直接在硬件上运行, 它具有高速流,快速响应和高性能的体验,这也是他们的最终用户所期望的。然而,在所有这些设备平台上使用C ++这个设想不是那么的乐观, 因为在今天,用户为了实现这一目标需要使用多个IDE,各种工具链和构建系统令人担忧。从VS2015 RC开始,开发人员可以使用Visual Studio作为单一的C ++ IDE满足他们所有的跨平台的需求。这个博客专门地谈论了新推出的 使用Visual Studio开发iOS应用程序的体验。让我们开始吧 。 Getting Started入门 我们当前的iOS开发体验要求在Mac计算机上,这主要是因为法律而非技术的原因。因此,在我们开始之前,不仅需要下载微软的资源(项目和构建二进制文件,模板),而且在Mac上的部件需要安装,你可以跟着这里的向导去设置。 在开发人员使用Visual Studio 做iOS开发之前, 第一步是配对Mac机与运行Visual Studio的实体机。配对可以通过在工具 – >选项菜单中的远程代理进行配置。确保VCRemote agent是在Mac上运行的,然后输入详细信息,如主机名和端口字段等所有的设置。成功配对的最后一件事是设置远程根文件夹,它指向与您机器配对的Mac的VCRemote的位置。配对通过点击“配对”按钮启动,一旦配对我们 就可以用Visual Studio开发我们的第一个iOS应用程序。 The cross-platform ‘iOS’ templates跨平台“的iOS’模板 打开新建工程向导,我们提供的iOS跨平台的模板在Visual C ++\Cross-platform下面。我们允许建立完整的端到端的iOS应用程序与C ++静态和共享库。各种可用的模板如下图所示。在这篇博客中,我们将演示如何使用面向iOS和 Android平台的 OpenGLES应用程序。 下图展示了跨平台的OpenGLES应用程序。OpenGLESApp库文件夹包含了Android native-activity项目和iOS的静态库项目。OpenGLESApp.Shared工程包含用于构建Android的动态共享库和iOS的静态库的共享的OpenGL代码。这些库会在OpenGLESApp.Android.packaging项目和OpenGLESApp.iOS.Application项目中被调用去生成Andr​​oid端到端.apk文件和iOS的.ipa文件。 设置和编辑我的iOS代码 现在,让我们带来OpenGLESApp.shared项目组件的一部分的Cube.c跨平台源文件。作为我们即时体验的一部分,我们提供了的iOS特殊的智能感知,重构和许多的代码定位功能,如代码查看,转到定义。其中的一些功能描述如下图 现在,如果你选择了OpenGLESApp.iOS.StaticLibrary工程环境,你会看到“Cube.c”源代码饰有波浪线,所以让我们先解决这个问题。该波浪线的出现是由于在Windows机器上VS智能感知无法获取OpenGLES头文件。我们目前不集成OpenGLES1头文件在VS直接使用。为了解决这个问题可以从这里下载可公开的ES1头文件,并复制它们到你的VS文件夹里。一旦这个路径被列入“包含目录”就完全设置好了。 以我们目前的经验,一般来说如果开发者想要增加额外不属于VS项目一部分的include头文件,需要确保这些头文件都可以在Mac机上通过Xcode获取,这将会使生成成功,另外这些头文件还需要在Windows机器上可通过VS智能感知去操作。当前我们的VS体验还不能帮助对第三方库的同步,但它确实有助于您创建一个Mac文件夹和Windows文件夹之间的映射。这个映射可以在属性页中定义。下图演示了包含目录和映射目录如何设置来让OpenGLES样本工作。…

1

Native-Activity (安卓) 应用开发

[原文发表地址]Developing Native-Activity (Android) applications [原文发表时间]2014/12/5  8:05AM 概述 Visual Studio 2015 预览版(从这里下载)增加了一种功能,作为跨平台移动开发的一部分,即开发人员可以创建安卓Native Activity应用。安卓跨平台中的安卓Native Activity (API 级别为 9)增加了创建纯粹的C/C++应用的功能。同时在后台还有一些隐藏的Java JNI代码,这些设计是为了抽象细节信息,并让细节信息远离开发者。Native Activity应用很受游戏(例如虚幻4)以及图形密集型(OpenGL)应用的欢迎。这篇博文将引导您体验创建一个Native Activity应用,并经历以下开发周期,包括编辑、编译、调试Native Activity代码。当你完成Visual Studio的这个体验的后,我们欢迎您的想法及任何反馈。 入门指南 在开始创建Native Activity应用之前,请先掌握这个体验所需要的跨平台移动工具。如果你还没有掌握请参考这篇博文,它可以帮你获得经验。掌握这个工具后,让我们开始创建OOTB Native-Activity 应用,从‘Visual C++ – Cross Platform’ 节点下选择一个可用的Native Activity 应用模板。 Native-Activity 解决方案 探究创建的这个模板让我们从解决方案的结构开始。从下面的图中可以看到‘HelloNativeActivity’ 方案有‘HelloNativeActivity.NativeActivity’和 ‘HelloNativeActivity.Packaging’ 两个工程。NativeActivity工程用来封装这个方案中的所有具体的C/C++代码。 通过NativeActivity 工程的属性页面,用户可以设置工程的属性例如指定安卓API的级别、库的名称以及平台的工具集。请注意作为我们的跨平台移动启用的一部分,当指定安卓平台时我们已经提供了GLANG工具链(通过本机开发工具包(NDK) 使它可用)支持。这些支持包括增加了在属性页面简单提供‘代码生成’的编译器编译标志、‘优化’、以及”预编译头文件”的使用。 再看一下NativeActivity.Packaging 工程,它是HelloNativeActivity方案的第二个工程,通过调用Ant编译系统来绑定动态共享库并创建一个完整的安卓应(.apk)。因为这是一个NativeActivity方案,所以这个工程没有包含任何 Java代码但是作为Ant编译调用的一部分它可以很好的用来编译Java代码。同时请注意除此之外其它的文件的详细信息,例如安卓Manifest文件(AndroidManifest.xml),这个工程中也包含Ant 编译(build.xml)。 编辑-〉编译-〉调试周期 为了加快编辑-编译-调试周期,因此设计了跨平台移动体验。作为这个体验的一部分,针对安卓平台时,Clang工具链中增加了全面支持智能感应功能。这个是除了其它普通代码创建功能如重构,快速导航等功能外新加的功能。下图描述了在写代码时的不同功能。 接下来我们一起看一下NativeActivity应用的源文件。我们先看main.cpp源文件,‘android_main’ 功能就是任意native-activity应用的入口函数功能,以及运行事件轮询来接收输入事件以及实现其它功能。我们来编辑这个源文件,在特定的调试目标(模拟器/设备)添加以下代码段并运行,记录传感器的数量。你可以把下面这段代码添加在‘if (state->savedState != NULL)’ 条件判断开始之前。  …

0