仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4568|回复: 20
打印 上一主题 下一主题

[学习教程] IOS制作之Xamarin:利用C#移植Android操纵体系仓酷云

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:43:09 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
NSStringNSArrayNSDictionary等这些工具在所有的框架里都会出现iOS大部分类都是继承自NSObject(我还没见过不是继承自NSObject的..)Oracle和Google针对Android中Java的专利成绩激战正酣,与此同时Xamarin正在实验利用C#移植Android操纵体系,完整交换个中的Java代码。固然这Xamarin标明这不会是公司的次要营业,但这仍然会是一个非常风趣的实验,而且关于其拳头产物之一,MonoforAndroid的进一步开展也会有很好的匡助。
Xamarin的前身是Novell公司的Mono团队,客岁从Novell中剥离出来,并具有关于Mono一切的专利及常识产权,其主业务务也是环绕Mono举行的跨平台使用开辟,掩盖iOS(iPhone/iPad),Android等支流挪动设备。利用Mono和Xamarin的产物,开辟职员可以利用C#和.NET开辟各平台上的原生使用程序,并可以跨平台共享除界面以外的代码,削减开辟本钱。
Xamarin暗示,Java并不是是Android上开辟原生使用的独一办法,乃至也不是最好的办法,Xamarin的主力产物MonoforAndroid可让开辟职员创立更高效,更省电的使用程序。与Sun的做法分歧,微软从一入手下手就将C#和.NET假造机提交为ECMA尺度,这些尺度遵守ISO的专利答应,也遭到微软本身公布的,具有功令效率的社区答应掩盖,微软答应不会究查这些尺度中触及的专利成绩。
Xamarin团队在博客里写到:
客岁7月,当Xamarin刚建立的时分,我们在Boston调集了全部团队一同切磋iOS和Android上Mono的演进企图。某日,在停止了一天的查理士河上的皮艇举动以后,我们在饭桌上会商怎样改善Android使用程序的功能和耗电,和怎样让MonoforAndroid变得更好。
最初我们回到了底层成绩上:Dalvik仍是个年老的假造机,它没有经由Mono那样的功能调优,在受限于Java的很多功能限定的同时,也短少如OracleHotSpot那样壮大的后端优化才能。在那次晚饭中,我们的团队迸收回了一个猖狂的动机:不如将Android源代码翻译成C#吧。如许Android就能够得益于C#的高效功效,比方布局体,P/Invoke,真实的泛型,另有我们更加成熟的运转时作为后台。
固然那年7月终极甚么都没有产生,但这个动机深深地印在了我们的脑海里。
把时钟疾速向后拨几个月:MonoforAndroid已取得了使人注目的功效,因而我们再一次入手下手思索怎样改善产物在Android上的功能。假如我们把Java交换成更快的C#,以此制止Dalvik带来的各类限定又会怎样呢?我们可让一个Android手机完整挣脱Java,挣脱Dalvik假造机的限定吗?
我们以为这个点子已猖狂到值得一试了。因而,从一个小项目入手下手,我们以完全翻译Android中的Java部分至C#为方针入手下手行进。我们把这个项目称为XobotOS。
今朝XobotOS的尽年夜部分Android层已完整改写为C#,Xamarin还公然了一幅XobotOS在Linux事情站上运转的截图,个中完整没有Java的存在。
Android的中心代码包括数百万行Java代码,同时Xamarin团队但愿能够坚持同步更新——现实上XobotOS项目是从Android2.x入手下手的,直到往年在Google开源了IceCreamSandwish以后才晋级至Android4.0。因而,独一牢靠的做法仿佛只要Java到C#的主动翻译了,在这个过程当中还必要创立保护各类所需的工具。一入手下手Xamarin团队利用了Sharpen,它的出名案例之一,即是由FrankKrueger将一个JavaApplet程序主动翻译为C#代码,基于MonoTouch打造出一款出名的iOS使用iCircuit,并失掉了苹果官方的保举。Xamarin团队对Sharpen举行了很多改善,让这个Java至C#的代码转化工具变得更加成熟。今朝新版的Sharpen已随XobotOS一同公布,Xamarin团队但愿更多的人能从中赢利,并奉献出本人的力气。
关于Android是怎样从Mono下面取得比Dalvik更好的功能,Xamarin团队谈到:
微软对C#举行了一些改善,年夜年夜简化了代码优化的难度。比方它引进了值范例,下降了小型对象带来的开支;同时虚办法不再默许启用,这下降了假造机的功能优化难度。更进一步的是,Java和C#在泛型完成体例上各奔前程,Java接纳了完整向前兼容的做法,而C#在运转时上构建了撑持。C#的做法更加易懂易用,也更加高效和完整。
从当时起,两种言语和实行情况都在精益求精。C#底本只是一门“稍稍优于”Java的言语,现在二者的差异何止以千里计。从静态编程,到引进异步撑持,另有迭代器,函数式编程组件,拥抱并行化,以致泛型的优异完成。个中大批的功效来自于DonSyme的的研讨,他的F#小组还在持续引领言语开展的新思绪。
更主要的是,Mono作为一个假造机也更加成熟,在已往的十年里举行着不休地改善,如今可谓履历了第八代的优化了。

<br>
Xamarin以为这些都是影响功能的要素。比方,因为布局体和泛型的影响,一个复杂的二叉树功能测试即可以看出Java和C#二者间存在明显的功能不同:

<br>
Xamarin公布,他们已在GitHub上公然了XobotOS的源代码,任何人能够自在实验。不外他们也谈到,公司的方针是供应最好的挪动使用开辟平台,因而XobotOS不会是公司的重心,不外这仍然是一次非常风趣的体验,一些手艺产出也能够融进将来的产物以内,比方:



  • 间接会见Skia图形引擎:今朝MonoforAndroid经由过程Java来会见上层图形类库,而经由过程XobotOS中的代码,即可以跳过这其中间人,利用Mono的P/Invoke手艺间接会见Skia的原生衬着代码。
  • Java到C#的转换工具:新版Sharpen已随XobotOS一同公布。
  • 将Java代码交换为C#代码:关于一些功能敏感的部分,可使用C#来取代Java以调换更好的效力,这个研讨项目标一些特征将会融进将来的产物傍边。
Xamarin创立XobotOS研讨项目标目标,一是好玩,二是对产物有实其实在的收益。他们暗示:
关于一个创业公司来讲,专注当然主要,但偶然候也必要实验一些猖狂的设法来推进本身行进——说不定有一天,Google也会感激我们呢!
更多有关Mono的信息,请会见InfoQ上的具体内容。
网名为老赵,洋名JeffreyZhao,写有手艺博客“老赵点滴”。存眷前沿手艺,并努力于开源社区与微软平台的组合优化。

关于UIView的子类有很多UIButtonUITableView这个都需要各个击破看看文档从名字上就很容易理解是做什么的UIViewController是管理View和Model的类(@张开说UIViewController是用来管理view的,管理model的类自己写,当然,model也可以用UIViewController来管理,不过恐怕成为不好的代码。
简单生活 该用户已被删除
沙发
 楼主| 发表于 2015-3-13 11:08:37 | 显示全部楼层
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-7 11:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表