说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

【MDCC 2014】Xamarin深入体验营——开发实战大揭秘

HTML文档下载 WORD文档下载 PDF文档下载
Xamarin最早是由Mono演变而来,其跨平台和支持代码复用的特性受到了开发者的关注。MDCC 2014第一天,来自中国台湾的林泰宏与大家分享了Xamarin实践操作方面的干货,并现场解答大家的疑问,受到了开发者的好评。

一年一度的移动开发者盛宴——2014移动开发者大会(简称 MDCC 2014 )于10月31日至11月2日在北京新云南皇冠假日酒店隆重召开。MDCC是由CSDN和创新工场联合主办的中国最大的移动开发者盛会,致力于推动中国移动互联网生态系统的成长,今年迎来第五届。

Xamarin最早是由Mono演变而来,原本是在Linux上执行C#程序的一个开源项目。后来陆续推出了支持iOS的Mono Touch Framework和支持Android的Mono For Android Framework。Xamarin是Mono项目的一个分支,它与Mono最大的区别在于,Xamarin是一个商业项目,并且目前已实现Android、iOS、Windows 8等主流平台的跨平台支持,并可重用90%以上的代码。

MDCC 2014第一天,Xamarin深入体验营受到了开发者的青睐。上午9:10分体验营正式开始,来自中国台湾的昕力信息资深顾问林泰宏为开发者准备了内容丰富的议题,几乎囊括了从理论到实操,与Xamarin开发相关的方方面面。其中包括:

  • Xamarin开发前准备;
  • Xamarin. iOS布局设计及基础控件;
  • Xamarin. iOS多页面巡览;
  • Xamarin. Android布局设计及基础控件;
  • Xamarin. Android多页面巡览;
  • Xamarin. Android基础控件;
  • Xamarin. iOS列表及数据库操作;
  • Xamarin. Android列表及数据库操作;
  • IOS、Android消息推送。
  • 原生类库绑定(极光推送、百度地图、支付宝、微信分享);
  • 跨平台开发(PCL、Xamarin.Forms)。




首先,林泰宏谈到了Xamarin的特性,林泰宏坦言:“Xamarin适合原本就做C#的开发团队,最大的优点就是跨平台及业务逻辑代码和算法可以共用。”不仅如此,Xamarin的特性还包括:

·快速建立原生移动设备应用程序。通过C#亲和且功能齐全的语言特性,搭配.NET Framework的Base Class Library的便利性,让开发人员以最高的生产力开发移动应用。

·程序代码共用。Xamarin采用C#编写,可以在不同平台之间共用商业逻辑和资料存取等程序,而无需重新撰写。这除了节约了代码重写的成本外,也维护了版本的一致性。

·与Visual Studio整合。Xamarin提供了Visual Studio 2010/2012的Plugin,让原本熟悉VisualStudio的开发者不用再熟悉其他的开发工具。在立项时,可以直接建立iOS及Android的项目范本。开发者还可以将iOS及Android的程序代码加入到ALM中,使用Team Foundation Server进行版本及建置管理。

·原生的应用程序效能。Xamarin针对iOS及Android平台开发编译器,将C#程序直接编译成ARM CPU的机器码。因此,与原生应用相比,性能方面毫无差异。在Android系统中,由于Xamarin不适用Dalvik虚拟机,改为采用CLR,效果可以更胜一筹。

接下来进入到了实操环节,林泰宏从模拟器开始,逐渐分析了iOS设备的布局设计和基础控件。基础控件包括:Label、Button、Segmented Control、Text Field、Switch、Slider、Activity Indicator、Progress View。


XamariniOS设备布局


Xamarin.Android布局包括:线性布局(LinearLayout)、单帧布局(Frame Layout)、相对布局(Relative Layout)、绝对布局(Absolute Layout)、表格布局(Table Layout)。Xamarin.Android基础控件包括:TextView、EditText、Auto Complete TextView、Progress Bar、Switch Bar、Switch/Toggle Button、Seek Bar。当然,与iOS相比,Android设备的碎片化属性一直为人所担心,在分享中林泰宏给出了Android设备碎片化的解决方案,通过如下公式可以精准的计算出每款设备所需要的正确尺寸。

