就目前来讲,自传统互联网技术普及之后,移动互联网也发展迅猛,如今各种软件大多直接或间接依赖于互联网。这些软件本质上依然是服务器-客户端结构的。服务端部署于服务器上、客户端部署在用户终端上。无论是P2P、B/S、C/S还是其它混合型的结构,本质依然如此。以前,大多数用户终端设备是PC和笔记本电脑,如今终端更多,又增加了大量的设备,其中普及率最高的是智能手机及平板电脑,除此之外还诞生了车载联网设备等等其它各种终端。
以前软件开发主要为PC开发软件,如今则需要为各种终端开发相应的软件,这在一定程度上加剧了软件开发的复杂度,各种平台拥有各种不同的操作系统、开发环境、开发工具、编程语言以及不同的库、不同的平台特性、不同的输入设备等等,一个人已经很难精通多平台的开发了。今天聊一聊移动平台的开发及Windows Phone需要掌握的开发技术。就目前来说,这里所说的移动平台主要指智能手机及平板电脑,因为目前平板电脑搭载的操作系统以及实用方式和手机相似,就不在多说了。目前在移动平台上开发软件主要基于有以下几种平台:
1. iOS
2. Andiord
3. Windows Phone
当然,除了这3种之外还有其它一些平台,不过就目前来说,其它的平台不太被看好,这里主要聊一下这几种。Andiord是Google开放的系统,优良的系统和开放性使得它成为了目前市场占有率最高的系统,设备数量惊人,但也导致了一定问题,如系统版本混乱、设备规格参差不齐等等,使得开发和维护的难度大大增加。ios是Apple公司主导的系统,精美的设计使用iphone和ipad大行其道,使ios成为市场占有率第二的操作系统。而Windows Phone大家都知道,和其它两个平台相比应用数量上不占优势,但是从Windows Phone 7 到 Windows Phone 8,市场增长速度迅猛,目前的设备数量已不算低,是公认的最有可能发展壮大和其它两个平台抗衡,微软有着深厚的Windows系统周边资源,包括大量的开发人员,他们都可以很容易过渡到Windows Phone的开发上,新的windows phone 8 采用windows 8的内核,原来windows pc山的软件更换下UI和输入方式,就能方便地移植到windows phone 上运行,成为一款手机应用软件,这也是一种巨大的优势。如今,从事某个平台的开发离不开一下几个条件:
1.平台提供的API
2.平台支持的编程语言
3.平台支持的相关开发工具、编程环境
在以上3个基础上的开发是为原生应用。而通过跨平台语言、工具、库实现对各平台API适配而开发出的应用是为跨平台应用。一般来说,原生应用能充分使用平台API,所以能充分发挥平台的特性和优势,具有最佳的性能表现和兼容性。而跨平台应用则不具备这些优势(这里的跨平台指的是一次编写,处处运行)
ios平台提供ios SDK,提供了开发所需的基础功能API以及OpenGL图形开发接口,编程语言使用objective-c,以及运行于苹果系统上的开发工具XCode。Andiord同样提供基础功能API和OpenGL图形开发接口,编程语言使用java,以及可运行于其它系统上的开发工具。这里重点是说一说windows phone.
移动平台上的软件主要分为两大类,
1. 普通应用软件,即常规的应用程序,例如浏览器、播放器、日记本、聊天软件等等
2. 游戏,区别于普通软件,在移动平台占有非常重要的地位。
Windows phone 7, 平台API为,Sliverlight类库充当普通应用开发接口,XNA作为游戏开发图形接口,支持的编程语言为C#,注意,程序运行于.NET Compact Framework 之上,并非普通的.NET Framework。Silverlight使用基于XAML的UI,微软提供的windows phone开发所需的库比传统Windows上的.NET类库要弱一些,其中删减了一些不常用的功能,但是无论是文件读写、网络编程、界面开发都已足够开发出各种应用软件。XNA作为图形开发接口,是Windows Phone 7 游戏开发的基础,它简化了DirectX的繁杂API,功能上并未遭到削弱,也能开发出各种2D、3D游戏。除此之位还提供优秀的开发工具 Visual Studio ,很大地提高了开发效率。windows phone 7 并不支持Native code, C、C++等都无法为Windows Phone 7 开发程序,因此为Windows Phone 7开发应用程序需要掌握C#,.NET常用类库,XAML Silverlight即可,以前Windows平台的.NET程序员,几乎不需要学多少新的东西就可以快速过渡。开发游戏则需要掌握C#,.Net常用类库、XNA即可,如果基于游戏引擎开发,甚至不需要太了解XNA。Windows Phone 设备都遵守微软的规范,所有Windows Phone 7 手机屏幕分辨率均为480*800,拥有返回、超级按钮、搜索 三个标准按键。
新一代的Windows Phone 8 :
从客观上来讲,Window Phone 7才用了Win CE内核,拥有完善的应用、游戏开发技术支撑,但没有先发优势,从发布至今,取得了一定的市场地位,算是小有成绩确算不上成功,和ios,andiord相比,市场占有率及应用数量都存在较大差距。如今,刚发布不久的全新一代Windows Phone 8进行了重大改进,主要包括以下几个方面:
1.Win CE内核更换为全新的Windows 8内核,因此它是一款Windows NT操作系统,支持以前普通Windows上部分API
2.开放本地代码支持,使得C、C++等语言也可以为Wp8开发程序,以前众多的C++程序员在不必掌握.NET的情况下也可以过渡到Wp8的开发。
3.开放DirectX 11图形API,使得以前传统的游戏程序员可以轻易过渡到Wp8游戏开发,并开发高质量游戏。windows phone 8 上的DirectX 11支持可编程渲染管线,支持顶点、像素着色,而windows phone 7仅支持固定渲染管线。
4.兼容所有windows phone 7 应用程序。
这里稍微提下WP8上的DirectX 11,与PC上的DirectX API并无区别,只是某些特性不受支持,毕竟手机的性能是无法与PC抗衡的。Wp8上的Dx11 不支持多重采样抗锯齿、几何着色器、外壳着色器等,仅支持顶点、像素着色器,可提供与DirectX 9相比的绝大多数功能,足以胜任高质量游戏的开发。原来Wp7上的Silverlight和XNA依然可用于windows phone 8 的开发中。今后的Wp8开发中将由XMAL作为应用底层,DirectX作为游戏底层,而上层支持托管、本地代码,使得几乎所有的Windows程序员均可快速过渡到Windows phone 8的开发中来。从近期windows phone 8及其手机的市场表现来看,增长非常迅猛,前景广阔,或许随着IPhone热度的降低,Andiord的混乱,Windows Phone 一次次的改进和推广,Windows Phone 8将成为Windows Phone操作系统及Windows Phone手机普及、崛起的标志。
如果你也是一名Windows程序员,是否对Windows Phone开发有兴趣?是否希望有一部Nokia Lumia 920手机? windows phone的表现让我们一起期待吧!