当前位置: 首页 > 编程日记 > 正文

Xamarin开发Anroid应用介绍

第1章  Xamarin开发Anroid应用介绍

如今智能手机已经盛行了好几年,而针对这些智能手机的软件开发也变得异常火热。但是在Android平台下只能使用Java开发,iOS平台下也只能使用Objective-C或Swift开发本文选自Xamarin Android开发实战上册

对于那些C#程序员却只能眼看着这些火热的平台流口水。在几年前只能重新学习一门新的语言,才可以进入这些智能手机开发行业。现在,我们有了Xamarin。C#程序员不需要了解其它语言,就可以开始编写Android、iOS或Windows Phone平台下的软件。在本章中,读者将了解使用Xamarin开发Android应用的必备知识。

1.1  Xamarin基本知识

在使用C#开发Android应用时,必须使用Xamarin。在开始使用Xamarin前,需要对Xamrin有一定的了解本文选自Xamarin Android开发实战上册

1.1.1  Xamarin发展

Xamarin由Mono、Mono Touch和Mono For Android开发而来。Xamarin的出现主要是为了实现C#开发跨平台的移动应用。从现在也可以看出,Xamarin确实实现了跨平台的应用开发。实现了一次编写,多平台发布。Xamarin是Mono项目的一个分支,但Xamarin并不像Mono一样是开源的,Xamain是一个商业项目,在使用时需要缴纳一些费用。

早在2000年4月份,微软公司发布了他们的.NET框架。而Miguel De Icaza的Ximian开始审查其是否可以支持Linux版本。经过一年的审查,在2001年7月19日,Mono开源项目开始启动。后来,Ximian被Novell公司在2003年8月4日收购,而Novell则在2011年4月归于Attachmate之下。在归于Attachmate之下后,Attachmate裁掉了很多人,其中包括大量的Mono开发者。这样,一些Mono中的问题也搁置起来。

到了2011年5月6日,Miguel De Icaza在他的博客上宣布Mono将通过Xamarin开发和支持。这意味着一个新的公司会发布一个适用于移动开发平台的产品。最后,Miguel De Icaza将最初的Mono团队带到了新的公司中。随后在解决了Mono Touch和Mono for Android的问题后,Xamarin也提供了完整的技术支持。

在2012年12月,Xamarin发布了Xamarin.Mac和为C#程序员提供的MonoDevelop集成开发环境。在2013年2月,Xamarin宣布发布Xamarin 2.0。该发行版包含了两个部分:Xamarin Studio,其中包含了过去Xamarin的所有内容,包括iOS、Andriod和Apple OS X开发工具;集成了Visual Studio中微软的.NET框架,并允许Visual Studio在Windows系统中,使用并创建iOS和Android的应用。

在整个发过程中,Miguel De Icaza功不可没,没有Miguel De Icaza也没有Xamarin的今天。而Xamarin也成了C#程序员的福音,并且为C#跨平台的功能提供了可能。

1.1.2  Xamarin工具

Xamarin提供了很多产品和工具,如Xamarin.Forms、Xamarin Test Cloud、Xamarin for Visual Studio、Xamarin Studio、Xamarin.Mac和.Net Mobility Scanner。而最主要的就是使用Xamarin平台开发程序。

q  Xamarin Platform:它是Xamarin 2.0,发布于2013年2月,将以前单独的iOS、Andriod和Mac OS X开发工具统一到一个平台中。Xamarin.iOS和Xamarin.Andriod使得在Windows上可以通过Xamarin Studio或Visual Studio开发本地的iOS、Andriod和Windows应用。开发者可以重复利用自己的C#代码到不同的平台上,并且不需要做太多的修改。

q  Xamarin.Forms:在2014年5月8日被引入Xamrin 3中。它允许使用便携式控制子集映射到本地控制Android、iOS和Windows Phone。

q  Xamarin Test Cloud:Xamarin的测试云,可以模拟真实不同机型的UI操作,用于测试用户的应用是否可以正常运行。

q  Xamarin for Visual Studio:Xamarin申明该软件只包含iOS、Andriod和Windows,IDE插件,该插件主要用于Visual Studio,允许程序员通过Visual Studio创建并运行iOS、Andriod和Windows应用。

q  Xamarin Studio:Xamarin标准的移动端IDE平台。作为Xamarim 2.0的一部分发布于2013年。

q  Xamarin.Mac:这是Mac OS下的一款开发软件,该软件可以在Mac OS中进行开发移动端程序,不论是iOS还是Andriod。

q  .Net Mobility Scanner:.Net Mobility Scanner可以让开发看到自己的.NET代码中有多少内容是可以运行在其它系统中的,特别是iOS、Andriod和Windows Phone。该功能使用了Silverlight并且是免费的本文选自Xamarin Android开发实战上册

转载于:https://www.cnblogs.com/daxueba-ITdaren/p/4397677.html

