Xamarin 跨移动端开发系列(01) -- 搭建环境、编译、调试、部署、运行

   如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!好了,废话不多说,就开始吧,本文将描述基础环境的搭建,以及将应用在android环境中调试、发布、运行,iOS部分将在后面的文章中专门讲解。

一.搭建环境

1. 安装 VS2015。

2. 安装 Xamarin。我安装的是目前的最新版本:Xamarin.VisualStudio_4.2.0.703.msi。

3. 安装JDK:我安装的是目前的最新版本:jdk1.7.0_71。

4. 下载 Android SDK。

(1)下载完成后, Android SDK 目录下有两个exe:AVD Manager.exe 和 SDK Manager.exe。

(2)SDK Manager 用于管理不同版本的SDK,在其管理界面中可以下载新版本的SDK或升级旧版本的SDK。

    

    我下载了版本号的5.1.1,6.0,7.0的SDK(其文件目录在子文件夹platforms下)。这些版本的SDK会在项目编译时用到,以及安卓模拟器也会用到它们。

(3)AVD Manager.exe 用于管理安卓模拟器。

   

    与SDK的版本号对应,我创建了三个安卓模拟器,供调试时使用。

5. 在VS中配置Xamarin选项。

     

  由于我暂时没有用到原生的安卓开发,所以,我没有配置NDK。

二. 新建Xamarin.Forms项目、编译、部署、调试

  Xamarin.Forms 是Xamarin提供的一个套件,用于跨移动平台的Form应用开发,所以,如果是使用Xamarin开发App,那么,Xamarin.Forms 将是很好的选择。

1.新建一个Cross-Platform跨平台项目,选择Xaml App(Portable)。

  

   Xaml App 与 普通的App的区别在于, Xaml App是使用Xaml文件来控制Form上的控件的布局的。

2.项目新建成功后,会在解决方案管理器中,生成三个项目。

   

   ESFramework.XamarinDemo 是可移植的类库,App的绝大部分逻辑和UI都是在其中完成。

   ESFramework.XamarinDemo.Droid 对应了安卓版本,ESFramework.XamarinDemo.iOS 对应了iOS版本,它们都引用了 ESFramework.XamarinDemo 项目。

   对于一般简单的应用而言,只需要在ESFramework.XamarinDemo中编写代码就可以了,ESFramework.XamarinDemo.Droid 和 ESFramework.XamarinDemo.iOS中的代码几乎不用动。   

3.编译 ESFramework.XamarinDemo.Droid 项目

   

  在项目属性面板中,要选择编译所使用的安卓SDK的版本号,我选择的是6.0。

4.部署、调试

  编译成功后,就可以尝试部署到虚拟机,并运行调试了。

(1)启动安卓虚拟机。

  运行上述的AVD Manager.exe ,我选择了自己创建的and6虚拟机,点击界面右侧的Start按钮,启动一个虚拟机实例。

  

(2)部署并运行

  在VS上的工具栏,选择刚才启动的虚拟机实例and6,点击调试按钮(绿色的三角形),即可开始部署、运行的流程。(注意,要选择Debug模式)

   

(3)调试

  部署运行成功后,模拟器就会显示demo App 的UI界面:

    

  此时,可以在源码中加入断点开始调试程序了。

三. 发布 apk

1.将项目切换到Release。

2.设置清单信息Manifest

  

  包括:应用的名称、apk包的名称、图标、版本号、权限等。

3.设置Linker

  

  Linking 设置为none,意味着要将所有的SDK打包到apk中,这样,一个apk至少是40多M。

  Linking 一般设置为 SDK Assemblies Only,表示 apk 使用手机中自带的SDK。

4.Archive - 存档apk

  

  在发布apk之前,先要Archive得到apk。注意:Archive得到的apk不能直接部署到手机真机,运行会闪退。还需要经过最后的Distribute正式发布。

5.Distribute

  在Archive成功后,会出现如下界面:

  

    点击Distribute按钮,进入发布apk的流程。首先,要对apk进行签名:

  

  如果是第一次走这个流程,先要点击绿色的“+”,创建一个密钥文件,然后选择它,再点击“Save As”按钮,即可保存签名后的apk。  

6.拷贝到真机

  将上述得到的ESFramework.XamarinDemo.apk,拷贝到真机,就可以安装了。晚装完毕,点击图标,即可运行我们的demo App了。

四.结语

  以上的整个流程是我们在为ESFramework通信框架的Xamrain版本实现一个入门Demo时,完整的记录,希望对刚刚开始研究Xamrain开发的朋友有所帮助。

  后续的文章,我们将介绍这个Demo的后续开发过程,基于Xamarin实现手机与PC互通的的IM 聊天小程序。

 

时间: 2024-09-24 12:32:55

Xamarin 跨移动端开发系列(01) -- 搭建环境、编译、调试、部署、运行的相关文章

