(本文是基于老版本的VS和Xamarin,而VS2017已经集成了Xamarin,所以,本文已经过时,最新的Xamarin开发介绍请参见 使用 Xamarin开发手机聊天程序 。)

  如果是.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 聊天小程序。

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

  1. PHP扩展开发系列01 - 我要成为一名老司机

    PHP扩展开发系列01 - 我要成为一名老司机 1. 关于扩展的教程貌似挺全了,为啥还写? 记录下我写扩展的历程 自认为会写的更容易理解 我的宗旨就是 "先用再识" 代码写着写着就 ...

  2. python ai 教学_【Python AI教学】从零开始学Python AI开发系列01

    原标题:[Python AI教学]从零开始学Python AI开发系列01 欢迎开启新的旅程. 从2016年开始,AI人工智能的热潮扑面而来.而在机器学习和深度学习领域,Python位于最受欢迎的编程 ...

  3. Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题

    转载:http://blog.csdn.net/iamlazybone/article/details/17191539 懒骨头(http://blog.csdn.net/iamlazybone  Q ...

  4. 001 初学android开发,从搭建环境开始(jdk+eclipse+android sdk+windows7)

    001 初学android开发,从搭建环境开始(jdk+eclipse+android sdk+windows7) 毕业就一直从事.Net开发,之后做管理,做产品设计,疏于编码. 最近打算买个小米手机 ...

  5. Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应...

    2019独角兽企业重金招聘Python工程师标准>>> 上节说到cygwin下成功编译出so文件,下面我们要把游戏运行在android上. 开始干活! 其实步骤可以参考 Cocos2 ...

  6. java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw

    java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw 本源码技术栈 ...

  7. QtCreator集成开发环境编译调试VLC

    QtCreator集成开发环境编译调试VLC 作者:lovey599 本文讨论如何用QtCreator编译并调试VLC源代码.你可以点击此处下载vlc-1.1.12.tar.gz源代码,也可以自行去官 ...

  8. cmake 安装_vscode不写一行配置,用cmake傻瓜式搭建C++编译调试环境

    网上看了一些用vscode+cmake搭建C++编译调试环境的帖子,基本差不多,都要写一个配置文件.其实根本不用这么麻烦.安装的工具是一样的,但是操作可以更加简单. VSCode + CMake超简单 ...

  9. 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

    一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...

最新文章

  1. Python数据结构与算法(第一天)
  2. Spring和Hibernate的自定义审核日志
  3. arcgis api for js入门开发系列十八风向流动图
  4. 清除float的方法
  5. 【Elasticsearch】ElasticSearch Cluster的一致性问题
  6. String和StringBuffer的区别
  7. 2、单机运行环境搭建之 --CentOS-6.5安装配置Tomcat8
  8. 想自学HCIE,有什么好的书籍推荐吗?
  9. C语言:计算个人所得税
  10. ERR_CONNCETION_CLOSED的问题
  11. “细雨湿衣看不见,闲花落地听无声”---超强作文
  12. 3D打印技术如何影响未来
  13. VSCODE配置C/C++
  14. 如何在WhatsApp中引用某人
  15. create-react-app :无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\create-react-app.ps1,因为在此系统上禁止运行
  16. 简易方法制作GIF图(mp4转GIF)
  17. 【SemiDrive源码分析】【MailBox核间通信】42 - 基于Mailbox 实现的 mailbox_demo 应用程序(RTOS Android侧通信实现)
  18. css的各种主要选择器
  19. fl studio 21打不开,FL工程文件也打不开怎么办?
  20. 关于场景烘培以及灯光使用的基础文章

热门文章

  1. Caffe + Ubuntu 15.04/16.04 + CUDA 7.5/8.0 在服务器上安装配置及卸载重新安装(已测试可执行)
  2. 定义[nextTick、事件循环]
  3. Java生鲜电商平台-B2B生鲜的互联网思维
  4. hdu 5273 Dylans loves sequence 逆序数 区间dp
  5. Java的四种引用,强弱软虚,用到的场景(转+补充)
  6. SQL select查询原理--查询语句执行原则转
  7. 用STS创建Maven的Web项目转
  8. 25款操作系统全面接触 [2]
  9. datagrid 的标题的内容不对应整齐
  10. 17种常用的JS正则表达式 非负浮点数 非负正数