相关文章:

忘记Rxjava吧,你应该试试Kotlin的协程

0.前言 协程以前一直是Kotlin作为实验性的一个库,前些日子发现1.3版本的kotlin relese了协程,所以就找时间研究了一下,本来早就想写这篇文章了,但是因为离职换工作的原因,迟迟未能动笔,这两天终于算搞完了&…

数据可视化相关网站

D3 gallery Gallery / D3 / Observable Flowing Data / NYTimes / … FlowingData | Data Visualization and Statistics Data Video Explorer Data Video Explorer 配色网站 配色网站 Material Design Color, Flat Colors, Icons, Color Palette | Material UI Colo…

【2012天津区域赛】部分题解 hdu4431—4441

1001: 题意:给你13张麻将牌,问可以胡哪些张 思路: 枚举可能接到的牌,然后dfs判断能否胡 1002: 题意: 已知n,m 求 n的所有约数在m进制下的平方和 做法:队长用java高精度写…

彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想

OkHttp 现在统治了Android的网络请求领域,最常用的框架是:Retrofitokhttp。OkHttp的实现原理和设计思想是必须要了解的,读懂和理解流行的框架也是程序员进阶的必经之路,代码和语言只是工具,重要的是思想。 在OKhttp 源…

访问 Microsoft SQL Server 元数据的三种

上海微创软件有限公司 肖桂东适用读者:Microsoft SQL Server 中、高级用户元数据简介元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例、图书馆目录卡和名片…

apply()智用:需要几个参数但只有一个参数数组