[cocos2d-x]游戏开发系列教程-搭建cocos2d-x的windows开发环境

1.在上一篇中我们成功运行了HelloCpp和TestCpp工程,我们到目录cocos2d-x-2.2.1\Debug.win32下 查看生成的文件,在我电脑上绝对路径是H:\source\cocos2d-x-2.2.1\Debug.win32. 我们可以看到其中生成了很多文件,我们把其中所有的dll拷贝到系统目录中,如果是32位系统, 将dll拷贝到C:\Windows\System32,如果是64位系统就将dll拷贝到C:\Windows\SysWOW64 . 2.然后在cocos2d-x-

【Xamarin开发 Android 系列 1】环境部署搭建

原文:[Xamarin开发 Android 系列 1]环境部署搭建 开篇自然先扯一段,近几年移动互联网如果熊猫零食一样,蔓延迅速.楼主身为一个微软忠实的粉丝,无奈,老爹不给力.Silverlight开发的WP7 ,Windows Phone 系列没成功, 收购诺基亚 ,搭载WP8 ,依然Windows Phone  ,结果Xaml依然不温不火.最后还把诺基亚干挺了.想想当时手握N91 的吊样儿..时过境迁. 主流移动互联网平台, 1 Android 2 IOS 3???? 地铁 大街上,凡是走的

【Xamarin挖墙脚系列:使用Xamarin进行Hybrid应用开发】

原文:[Xamarin挖墙脚系列:使用Xamarin进行Hybrid应用开发] 官方地址:https://developer.xamarin.com/guides/cross-platform/advanced/razor_html_templates/ 使用Xamarin进行网页形式的本地APP开发,感觉有点不爽,不过为前端开发人员提供了开发APP的入口. 呈现引擎支持HTML  和ASP.NET MVC3的Razor引擎! Razor引擎是个好同志! 不过,创建Hybrid应用的框架不仅仅是

Silverlight for Windows Phone 7开发系列(1):环境搭建

前言 随着Windows Phone设备发售日期的临近,作为微软的全新智能设备平台越来越受到关注.我也把重点从Windows Mobile与Windows Embedded CE慢慢转向Windows Phone的开发.因此编写Silverlight for Windows Phone 7开发系列文章,从简单到深入的讲述Silverlight for Windows Phone 的开发.这个系列主要讲述一个网络收音机的开发过程,这一网络收音机程序涉及到Silverlight控件的使用,图片的操作

基于Vue2的移动端开发环境搭建详解_javascript技巧

前言 vue2.0发布了,那么还在用vue1.x的你,是不是也有所心动呢?下面这篇文章就给大家详细介绍基于Vue2的移动端开发环境搭建的详细步骤,下面来一起看看吧. 一.vue-cli 首先还是介绍我们的脚手架工具,因为它能让我们省去大部分的配置时间,这里只给出简单步骤,保证你的命令顺利运行的前提是安装最新版本的 node 和 npm,这里不赘述升级流程 全局安装 vue-cli npm install vue-cli -g 借此也全局安装一个 webpack npm install webpa

【APACHE MINA2.0开发之一】搭建APACHE MINA框架并实现SERVER与CLIENT端的简单消息传递!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/apache-mina/831.html Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏向服务器Server端开发了,Hibernate.MySQL等都是为了Server端Mina开发而做的

移动端开发:架构那点事!

此前,58 同城的技术委员会执行主席沈剑在 OneAPM 的技术公开课上分享过一个主题,「好的架构不是设计出来的,而是演技出来的」.因为对很多创业公司而言,随着业务的发展,网站流量或者移动端用户都会经历不同的阶段.前期的时候,很难去设计一个百万或者千万级并发的架构,所以后期往往不断对架构进行更新迭代. 当然,在这里也推荐一篇文章<移动开发中的痛点>,本文是 infoQ 举办线下聚会的一次讨论整理,当时参与的讨论者包括唐巧.郭亮.郭虹宇.邓宇光.代码家等国内知名移动开发者.其中就谈及了 MVC

2016届360公司PHP服务端开发笔试和面试之所得所感

        这是一篇叙述自己在360公司参加笔试和面试的过程,可能面试的职位并不是你所学的方向,但是如果你能从中学到些什么或者吸取我的教训,那么作者就非常知足了.本着"学习别人是怎么失败的,活着出来的人才能成功"的目标,我从三个方面进行叙述:         第一部分:360公司笔试题         第二部分:面试过程         第三部分:注意事项及心得体会         同时,真心感谢360公司,我非常向往的一个公司.也非常感谢给我面试的那位大哥,让我真的学到了很多东西

iOS开发系列--通知与消息机制

概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地通知:另一类是推送通知,也叫远程通知.两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同.今天就和大家一块去看一下如何在iOS中实现这两种机制,并且在文章后面会补充通知中心的内容避免初学者对两种概念的混淆. 本地通知 推送通