Chrome、软件商店、Hybrid App

来源:互联网 发布:台湾国民党知乎 编辑:程序博客网 时间:2024/04/29 16:26

经过最近几年突飞猛进式的发展,Chrome已经成为IE最强劲的对手,在除美国外的很多国家,其市占率已经超过了IE,考虑到Chrome在移动终端上还未完全发力,这一趋势还将延续。对Google来说,浏览器和Web app代表了未来的趋势,这也是尽管一直不赚钱,但Google仍要不断投钱到Chrome OS的原因。

在移动互联网的浪潮中,企业的专业化分工趋势非常明显,而这需要一个强大、稳固的生态链系统的支持,Google围绕着Android打造的生态链系统我们已经很熟悉了,围绕着Chrome OS打造的生态链其实也是相似的,其中涉及硬件厂商的部分基本是相同的,因此我们这里只讨论Google与开发者、用户之间的关系。

Android生态体系中,Google负责向开发者提供SDK及开发工具,开发者开发完应用程序后可以通过各种软件商店去发布,用户通过软件商店去搜索、购买、评价各种App。对开发者而言,需要使用专门的开发工具(如Eclipse)和Google提供的开发插件,程序的调试需要基于移动终端,发布程序的软件商店是App形式。对用户而言,需要到软件商店下载并安装App,App升级时需要下载和安装升级包。

Chrome生态体系中,Google只向开发者提供少量的API(目前)供开发扩展程序使用,开发和调试工具就是Chrome浏览器本身。对用户而言,不需要下载和安装App,只需要保存该App的链接就可以了,软件商店已经集成到浏览器中,App升级是以网络服务的形式自动更新,无需用户再主动下载。

为什么Chrome需要内置软件商店?

尽管和传统的客户端的应用软件商店不同,网络端的应用不需要安装,只需要和网页一样收藏一下,但用户已经养成了通过商店搜索应用的喜欢,不可能倒退到以前那种网页搜索方式。软件商店已经提供了App信息,升级提示,用户评价与分享,收费应用的支付等一整套体系,大大降低了用户的搜索和使用成本,同时也降低了开发者的推广成本。因此,这种习惯肯定会持续下去。

软件商店集成到浏览器中,并且同浏览器本身的账号系统绑定后,就能完美地实现一次下载,所有设备自动同步。国内的UC、360、QQ浏览器也都集成了软件商店,并依靠推广游戏取得了不错的收入。

Chrome的软件商店提供什么类型的软件服务?

Chrome软件商店提供的应用程序分为两种:Web apps和Chrome扩展程序。

Web Apps 通常具备独立的用户界面(在浏览器中)和丰富的用户互动。Google 的目的也是希望 Web Apps 能够像安装在电脑中的客户端软件一样使用方便,且互动灵活。WebApps是可以跨平台、跨浏览器通用的。

扩展程序的作用主要是丰富浏览器或网站的功能,其本质上是一个依附于浏览器的插件,而不是像 Web Apps 一样对应于某个网站或服务提供商。相对于 Web Apps 来说,扩展程序的功能是通过应用于各种网站以及 Web Apps 才得以体现,无法单独使用。

此外安装 Web Apps 需要 Google 帐号登陆,而安装扩展程序就无所谓。可见,真正同Google账号系统绑定的是Web Apps,也就是跨平台的网络应用。

目前的主要问题

截止2013-4-15,Chrome的软件商店用户数突破3.6亿,Web App共32574个。而回到2011-12-05,用户数为6125万,App数为19166个。这将进一年半的时间里,用户数翻了6倍,而App数只增长了60%,无论是总数还是增长速度,相对Android、iOS来说都太小了。

这其中最主要的原因是用户体验问题,相关技术标准的缺失与漫长的完善过程、浏览器性能不足、不同浏览器之间表现的差异、离线和使用本地硬件设备的功能不如本地App等等, 这些因素严重制约了Web App的发展。

未来App的发展方向

Google显然也意识到这个问题,2012年6月,Chrome软件商店增加了对离线App的支持,但Google要求开发者自己想办法保证自己的App能支持离线使用,没有提供其它方面的支持。

在这种情况下,基于HTML5低成本跨平台开发优势又兼具Native App特质的Hybrid App诞生了,它主要以网页语言编写,在使用本地硬件设备或对速度要求很高的场合则调用封装好的native接口。

对开发者而言,Hybrid App主要分为两种:

一种是以Google Native Client为代表,这是一个开源的技术项目,让浏览器可以直接运行本地语言编写的、且由本地编译器编译后的代码,前原理是在普通的Web App和本地语言编写的代码中间增加一个Pepper层,这一层负责向上提供API,并在运行时充当一个虚拟机,将本地代码解析为浏览器可以识别的指令,Pepper层提供的接口是基于C/C++的。这种方式和Android的Davik虚拟机调用本地代码的方式非常相似,开发者可以最大程度地利用之前写好的本地代码,或者使用音频IO、3D显卡等设备。当然,开发者的工作量巨大,从Web App,到Pepper层,到native层,所有的代码都要自己编写,跨平台移植难度很大。

另一种是以PhoneGap为代表,这也是一个开源项目,它将对本地硬件设备的调用封装为Javascript接口,将虚拟机和底层调用隐藏起来,用户只需要基于其提供的Javascript接口即可完成程序开发。同时,用户不用担心跨平台的移植问题,PhoneGap会针对不同的硬件平台发布对应的开发包,这里面会集成对应的虚拟机和底层调用。显然,这种方式应用更广泛、更具发展前景,所以本文提到的Hybrid App,都是指基于这种技术的。

使用PhoneGap来构建自己App的大佬:维基百科、Facebook、IBM的worklight、微软的X-Box、Adobe、BlackBerry、Zynga、Logitech、Cisco。另外,appMobi也已经被Intel收购了。可见在当前的形势下,Hybrid App还是有很大的生存空间的。

类似的中间件厂商还有国外的appMobi,国内的AppCan和Rexsee等。

但多个中间商提供向上提供的javascript接口是不同的,这样导致Hybrid App出现严重的碎片化,对于开发者来说,基于多个中间商的API接口去编写程序负担太大,除非其中的某一个占据压倒性的市场份额。在这种情况下,Google艰难地迈步了。2013年2月,Google面向使用 Windows版Chrome 28开发者提供了应用开发包,可以让开发者使用HTML5, JavaScript和 CSS编写出可以精简运行的Chrome Packaged Apps,减掉了诸如地址栏、工具栏以及目录等,看起来更像是 Windows上运行的本地应用,而非浏览器代码。这些App能够在脱机状态下运行,并且能通过谷歌提供的API直接访问设备硬件。但和PhoneGap比起来,无论是功能丰富性还是支持的平台,Chrome起码落后一个级别。

       简单点说,WebApps提供的功能有限,只能适用于特定领域,而如果要使用本地硬件设备,必须用Hybrid App的形式,Hybrid App如果要做到跨平台,就必须依赖于同硬件平台绑定的中间件,各互联网大佬都已经看到了它的重要性,并都在力推自己的中间件标准。一旦这个标准成型并形成寡头垄断的局面,Hybrid App就会迎来爆发式的增长。


相关网址

Chrome软件商店:https://chrome.google.com/webstore?utm_source=chrome-ntp-icon

GoogleNative Client: https://developers.google.com/native-client/overview

PhoneGap下载地址: http://www.phonegap.com/download

Chrome Packaged Apps:http://developer.chrome.com/apps/about_apps.html

原创粉丝点击