序言:

  在博客园注册了已经有2年多了,快三年了。从开始学习这一行开始就在博客园注册了这个账号。至今也还没有写过一篇随笔,大多时候都是在园子里头潜水,看大牛写的文章,学习。

  写博客不为啥,就是自己对自己学习的一个总结。从去年10月份开始学习的xamarin,没有安卓基础,就只有写了2年.net基础。然后就直接开始用于商业项目,就我一个人。我的天呐,

  把人给折磨疯了,不过到现在为止呢,已经做完了第一个,开始第二个了。

Andriod开发环境配置:

  我用的是VS2015 update2版本的,今年Build2016大会上微软宣布了免费Xamarin,对c#开发者无疑是一个福利。附上VS2015下载地址:

  ed2k://|file|cn_visual_studio_enterprise_2015_with_update_2_x86_x64_dvd_8510289.iso|7633639424|E0AFC01631C37BD3046EDBBC30FAB8CC|/
  SHA1: 93651E6653EB39D6B01EFE8543EA2204B7B0EBD3
 
有需要的朋友可以下载,安装的时候需要翻墙,建议单独下载AndroidSDK。找一些国内的镜像。

第一个安卓程序:

1.新建选择空白APP

打开后会发现有一个Resource文件夹,里面有drawable,layout,values三个文件夹

drawable:存放一些资源文件,如图片

layout:屏幕布局(或屏幕的一部分)的XML文件

values:很多种类型的资源的XML文件,

colors.xml 定义color drawable颜色的字符串值(color string values)

strings.xml定义字符串(string)值。

styles.xml 定义样式(style)对象。

2.打开Main.axml文件,会发现如下的界面。很丑陋。后面会讲到如何美化界面。这篇只为如何运行起来第一个AndroidAPP。

点击界面下方的source会发现如下的界面布局文件,有WPF编程的同学,应该看起来和眼熟。虽然Xamarin 支持手动拖拽控件,

不过个人觉得太low了,很多好看的界面布局还是要自己编写的。

3.既然介绍了main.axml,接下来介绍与之对应的Activity,界面布局叫做Main,那对应的Activity布局名称肯定是MainActivity。

4.接下来就是如何运行起来?既然是Android APP ,总不可能运行在Iphone,WIndowsPhone上吧,自然需要一个android手机。

如果身边没有的话,可以用android模拟器。模拟器的话,我推荐使用各位用:GenyMotion或者微软的Emulator,谷歌的虚拟机

那叫一个坑,真是谁用谁知道。附上Genymotion官方地址:http://www.genymotion.net/,需要注册下载,分个人免费版和企业版。

PS:建议用虚拟机,真机调试的话,还得安装手机驱动,麻烦。

附上一张Genymotion启动图:

如果你能看到一下界面,恭喜你,至少你Android环境至少配置对了。

5.试着调试下程序,在MainActivity的button.click打上断点,会发现进入了调试。

总结

用C#开发安卓就是这么简单,希望广大C#开发者能够大力支持,能够好好的扩大这个生态圈。

这也是小弟第一次写博文,格式实在不知道怎么排,见谅。后期会陆续写一些Xamarin android方面的文章,

会写自己从零开始学习Android并用于商业项目中遇到的问题,和一些遇到的问题。

