当前位置:首页 > 前端 > 教程 > 移动应用跨平台开发

移动应用跨平台开发

跨平台开发简介,业界很多主流的移动开发框架均源于PhoneGap。较著名的有Worklight、appMobi、WeX5等;其中WeX5为国内打造,完全Apache开源,在融合Phonegap的基础上,做了深度优化,具备接近Native app的性能,同时开发便捷性也较好。
phonegap
由于移动互联网的出现,因此经常听到有人说要做手机端应用。

本人做软件开发已经有一段时间了,开始上班的时候智能手机刚刚出现,不过我并没有一开始就做手机端的开发,直到2年前有了具体的思路,才开始做手机端应用。

因此开始了解一些手机端开发的技术方案。

很显然目前智能手机主要有2个平台ios和android,当然还有windows phone,不过目前主要还是ios和android。

因此首先第一种方式,就是针对不同的平台做2个不同的版本。当然这就是说要同时学习ios和android开发,所谓原生开发。

学习新的技术是需要时间成本的,因此我想是否可以跨平台呢,答案是肯定的。

跨平台也有很多不同的方式,最简单的是使用html5,界面用html实现,然后需要用的系统功能由框架提供,由于界面是使用html因此一些web界面框架也可以用上,之前用过的extjs就有移动版senchaTouch。

html也算是神通广大,在pc上有很多软件都是基于浏览器,所谓b/s模式,当然也是跨平台的,任何操作系统只要有浏览器就能用,而且不用安装,因此现在很多应用如果可以一般都是采用这样方式。

将html用到手机上怎么样呢,手机上也有浏览器,并且手机都支持升级版的html5。虽然在浏览器上不能使用系统功能,但使用像phoneGap、AppCan这样的框架封装一下,也就没有什么了,所谓Hybrid App。

于是我就用AppCan+senchaTouch做了一个demo,从demo的效果上来看,感觉并不是很好,主要是手机性能太差,虽然技术参数很高,我觉得根本就是一种误导,后来发现即便是原生应用依然有性能的问题。所以最终还是没有使用html来程序。

然后我又尝试使用另外的跨平台方式,使用C#来做手机应用,C#需要有.net虚拟机,虽然微软没有提供可以在手机上运行的虚拟机,但是mono可以提供跨平台的运行环境,这种工具称之为xamarin,以native的方式来开发ios和android的应用。

实际上这种方式也没太大的好处,是使用C#对平台的函数进行封装,ios和android实现界面的方式是不一样的,要分开做,然后可以共享一部分代码。虽然有xamarin.Forms让界面也实现跨平台,不过目前并不成熟。
phonegap
由于之前学过C#,使用xamarin可以不需要适应新的编程语言,另外官方的文档也算完备,于是就开始使用xamarin从android开始做手机应用。

经过封装以后,用C#来开发android程序,基本上没什么太大的问题,不过一个应用做了不到一半的时候又做不下去了,虽然官方提供了文档,但还是有各种问题需要到网上找解决方法。所能找到的都是android原生开发的,代码都是java的,于是就要对代码进行转换觉得很麻烦。这个时候对android的开发已经了解的差不多了,只是编程语言不同,C#和java也是很像的,另外考虑集成第三sdk,于是干脆就换成原生的开发了。

于是本人的跨平台之路就此结束了,这个故事告诉我们,如果要做移动应用的话还是先选择一个平台吧。要2个平台都考虑,就需要了解不同平台的特性,以此为基础可以再考虑跨平台。

现在Phonegap是Adobe所有,Adobe公开表示将会为HTML5开发推出更多有意义的工具。有业内人士表示,Adobe的HTML5战略特别值得注意,此外Adobe对于乔布斯的此番公开批评曾积极地回应道:“乔布斯说的不都是对的。”这是个好的信号,在flash和html5之间犹豫的开发者可以大胆的使用phonegap了,另外html5更注重移动平台,flash更适合pc端。在html5移动应用的架构选择上,PhoneGap无疑是最佳的开发模式。

  • << 在WPF中使用PDF文件
  • JavaScript之命名空间 >>
  • 作者:
    除非注明,本文原创:知道91,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.zhidao91.com/mobile-phonegap/

    相关文章 近期热评 最新文章

    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • ABP开发指南系列教程(2) – 多层架构...
      为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术。为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将工程分为四个层: 展现层(...
    • ABP开发指南系列教程(1) – 入...
      ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WE...
    • Windows下 JIRA + Agile + Mysql 破解...
      本文讲述了Windows下 JIRA + Agile + Mysql 破解安装示例教程
    • c#类的构造函数继承关系示例剖析
      本文通过示例代码讲解了c#子类的构造函数与父类的关系,子类怎样集成父类的构造函数的。