谈到大家都很关心的推送功能时,林泰宏从准备工作开始,举出iOS推送前期开发者首先要申请一个Apple ID,接下来依次启用Push Notification(Development)并产生数字证书、建立Provisioning Profile、在Key Chain中导入数字证书并汇出.p12档、访问极光推送网站并创建账户、创建应用并上传.p12档。开发中首先要导入推送绑定组件,然后添加Push Config档并添加以下设置(以极光推送为例):

  • APS_FOR_PRODUCTION :黙认为0,开发模式;
  • CHANNEL:设置频道,默认为“Publish channel”;
  • APP_KEY:极光推送所配置的key。

最后,在AppDelegate.cs中添加以下函式代码:

  • FinishedLaunching:注册通知型态(如铃声、badge等);
  • RegisteredForRemoteNotifications:获取deviceToken并注册到极光推送;
  • ReceivedRemoteNotification:接收消息后的相应处理。

相比于iOS,Android的操作过程则较为简单,首先访问极光推送官网并创建账户,接着是创建应用并指定包名(Package Name)。开发过程中,首先要将项目导入极光推送绑定组件,然后配置AndroidManifest.xml并指定App_Key,接下来在Application或首页初始化极光推送,最后撰写自定义BroadcastReceiver类以处理接收到的信息。


除了精彩的演讲外,林泰宏还带来了《Visual C#——Xamarin跨平台移动App开发实践》与大家分享,并且针对大家在项目开发中实际遇到的问题,对大家进行现场交流和解答。现场气氛十分融洽。


