开发Xamarin-Android本机应用程序

沙马林 已经迅速成为创建跨平台移动应用程序的一种流行方式,促进了真正的代码重用,同时允许开发人员创建本机*(本机在这里是指平台的自然)用户界面,通过允许应用程序利用特定于平台的硬件加速,使他们能够访问底层平台/设备公开的全部功能,并保证本机*性能。另外,Xamarin完全集成到visualstudio中,允许开发iOS、Android和Windows应用程序。

null

那么这对我们真正的本土(C/C++)开发者意味着什么呢?如果你看看Xamarin目前在android平台上的做法,它允许 利用Android原生(C/C++)库 在构建终端Xamarin Android应用程序时。

不过,这种方法目前涉及到在visualstudio中处理xamarinandroid项目文件,并添加指向xamarinandroid指南中提到的预构建动态共享库的项组。通常,这个原生动态共享库是在另一个IDE(通常是Eclipse)中开发的,这就给开发者们现在不得不担心使用两个IDE并从添加的复杂性中吸收乐趣,特别是在本地(C/C++)库层中工作时编辑、构建和调试它们的应用程序时,增加了更多的复杂性。

使用Visual Studio 2015 CTP 6,这不再是事实,开发者现在可以在VisualStudio中创建这个本地(C/C++)库,我们(C++跨平台移动团队)一直在与XAMARIN合作,以便在开发XAMARIN Android原生应用程序时提供流畅的体验。本博客重点介绍了VisualStudio2015CTP6提供的一些支持,虽然所有的工作还没有完成,但我们很高兴您能试用并向我们提供反馈。

入门

作为关注这个博客的先决条件,开发者需要安装 Visual Studio 2015 CTP6 使用Visual C++跨平台移动位和XAMARIN可选包。一旦安装了这些位,您就可以完全在visualstudio中开始开发xamarinandroid本机应用程序了。让我们从创建一个Xamarin Android项目开始。出于这个博客的目的,让我们从文件->新建项目菜单中选择最简单的Xamarin Android模板“Blank App(Android)”,并创建一个名为 ‘示例’ .

图片[1]-开发Xamarin-Android本机应用程序-yiteyi-C++库

在现有解决方案旁边,让我们从 Visual C++——跨平台节点 ‘叫它’ 国家图书馆 ’.

图片[2]-开发Xamarin-Android本机应用程序-yiteyi-C++库

一旦我们完成,我们的解决方案应该有两个项目(XAMARIN Android项目和C++动态共享库项目)在解决方案资源管理器中。

图片[3]-开发Xamarin-Android本机应用程序-yiteyi-C++库

从Xamarin Android项目引用Android本机库

正如在这个博客的摘要中提到的,传统上,利用原生android二进制文件的开发人员必须在其他IDE中构建它们,然后在Xamarin android项目中利用这些预先构建的android原生二进制文件,他们必须在Xamarin android项目中混日子。通过我们所做的工作,引用本机二进制文件就像在 XamarinNativeExample公司 ‘和’ 国家图书馆 ‘项目。该过程如下图所示:

图片[4]-开发Xamarin-Android本机应用程序-yiteyi-C++库

图片[5]-开发Xamarin-Android本机应用程序-yiteyi-C++库

添加引用后,在“引用”部分下 XamarinNativeExample公司 ‘项目’ 国家图书馆 ‘应找到条目。人们会注意到这个引用当前没有被解析,这是一个已知的问题,即使这个引用在设计时没有解析,但是构建的应用程序包文件(.apk)将包含本机库。

接下来,让我们继续在本机库中添加一些代码,并从Xamarin Android项目中调用它。在’ 国家图书馆.cpp ‘中的源文件’ 国家图书馆 ‘项目,添加以下函数。每次按下按钮时都会调用此函数 在我们的Xamarin Android项目中定义的。

内景 clickCount=1; 内景 getClickCount(){

返回 单击Count++;

}

从Xamarin Android项目的 XamarinNativeExample公司 ‘中添加以下代码’ 主活动.cs ‘文件。

[ 德林波特 (“ 图书馆.so “)] 公共外部静态int getClickCount();

此Dllimport属性将在应用程序运行时加载android本机库。要使用此属性,请使用“using System.Runtime.InteropServices;”命名空间在源代码中也是必需的。接下来,让我们在“OnCreate”函数中修改现有的源代码行。OnCreate方法是创建活动时要调用的第一个方法。OnCreate函数中的这个修改将允许我们在用户单击按钮时从本机库调用getClickCount函数。

按钮。单击+= 代表 {按钮.文本= 一串 。格式(“ {0}点击! “, getClickCount());};

现在我们差不多完成了,但是在我们继续构建解决方案并测试新的Xamarin Android本机应用程序之前,需要适当地设置活动解决方案平台(ARM或x86,取决于调试目标的选择),如下图所示。

图片[6]-开发Xamarin-Android本机应用程序-yiteyi-C++库

最后,让我们通过查看NativeLibrary项目属性页中的“Target Name”属性来确保正确命名了“NativeLibrary”。

图片[7]-开发Xamarin-Android本机应用程序-yiteyi-C++库

在这一点上,我们都准备好了,将我们的应用程序构建/部署到Android设备或模拟器上。 如果您在本博客之后遇到任何问题,可以在本博客中找到解决方案 在这里 .

除了能够使用和构建一个本机android库在一个 沙马林 Android应用程序。visualstudio体验还允许开发人员轻松调试Xamarin中使用的本地android库代码 Android应用程序。为了演示这一点,继续我们的示例,为 示例’ 项目并在“Android选项”菜单中选择“本机”调试器选项,如下图所示。

图片[8]-开发Xamarin-Android本机应用程序-yiteyi-C++库

接下来,让我们来谈谈 国家图书馆.cpp ‘在我们的 getClickCount() ‘函数并开始调试(F5)。一旦应用程序启动,在每个按钮上单击我们设置的断点。

图片[9]-开发Xamarin-Android本机应用程序-yiteyi-C++库

虽然这只是一个简单的示例,但所有其他调试功能(如表达式求值、监视窗口、自动窗口)也可以使用这种体验。

本博客将让您深入了解VisualStudio团队与Xamarin合作所做的工作,以便在构建XamarinAndroid本机应用程序时获得流畅的体验。我们希望你们能尝试一下这种体验,并提供反馈。此外,如果您想让我们在我们的博客上谈论一个特定的话题,请让我们知道。  作为提醒,本CTP版本的目标是让我们收集反馈并向您学习。我们也在考虑未来对其他平台的支持,您的反馈对我们产品的发展方向至关重要。

分享反馈很容易!提供功能建议 用户语音 ,记录你在我们的 连接 现场和 给我们发一封信 微笑还是皱眉 从IDE内部。你也可以在下面留言。除此之外如果你是 看 到 有 一 与我们的产品团队直接对话 关于这个话题,请通过电子邮件联系我们( aasthan@microsoft.com ). 我们很想知道更多,并与您联系。

XamarinNativeExample.zip文件

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