Xamarin Android 之起始篇的更多相关文章

  1. 跟Google学习Android开发-起始篇-构建你的第一个应用程序(4)

    说明:此系列教程翻译自Google Android开发者官网的Training教程,利用Chome浏览器的自动翻译功能作初译,然后在一些语句不顺或容易造成误解的地方作局部修正.方便英文不好的开发者查看 ...

  2. 跟Google学习Android开发-起始篇-用碎片构建一个动态的用户界面(3)

    4.3 构建一个灵活的用户界面 当设计你的应用程序要支持大范围的屏幕尺寸时,你可以在不同的布局配置中重用碎片,来根据可用的屏幕空间优化用户体验. 例如,在手持设备上,它可能是适应来在一个单窗格用户界面 ...

  3. 跟Google学习Android开发-起始篇-与其它应用程序交互(1)

    6 与其它应用程序交互 一个Android应用程序通常有多个活动.每一项活动都将显示一个用户界面,允许用户执行某种特定任务(如查看地图或者照片).为了把用户从一个活动带到另一个,你的应用必须使用Int ...

  4. 跟Google学习Android开发-起始篇-与其它应用程序交互(2)

    6.2从活动获取结果 启动另一个活动不必是单向的.您也可以启动另一个活动,并接收一个结果回来.为了接收一个结果,调用startActivityForResult()(而不是startActivity( ...

  5. Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1)

    Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1) RecyclerView是比ListView和GridView更为强大的布局视图, ...

  6. Xamarin.Android Binding篇

    前言 趁着失业了,闲着没事儿学习了下Xamarin.Android binding,在以往的开发中,我相信很多人都遇到过binding的坑,也不例外, 我也踩了很多雷,好在认识了个大佬,指导了很多  ...

  7. Xamarin.Android开发实践(十一)

    Xamarin.Android之使用百度地图起始篇 一.前言 如今跨平台开发层出不穷,而对于.NET而言时下最流行的当然还是 Xamarin,不仅仅能够让我们在熟悉的Vs下利用C#开发,在对原生态类库 ...

  8. Xamarin.Android

    Xamarin.Android之使用百度地图起始篇 一.前言 如今跨平台开发层出不穷,而对于.NET而言时下最流行的当然还是Xamarin,不仅仅能够让我们在熟悉的Vs下利用C#开发,在对原生态类库的 ...

  9. Xamarin.Android和UWP之MVVM的简单使用(二)

    0x01 前言 前面一篇,Xamarin.Android和UWP之MVVM的简单使用(一),主要讲了MvvmLight的简单使用 这篇主要讲讲MvvmCross的简单使用,例子的话,还是和上篇的一样. ...

随机推荐

  1. ES6的一些常用特性

    由于公司的前端业务全部基于ES6开发,于是给自己开个小灶补补ES6的一些常用特性.原来打算花两天学习ES6的,结果花了3天才勉强过了一遍阮老师的ES6标准入门(水好深,ES6没学好ES7又来了...) ...

  2. 获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)

    前面我们已经讨论了 DHCP agent 的配置以及 namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程. 在创建 insta ...

  3. HTML5笔记2——HTML5音/视频标签详解

    音视频的发展史 早期:<embed>+<object>+文件 问题:不是所有浏览器都支持,而且embed不是标准. 现状:Realplay.window media.Quick ...

  4. linux下配置matlab运行环境(MCR)

    在安装好的matlab下有MCR(MatlabCompilerRuntime)在matlab2011/toolbox/compiler/deploy/glnxa64下找到MCRInstaller.zi ...

  5. 【Star CCM+实例】开发一个简单的计算流程.md

    流程开发在CAE过程中处于非常重要的地位. 主要的作用可能包括: 将一些经过验证的模型隐藏在流程中,提高仿真的可靠性 将流程封装成更友好的界面,降低软件的学习周期 流程开发实际上需要做非常多的工作,尤 ...

  6. 【腾讯Bugly干货分享】JSPatch 成长之路

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/579efa7083355a9a57a1ac5b Dev Club 是一个交流移动 ...

  7. Enterprise Integration Pattern - 组成简介

    近些年来,越来越多的Web应用正在逐渐向大型化的方向发展.它们通常都会包含一系列相互协作的子服务.在开发过程中,如何让这些子服务协同工作常常是软件开发人员所最为头疼的问题,如各个子服务之间的数据表示不 ...

  8. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  9. Hadoop相关日常操作

    1.Hive相关 脚本导数据,并设置运行队列 bin/beeline -u 'url' --outputformat=tsv -e "set mapreduce.job.queuename= ...

  10. 遍历dynamic的方式

    一.遍历ExpandoObject /// <summary> /// 遍历ExpandoObject /// </summary> [TestMethod] public v ...