传递焦点的五种方法-Delphi资料 从 实 例 看 Delphi 4 中 的 动 态 得到Memo中当前的行列号-Delphi资料 改变RichEdit的游标位置-Delphi资料 回车代替Tab移动输入焦点-Delphi资料 获取Windows临时路径-Delphi资料 获取当前鼠标位置的类名和句柄-Delphi资料 检测存在打印机-Delphi资料 将BMP文件转换为JPG文件-Delphi资料 类似链接的效果-Delphi资料 利用COM技术实现外壳扩展的属性页-Delphi资料 留意DELPHI的命名规则 判断元件有哪一特定的属性-Delphi资料 全局热键-Delphi资料 让自己的程序防破解-Delphi资料 如何查找一个目录下的某些特定的文件-Delphi资料 如何在全屏幕显示一个AVI文件-Delphi资料 删除文本文件中的多余空格-Delphi资料 实现Hint的分行提示-Delphi资料 实现应用程序的文件拖放功能-Delphi资料 死循环的控制权转让-Delphi资料 添加桌面快捷-Delphi资料 统计中英文字个数-Delphi资料 为 应 用 程 序 添 加 口 令-Delphi资料 应用软件加入全面的功能权限控制-Delphi资料 用Delphi编写安装程序 用Delphi实现超级链接 用Delphi实现子目录级的文件查询 用Delphi自制英语复读机 用DEPHI为应用软件建立注册机制-Delphi资料 优化delphi5.0秘籍大曝光 就真的没有高手能给出破解word文档密码的高招或者软件吗(我的分,你的答案!!) ?一个对表格做校验的问题? ????****当用程序调WORD时,我想把WORD的右键事件屏蔽,请高手指点如何实现 一般在DOS下,在系统盘C中找不到其它的逻辑盘的原因有是什么? 在D5中winsock用recReceivebuf收数据为什么老出现地址错误???高分相送!!! 索取代码 求救:关于邮件服务器(SMTP)认证 请问在CE系统数据库编程时CEVT_UI4和CEVT_LPWSTR有何不同? 浏览器里能否使用带有界面的ActiveX Dialog中Edit控件对应的变量m_edit_string(CString型)如何得到控件中显示的串 各位:哪里有PB 7.0下载? 新学jbuilder请教前辈:听说用jbuilder做出来的东西脱离jbuilder环境后运行通常要改好多东西,怎么做能避免这类情况?用jbuilder做开发要 GetWindowNext怎么老是返回NULL? 我想学java,但是,我现在只会c++? 急都急死了,快教教我如何用Resin配jsp服务器啊?? 请问哪里可以找到Delphi 6 Developer's Guide这本书? 请问VB中怎么把从ms sqlserver中查到的记录输出到其它库中?如foxpro …… http://www.ws.net.cn/cgi-bin/lb2/topic.cgi?forum=1&topic=6696&show=0快了看看,有没有你们喜欢的女生? 爽呀!!!Visual Studio.net实在是正点呀! 我想用delphi自带的Micorsoft help workshop做帮助行么,在delphi哪里呀,我没找到! 我打算按下一个按钮实现ctrl+space切换输入法的功能,可是不好使,大家帮我看看 在dreamweave ultradev下如何把ASP与本地服务器上的数据库连接起来。 请教,来者有份,200分大放送, 初学者关于Package的问题 再贴WebLogic Server 和 Weblogic Integration 有何不同,各是用来做什么的? 我在APPlication中开始处加上如下代码,在PB下运行时没问题,怎么编译后执行exe文件后老提示连不??为什么,请赐教!! 在静态切分窗口中,如何显示标题? 求教大虾:如何给软件加上licence限制 抗议CSDN帖子内容为楷体,同意者举手! 如何在画布上画一个带箭头的直线. *-->为对话框应用上妆!在线等待 [诚征交友]不诚勿扰,请条件适合男士入内 有谁用过Cute ftp上传软件,为什么一进行文件同步时,就出现404 object not find的错误 关于界面对象丢失的问题…… 请大家看看这个问题。 我真的很需要帮助。。。请问谁有360度可以许多张图片旋转的代码 360度全景特效 高分求树型结构源代码 现在出了本Jbuilder5的书。有没有谁有这本电子书啊? 高分求树型结构源代码 SDK问题 这句sql有问题吗? 关于驱动程序开发! 在SQL-SERVER中出现数据死锁的情况一般是什么,若是由多个用户同时向数据库更新数据而导致的死锁,解决此问题的办法有那些? 寻找源代码排版软件? 有没有用VC写过短信接收程序,我在接收中文时出现乱码。 请教大虾:用mideaplayer来播放一首歌,如何用progressbar来表示进度? 我想学习驱动程序的开发,请大家帮我推荐几本这方面的书? 编译出错,不解?请高手指点。 能否用Delphi 实现类似东石公司的虚拟光驱系统。 我想学习驱动程序的开发,请大家帮我推荐几本这方面的书? include头文件的问题 生活中在哪里见到过小数?举个例子. 在注塑过程中模具内的空气需要排除吗?模具内的空气会对注塑有影响吗? (讨论)若两个事件A与B是互不相容的,则它们是相互独立的.答案可以选,必然对,必然错,可能对.参考答案是必然错,理由是0=P(AB)不等于P(A)P(B),很明显,如果A是必然事件,B是对应的不可能事件,就 力学之父 注塑模具进胶点尺寸怎么测量 A事件与B事件相互独立,那么他们是否互不相容? 什么是小数?小数的小故事是什么?小数的概念是什么? 1N的水为什么能产生超过1N的浮力,不是浮力等于排除液体体积吗? 双曲线渐近线方程为y=±(b/a)x时……双曲线渐近线方程为y=±(b/a)x时,双曲线标准方程一定是x^2/a^2-y^2/b^2=1吗?如果不是,请举一个反例. 中国力学之父是谁 双曲线 为什么把1换成0,就得渐近线 置换反应全部属于氧化还原反应吗?若不是,麻烦举些反例. 请问保留2位有效数字和保留2位小数是一样意思吗?举个例子 下列会计要素中,属于反映企业财务状况的会计要素是A.负债 B.收入 C.费用 D.利润 告诉下 求与双曲线x^2-y^2/4=1有共同渐近线,且过点M(2,2)的双曲线的标准方程 生活中有关小数的例子 1.5mol NAOH 有多少个NA离子?有多少OH离子?能不能问有多少个NAOH分子?多少mol NAOH分子? 置换反应一定是氧化还原反应吗 我想杀了阿基米德和牛顿怎么办?我控制不住情绪! 某混合物中含有0.2mol Na+、 0.4molMg2+、 0.4molCl- 则硫酸根离子为 _____mol? 焦点为(0,6)且与双曲线x^2/2-y^2=1有相同渐近线的方程式麻烦给个过程 平时说的%70水+%30酒精,这里的百分比是质量比还是体积比还是别的 2mol c中含多少c原子.1mol H2so4 中含多少H2so4 分子.1.5mol NaoH 中含多少Na离子和多少OH离子. 形容物是人非的成语,俗话,句子越多越好... 我们常说的酒的度数是体积百分数还是质量百分数? 0.2mol Na2SO4含有( )mol Na+,( )mol SO4 2- 形容漂亮的词语,成语,谚语大哥大姐帮忙...谢谢 (a+b)(a-b)怎样解释(用生活中的例子) 把钠分别加入到乙酸,乙醇,苯,氢氧化钡中的现象 概率论与数理统计 A B互不相容和A B相互独立有什么不同? 举个生活中的例子! 把溴水分别加入到乙酸,乙醇,苯,氢氧化钡中的现象 氧化还原反应与置换反应的关系置换反应Fe+2HCl=FeCl2+H2氧化还原反应CO+CuO=CO2+Cu置换反应Fe+2HCl=FeCl2+H2 不是氧化还原反应啊! 什么是绿色化学 牛顿发现万有引力的过程我认为牛顿是因为有一天坐在苹果树下打瞌睡,被树上成熟的苹果掉下来打到,就让他发现了万有引力的存在. 把碳酸钠分别加入到乙酸,乙醇,苯,氢氧化钡中的现象 什么叫“绿色化学”? H2,NA个H原子,那么H2的物质的量是如何计算? 概率论 AB为两个事件,若P(AB)=空集,则A. AB互不相容,B.AB为不可能事件.哪个对,为什么? 什么是“绿色化学”? 牛顿发现"万有引力"的详细故事 概率论:何为两事件相互独立?何为两事件互不相容?它们之间关系如何? 比值表示的意义是什么 3.4NH3的物质的量为 mol 含有质子数为 个,含有电子数 NA 含有 NA个H,含有 个N原子?给的答案第二个是2NA 第三个是2NA.用的是0.2*10=2NA,请问这个步骤的依据是什么?请具体说明,讲的容易懂的给分~17g 概率论中A.B相互独立与互不相容的区别. 用绳系着一个浸没在水中的实心金属球,金属球的体积是2*10-3m3,绳能承受的最大拉力是155N,将金属球慢慢向上提起.金属球在露出水面体积多大时,绳会断(水的阻力不计,P金属=8000Kg/m3,G=1 如果已知Na+的物质的量是5.00mol,则Na2CO2.10H2O的:求物质的量是多少mol 可以说物质的原子吗?由分子构成的物质就应该不能这么说?那为什么化学反应的概念里就这么说的? 食品企业实习总结 3000~4000字 0.2molH2中含有的氢原子个数为多少,6.02*10^22个NA+的物质的量为几MOL408+10^23 0.1mol 谁能给我解释下啊, 事件A与事件B相容,能独立吗就是相容跟独立有什么关系 用绳系着一个浸没在水中的实心金属球,金属球的体积是2×10-3m³,绳能承受的最大拉力是155牛将金属球慢慢向上提起,金属球露出水面体积多大时,绳会断.(水的阻力不计,ρ金属=8×1000千克/m&# 过点(2,-2),且与双曲线x^2/2-y^2=1有共同的渐近线的双曲线的方程是? 要使每100个水分子中含1个Na离子,则应将0.1mol的NaOH加入多少克水中? 求模具实习总结关于模具拆装及修理的文章 .. 注塑模具按结构分为哪几种?注塑模具浇口分为哪几种? 在概率中两个事件相互独立与互不相容有什么联系? 将一实心金属块用绳拴住挂在弹簧测力计上,在空气中弹簧测力计的示数是1.96N,再把金属块浸没在水中,这时弹簧测力计的示数为0.98N;求:这个金属球的密度是多大? 什么注塑模具属于双分型注塑模具 24.0克氢氧化钠固体放入水中,要使100个水分子中就含有一个NA离子,需水的质量为多少?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