比奇堡的居民海绵宝宝,派大星,蟹老板正在开party let arr [SpongeBob,Patrick,Mr.Crab]; 如果章鱼哥来了,珊迪也来了 arr.push(Squidward Tentacles,Sandy); 此时一共派对有5人 如果章鱼哥和珊迪一起来了 arr.push.apply(arr,[Squidwar…

HTML转WORD WORD转PDF--来源网络

从网上找的代码,先收藏下。 功能:实现HTML转WORD,WORD转PDF view source print?using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using Syst…

正则表达式小结

基础 数量匹配 *代表{0,} 代表{1,} ?代表{0,1} [0-9][0-9]{1,} 表示匹配0~9中的任意数字,并且至少1位。 [0-9]*[0-9]{0,} 表示匹配0~9中的任意数字,并且可以是0位(不存在)。 [0-9]?[0-9]{0,1} 表示匹配0~9中的任意数字&…

Log控制台打印设置

android Log.isLoggable方法的使用 android 动态控制logcat日志开关,通过Log.isLoggable(TAG,level)方法动态控制,1.添加日志的时候加入判断, String TAG"Volley"; boolean isDbugLog.isLoggable(TAG, Lo…

JavaScript 定义类时如何将方法提取出来

现在我们有一个海洋生物类 function marineLife(name,job,friend){this.name name;this.job job;this.friend friend;this.introduceMyself function(){console.log(大家好!我叫this.name,我是一名this.job,我最好的朋友是this.friend);} } 让我们用这个类新建…

错误:Error #2032解决方案

问题: Error #2032错误要访问外部数据,必须信任此文件。 现象: 要访问外部数据,必须信任此文件。 对于 PDF 文件,在 Adobe Reader 中,单击“Edit”(编辑)>“Preferences”&#…

[转]c# 泛类型(泛型) 以及强类型与弱类型的 理解及优化

[泛型的概念](1)没有泛型的时候,所有的对象都是以object为基础,如果要使用时必须进行强制类型转换,如果对于值类型,则会导致不断拆箱装箱的过程,对系统消耗很大。(2)使用…

docker宿主机访问docker容器服务失败

2019独角兽企业重金招聘Python工程师标准>>> 原因: 因为docker的虚拟ip网段是172.17.*。*与局域网的ip网段172.17冲突了,所以有两种方式: 解决方法: 一、 修改docker网卡信息,将网段改为与局域网不同的即可…

从变量地址到指针再到指针变量

标题中的3个概念:变量地址、指针and指针变量是依次出现的,逐个确定就可以明晰到底什么是我们常说的指针(其实是指针变量) 首先,变量在本质上是一段存储空间,既然是存储空间,就必有地址,一般每个字节有一个…

Lua bind 和 conf 实现

Lua ,语法简单(极像javascript), 移植性好(纯C实现), 启动速度快,空间占用小, 真不愧是潜入式脚本语言之王。 本人想拿它来做 配置文件(conf),也想加一点IoC, 就是配置脚本可以调用主程序的函数。 实现如下&#xff1…

通过反射执行get、set方法

Class clazz sourceObj.getClass(); 1、获取所有属性 BeanInfo beanInfo Introspector.getBeanInfo(clazz); PropertyDescriptor[] pds beanInfo.getPropertyDescriptors(); 2、获取指定属性 PropertyDescriptor pd new PropertyDescriptor(fieldName, clazz); Method getM…

h5 移动端 关于监测切换程序到后台或息屏事件和visibilitychange的使用

需求:当我们页面上正在播放视频或者播放背景音乐时,我们屏幕自动息屏或者切换程序去看消息时,我们希望暂停视频或背景音乐,回到程序我们希望继续播放视频或播放背景音乐。小程序上提供了 onUnload返回 onHide退出 onShow重新进入等…

一份整理 | PyTorch是什么,为何选择它

PyTorch是什么 PyTorch的特性 PyTorch是什么 PyTorch是一个基于Python的科学计算包,主要提供以下两种用途: 在GPU算力或其他加速器上作为NumPy的替代一个用于实现神经网络的自动求导库 PyTorch的特性 PyTorch的祖先是Chainer,HIPS autograd,twitter…

jquery实现心算练习

看看大家做完要多长时间&#xff0c;不能上传附近&#xff0c;就只得贴代码。代码如下&#xff1a; 代码 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <htm…

C/C++利用三元组实现稀疏矩阵运算

三元组&#xff08;&#xff08;x&#xff0c;y&#xff09;&#xff0c;z&#xff09;其中&#xff08;x&#xff0c;y&#xff09;表示非零元位置&#xff0c;z表示该坐标的值 由于实际操作时&#xff0c;我们所用的矩阵0非常多&#xff0c;所以一个一个输入值很浪费时间&…

Database项目中关于Procedure sp_refreshsqlmodule_internal的错误

最近项目中发现一怪问题&#xff0c;使用DB项目发布数据库时&#xff0c;总提示 “(110,1): SQL72014: .Net SqlClient Data Provider: Msg 1222, Level 16, State 56, Procedure sp_refreshsqlmodule_internal, Line 67 Lock request time out period exceeded. An error occu…

脱离公式谈谈对反向传播算法的理解

机器学习的训练过程可看作是最优化问题的求解过程。 根据原理 对于函数f(x),如果f(x)在点xt附近是连续可微的&#xff0c;那么f(x)下降最快的方向是f(x)在xt点的梯度的反方向 得到最简单最常用的优化算法&#xff1a;梯度下降法(Gradient Descent Method)。 可以想见&#xf…

如何在Form中使用键弹性域(Key Flexfield)

在应用弹性域之前必须先定义弹性域&#xff0c;定义之前必须先注册表列。如果你的弹性域已经在Oracle Application Object Library中已经定义和注册了&#xff0c;并且弹性域表和列已经在数据库中存在&#xff0c;则忽略1、2、3步骤&#xff0c;适用于关键性也适用于描述性弹性…

什么是SOLID原则(第3部分)

让我们从最后一个 SOLID 原则开始吧&#xff0c;即依赖倒置原则&#xff08;Dependency Inversion Principle&#xff0c;简称 DIP&#xff09;&#xff08;不要和依赖注入Dependency Injection &#xff0c;DI 弄混淆了&#xff09;。这个原则所说的是高级模块不应该依赖具象的…

李彦宏,韩寒等入围本年度《时代百人》候选名单

美国《时代》杂志周六&#xff08;4月3日&#xff09;公布了2010年度 “百位全球最具影响力人物”的200名候选人名单,其中中国最大网络搜索公司“百度”总裁李彦宏也以成功企业家入围候选人,同时入围的还有年仅27岁的80后作家韩寒。 其它“全球最具影响力人物”候选人名单中还包…

win10如何查看NVIDIA驱动的版本

入口 输入&#xff1a;控制面板 选择&#xff1a;硬件和声音 选择NVIDIA控制面板 点击小房子图标 看到版本是391.25

vb中5种打开文件夹浏览框的方法总结(转)

代码 众所周知&#xff0c;在vb中如果是打开某一个文件的话&#xff0c;非常简单&#xff0c;使用CommonDialog组件即可轻松完成&#xff0c;但是他只能选择文件&#xff0c;之后或许选取的文件路径&#xff0c;而如果想要浏览文件夹&#xff0c;就没这么方便了。这里介绍3个办…

R语言文摘:Subsetting Data

原文地址&#xff1a;https://www.statmethods.net/management/subset.html R has powerful indexing features for accessing object elements. These features can be used to select and exclude variables and observations. The following code snippets demonstrate ways…

Ubuntu系统

1. Ubuntu 14.04 LTS安装 直接从官网下载Ubuntu14.04.2LTS http://www.ubuntu.com/download/desktop (你也可以下载最新的14.10---据说改变不大) 个人采用的是U盘安装,用了UltraISO这款软件(百度软件中心中便有---可以不破解试用来完成目的):具体流程: UltraISO上端文件打开,将…

win10下Anaconda如何查看PyTorch版本

以管理员身份打开Anaconda Powershell Prompt 按顺序输入以下三行命令即可