2012年2月26日星期日

应用商店,殊途同归

  现在距离 Windows 8 Consumer Preview 发布还有几天。记得在九月份,微软曾经宣布 Windows 应用商店将作为 Windows 8 的一部分提供,也就是说,数天后我们便可以一睹 Windows 应用商店的风采。

  此前我曾撰文说明为何应用程序商店是软件销售的变革,那是 Mac App Store 横空出世的时候。时隔一年,越来越多应用商店开始出现,市场竞争逐渐变得异常激烈,就连微软,也迅速加入了这场战斗。

   

  起源

应用商店

  应用商店早已不是什么新鲜玩意儿了。早在大约 15 年之前,Motricity 公司便创立了PalmGear。它是 Palm OS 最大的软件在线销售网站,曾拥有多达 31,000 种各式各样的应用程序。

  后来随着 Palm 逐渐衰落,尽管中途有类似 Steam、Windows Marketplace 这样的应用商店出现,但是“应用商店”这个名词早已淡出我们的生活。要说这个名词真正再为世人所知,则是苹果 App Store 出现之后的事情了。这一次,应用商店的战场从 PC 烧到了 Smart Phone。

  发展

  App Store 被誉为是软件销售模式的革命,虽然它有极其严格的审核程序,但是它使得开发者从此可以能够绕开万恶的运营商,直接接触到用户,不再受他人摆布。除此之外,它也简化了购买流程。在大多数时候,用户只需要轻轻一按、再加确认即可完成。

  尽管在刚开始时许多人不看好 App Store 的发展,但是它却出乎意料地成功了,而且创造出一个巨大的产业链。这让其他人也开始察觉到这一模式的美好未来。

  其实诺基亚很早就已经意识到了这个新趋势。早在 2008 年,诺基亚推出了 Ovi Store,一个程序商店和多媒体内容商店的集合体,现在应用数量已经超过十万,仍是仅次于 App Store 和 Android Market 的第三大应用商店。

  不久之后,谷歌推出了 Android Market,这是全球两大应用商店之一。尽管发布时间略晚,但是胜在发展迅速。距离发布还不到一年,应用数量便超过十万。除此之外,它还是主流应用商店里免费应用占比最高的。

  看到上述三大应用商店的成功后,其它厂商也陆续推出自己的应用商店,其中包括运营商甚至是第三方。但是,值得注意的是,这些应用商店大多参差不齐,普遍存在应用质量差、扣费陷阱多、应用数量少的问题。

  回归

  不得不说,苹果总是引领着业界大步前进。自从苹果在移动设备市场依靠App Store 大获全胜后,在 2011 年,苹果将 App Store 模式搬到 Mac,意图大幅提高 Mac OS X 的软件数量,构造一个与微软一样庞大的应用程序生态圈。

  发布后仅仅一天,Mac App Store 的应用程序销量便冲破了百万。虽然这一应用商店发展趋势强差人意,应用数量增长较为缓慢,但是已经基本达到目的。

  苹果在下一盘很大的棋。从此之后,Mac OS X 与 iOS 整合的步伐便逐渐加快,这在最近推出的 Mountain Lion 开发者预览版中显露无疑。苹果希望电脑可以变得更加简单和易于操作,且将界面和功能逐渐向 iOS 靠拢,尝试通过 iCloud 来连接这个苹果帝国。

Windows Store

  但是,谁也不能小看微软,因为微软也在下一盘很大的棋。微软同样拥有极其敏锐的战略眼光。众所周知,微软拥有三大王牌业务,Windows、Office、Xbox。Windows 拥有无数程序;Office 拥有大量用户,Xbox 拥有许多游戏。那么,当 Windows 将这一切整合起来再加应用商店时,世界将会变成怎样?

  Windows 应用商店是 Windows 8 系统的重要组成部分,就像 Internet Explorer 10 一样,不可分割。面对开发者,它提供了更为合理的收入分成(当销售额达到 25000 美元时,微软只收取 20% 提成);面对消费者,它提供了更为优秀的购买体验。

  除此之外,用户借助云服务 SkyDrive,可以轻松实现文档、音乐、图片、视频、应用等内容的同步。也就是说,在不遥远的未来,无论你在使用哪一台设备,都可以继续编写文档、视频,甚至是继续游戏,所作的修改也会被同步至你的所有设备。

  这样一来,与 Mac App Store 相比,Windows 应用商店的优势非常明显,以下只列出一小部分:

  1. 拥有大量用户。

  2. 覆盖全球 231 个国家和地区。

  3. 支持多种商业模型。

  (例如免费、试用、付费、订阅、拍卖、广告、应用程序内购买等)

  4. 提供完善的开发工具包。

  5. 个人仅需 49 美元即可注册成为开发者。

  6. 与微软多种服务紧密结合。

  7. 支持以 HTML 5 进行开发。

  这场战争中,苹果和微软走的是不同的路线。一个希望依靠移动设备扶持桌面设备,另一个则截然不同。应用商店,殊途同归。究竟谁会赢得战争?谁会赢得棋局?

    作者:EMLink投稿,原文链接

2012年2月24日星期五

中国网民发起“占领奥巴马Google+”活动

  这两天,中国网民发起了“占领奥巴马G+”的活动,美国总统奥巴马在Google+的每一条新信息后面,都有大量中国网友抢楼和围观,目前奥巴马的Google+评论已经成功的变成了中文版,并且最新的留言都超过了500条上限而自动关闭了。

  奥巴马和他的团队非常热衷于社交网络,其网络营销和传播工作做得丰富多彩。在Facebook上,奥巴马竞选主页的粉丝已有2400万。在Twitter上,奥巴马竞选主页的粉丝已有1100万。奥巴马的Twitter帐号在他出任美国总统之前就已经存在。在这些社交网络上,奥巴马总是在第一时间公布自己的观点和行程,及时迅速,成为公共关系的“第一窗口”,与网民互动交流,拉近距离,将其鲜活的形象展示给公众,见效非常之好。

  不过,奥巴马在2009年承认从未使用过Twitter,其发布的信息由团队“代笔”,从去年6月开始,奥巴马宣布将会时不时使用一下Twitter和Facebook。

  在去年11月份,奥巴马开通了他的Google+实名认证帐户,并与网民互动。由于当时Google+无法从中国访问,因此并没有太多中国用户留言。

中国网民发起“占领奥巴马Google+”活动

  自从Google+在前几日突然“解封”http://www.williamlong.info/blog/archives/1067.html后,中国网民就开始在上面“狂欢”,由于中国用户无法访问Facebook和Twitter,因此Google+就成为中国网民近距离接触世界的窗口,而美国总统奥巴马却鬼使神差成为中国网民的“围观”对象。

中国网民发起“占领奥巴马Google+”活动

  去年台湾领导人马英九登录Google+的时候,也引起了大批大陆网友的“围观”,跟随马英九的用户会出现“刷屏”现象,大陆网友对此戏称“刷屏求解放”。

  可见,“围观”已经成为中国的社交网络上的一种独特的“文化”。

  奥巴马的Google+地址是:https://plus.google.com/110031535020051778989/posts

  最后广告一下,我的Google+帐号地址是:https://plus.google.com/112646999948608559077

2012年2月22日星期三

UC浏览器的危机应对

  这次的UC泄密问题也算是一个小小的危机,可能会对UC产生不小的影响,处理不好的话UC会非常被动,如果UC承认其全线产品都有这个漏洞,势必引起UC浏览器2亿多用户的恐慌,导致用户转移到其他浏览器上。但是不承认的话,事实情况却有很难否定,所以UC在这方面只好采取回避的策略。

  当然,任何产品都是有漏洞的,别人爆料漏洞其实是一件好事,遇到外部指出的漏洞,第一时间就说是竞争对手攻击,这不太妥当,应该好好分析一下产品,在产品的技术上多做一些工作,将产品做的更好,这才是对用户负责的态度。

UC浏览器被指明文传输用户密码

  去年底爆发的互联网泄密风波正扩散至移动互联网领域,日前,一位自称初级黑客的网友在天涯网发布《有图有真相 你还敢用UC上网吗?》的帖子,声称UC浏览器使用明文的方式传输用户密码,导致第三方可以轻松窃取UC浏览器用户登录各个网站的用户名和密码。

  该文章给出了一个教程,通过笔记本电脑在星巴克、麦当劳等人流密集地区伪造无密码的无线热点AP,在电脑上安装Wireshark软件进行抓包,如果用户使用UC浏览器登录Gmail、Hotmail等网站,用户提交的用户名和密码就会被Wireshark截获,使得原本安全的HTTPS连接信息,包含用户名和密码都遭到明文泄漏。在稍后的一篇文章中,该用户还测试了其他品牌的手机浏览器。

  为了验证UC浏览器是否真的明文传输密码,我在自己的电脑上进行了实测,电脑端用ADSL拨号上网,然后将电脑的无线网卡模拟出一个无线热点AP,在手机上安装苹果美国商店App Store的最新UC浏览器V8.2.1.132,然后手机端通过这个WiFi热点上网。

UC浏览器

  在手机上打开UC浏览器,然后访问Gmail登录,同时在电脑上启用Wireshark进行抓包监听,我测试登录的用户名为williamlong,密码为1234567890123,登录完成后停止抓包然后进行分析,抓包的截图显示该用户名和密码为明文传输,通讯协议为HTTP,连接的是广州的一台服务器,这证明了原有的HTTPS安全连接遭到了破坏。

UC浏览器被指明文传输用户密码

  为什么HTTPS是安全的?

  HTTPS(超文本传输安全协议,Hypertext Transfer Protocol Secure)是一种常见的网络传输协议,提供客户端和服务器的加密通讯,HTTPS的主要思想是在不安全的网络上创建一安全信道,对监听和中间人攻击提供合理的保护。

  我们知道,HTTP是不安全的,通过监听和中间人攻击等手段,可以获取网站帐户和敏感信息等,HTTPS被设计为可防止前述攻击,并被认为是安全的。

  比如上面这个案例,通过伪造WiFi热点进行抓包监听,如果手机使用原生浏览器的话,通常来说,是无法监听到HTTPS方式访问的内容,HTTPS通讯内容均为加密信息,很难被破解,但是所有的HTTP访问信息都会被获取,如果用户使用HTTP访问一些隐私信息,则存在隐私泄漏的风险,例如用户使用百度搜索(目前百度只有HTTP版本),那么搜素的关键词就会被第三方监听,从而带来泄密的风险,这也就是2010年5月Google在全球部署HTTPS加密搜索的原因了,有了HTTPS版本的Google搜索,手机用户即使在不安全的无线热点进行搜索,其搜索的内容也不会被人窃取。

  可见普通的HTTP浏览是不安全的,而HTTPS浏览相比比较安全。

  UC浏览器的问题

  使用iPhone内置的浏览器,在不安全的WiFi下访问HTTPS是安全的,然而UC浏览器是一种通过中转压缩方式进行加速,实现快捷上网,节省用户流量,这样,所有的访问都通过UC的代理服务器整理后传送UC浏览器客户端。当深圳用户通过UC浏览器登录Gmail的时候,UC浏览器会把用户访问的URL地址和提交的信息发送到广州的一台服务器,这里存在的漏洞是,UC浏览器手机端和UC服务器之间的通讯是采用HTTP协议,并且包括用户名和密码在内的所有信息均为明文传输,这使得UC浏览器和UC服务器之间的通讯可以被监听和抓包,第三方可以通过这种方法获取手机用户的帐户密码等敏感信息,用户通过UC浏览器登录的任何网站都会被监听,包括邮箱、网站后台、网银、网上支付等。

  针对这个漏洞,UC产品总裁何小鹏在微博上表示,会在之后重新评估,如何更全面的保护用户的手机上网安全和信息安全,同时提供一个较好的手机上网安全增强方案。

  对UC用户的建议

  目前使用UC浏览器的用户,在麦当劳、星巴克等公共场所上网的时候,尽量不要使用未知的WiFi热点,如果使用的话,只要不进行登录操作,只是纯粹浏览网页,就没有安全性问题。如果需要登录的话,应该在UC浏览器中关闭其加速代理服务,然后再进行登录。

2012年2月21日星期二

谷歌到底怎么绕过浏览器的隐私设定

  剧情回顾:最近几篇新闻都在讲述Google,Apple,Microsoft的神仙战争。为什么叫神仙战争,因为你根本看不懂这五篇报道。

  1,《谷歌被曝绕过Safari隐私设定追踪用户浏览记录

  2,《谷歌因Safari隐私问题遭用户起诉侵权

  3,《微软打击Google和苹果称IE9是“不被第三方浏览的浏览器”

  4,《微软宣称谷歌秘密记录IE用户

  5,《Google回应微软称P3P隐私策略已不适用

  在前几篇文章中,笔者介绍了网络信息收集,广告流通手段,以及可行的阻断方法。这篇文章目的则是解释这些“神仙”之间到底发生了什么。所以,专业人士可以无视它。

  我们就来看看这些和外交辞令没什么区别的新闻,到底在说什么。

  报道-1:

谷歌到底怎么绕过浏览器的隐私设定

图1,Google Plus同时使用Google Analytics与Doubleclick收集用户信息

  在最早一起报道中,有人指责当使用Apple Safari访问Google Plus服务时,谷歌绕过了Safari的Cookie策略,进行了追踪用户的行为。

  事实:

  Google是最大的互联网广告商,它通过Google Analytics,Doubleclick,Google Adsense,Google Admob等一系列业务进行广泛的用户兴趣爱好收集,和相应的广告投放业务。

  使用浏览器访问Google Plus时,会从一系列域名请求不同的内容,以组成Google Plus的网页,其中,有两个域名对达成Google Plus本身的页面,功能而言是完全不必要的:它们分别是doubleclick.com和google-analytics.com。

  google-analytics的内容用于给当前用户进行编号(这个编号与用户当前使用的Google帐号有关联,但不等同),并收集该网站(这里就是Google Plus)的用户行为;doubleclick.com的作用也类似,但侧重于让谷歌的广告系统在别的网站上也能认出该用户,以投放精准广告。这些编号存储在cookie中。然而,Safari默认不允许第三方网站设置cookie,也就是说,在本例中,只有.google.com域名的网站可以设置cookie。为了达成跟踪的目的,谷歌就把原本应该放在doubleclick.com域名下的跟踪工具转移到了.google.com域名下------这就是所谓的“绕过Safari隐私设置”。

谷歌到底怎么绕过浏览器的隐私设定

图2,Apple Safari默认不允许来自第三方域名的内容设置cookie

  报道没有提到(隐瞒)的事实:

  1,所有的浏览器都提供了是否允许第三方Cookie的选项。只有Safari默认完全不允许第三方Cookie操作。IE默认对Cookie有弱于Safari的限制。其它浏览器一般默认允许所有Cookie(主要的反例在于,有的浏览器是借助IE核心运行的,它们往往和IE使用同一个Cookie配置设定)。

  2,谷歌这次的行为对所有设置了“不允许第三方cookie”的浏览器都是有效的

  报道-2:

  没过几天,微软的Internet Explorer爆出了“被Google绕过”的新闻。这次则是“谷歌绕过了IE中关于Cookie设定的P3P规范”

  事实:

  在IE6刚推出的时候,浏览器往往支持一个由W3C设立的,基于P3P标准的Cookie控制规范。P3P的全称是“The Platform for Privacy Preferences Project”,它要求第三方网站在需要跟踪用户时,向浏览器提出相应级别的请求。浏览器会比照用户设定的隐私级别,当双方不一致时,浏览器就会提醒用户是否愿意接受网站的条款,若用户不愿意,则浏览器将不会允许网站记录超出用户当前许可范围的内容。然而,事实上浏览器最多只能在Cookie的程度支持P3P。

谷歌到底怎么绕过浏览器的隐私设定

  P3P的本意是想达到一种“明码标价”的作用,一方面通过网页代码让浏览器识别,另一方面通过该系统给出可供人阅读的实际隐私策略文本。可是业界对这套系统并不领情,目前只有IE系列(6,7,8,9)浏览器强制开启了P3P,并要求第三方只有在提供精简隐私政策的情况下才能设置Cookie。考虑到兼容性,当网站给出的精简隐私政策不符合规范时,IE依然会允许该网站读写Cookie。

  因此,和Apple的不同,当用户使用Internet Explorer(不启用跟踪保护功能)访问Google Plus时,谷歌会“明目张胆”地通过doubleclick.com植入标记用户的cookie。

  另一方面,事实上P3P是普遍不被接受的,但是为了与IE保持兼容,广告公司可能会给出P3P条款,但其它网站通常会“伪造”一份P3P协议,类似于Flash使用跨域名内容时必需的crossdomain.xml,这些“伪造”的协议只包括了浏览器能阅读的部分,并没有可供人阅读的正式文本。

  不被(第三方)浏览的浏览器

  微软在其中的一篇新闻稿中声称Internet Explorer(8和9)是“‘Browse Without Being Browsed’,拥有业界最强悍的隐私保护能力,尤其是其独特的追踪保护功能可以让用户掌握自己的在线活动”
笔者在之前的文章中提到过IE追踪保护功能的亮点:自动识别用于收集信息的第三方内容,并加以阻止。

  更好的选择

  和P3P一样,现在W3C又推出了一个”Do Not Track”的标准,允许用户在不希望网站记录用户行踪时,向网站发送一个”Do Not Track”标记。笔者觉得这种毫无强制力的工具比P3P更没用。也就是说,如果你真的想控制信息的流出,你就应该在你的主场,也就是你的浏览器上下手,而不是像慈禧太后那样“量中华之物力,结与国之欢心”,把责任推给对方。

  真正有用的,是跟踪保护,以及各种形形色色浏览器扩展所提供的功能。特别是后者,它们不站在大公司的角度,是真正的接受用户“用脚投票”的工具,自然会卖力地帮助用户减少信息泄漏。当然,其中的大部分又是业余时间的兴趣之作,没有质保。

  UC浏览器访问HTTPS网页的泄漏问题

  这个就比较严重了。前面的“神仙大战”和它比起来简直微不足道。

  事实

  UC浏览器有一项引以为傲的功能(其它的同类产品也提供同样功能):通过代理服务器将网页重新排版、压缩,使得页面适应手机屏幕,并减少流量消耗。对于一般的明文连接,这没有问题。但是这项功能不兼容加密的HTTPS连接,唯一的方法是让代理服务器负责与目标网站进行HTTPS握手,这样代理服务器才能知道HTTPS连接中被加密的内容,从而将其重排版、压缩而转交给用户。

  这么做有巨大风险:

  1,HTTPS保证了只要服务方和证书提供方没有问题,则只有用户和服务方本身才能知晓双方通讯的内容,有很高的保密性。UC浏览器破坏了这套安全系统,导致信息在UC方的代理服务器与用户之间的传递变成明文,如同公厕。

  2,用户和最终服务方之间的通信全部让UC给知道了(显然用户是不知情的),光是这一点就已是涉嫌犯罪的行为了。

  报道没有提到的事实:

  UC强调“因访问钓鱼WIFI”,却有意忽略了问题的本质:UC浏览器本身破坏了HTTPS连接的安全性,导致了原本即便经过钓鱼WIFI热点传输,也依然安全的连接,变成了明文的,谁都可以看到的无线数据。

  我们知道,公共WIFI热点一般都是不加密的,这就意味着一个掌握相关技能(无非就是会使用破解WEP加密的BackTrack操作系统程度)的犯罪分子,完全不需要辛苦地钓鱼,只要拿一台笔记本电脑,在有公共WIFI热点的地方坐上几个小时,就能截获大量因为UC浏览器自身设计不当而明文传输的账户密码。

  为什么UC会“本末倒置”?

  如果UC要确保用户的安全,就必须放弃对HTTPS网页进行云端加速,站在UC的角度,这也许是不可接受的。同样的,千方百计地通知用户:进行云端加速则会失去HTTPS页面的安全性,同样也可能是无法接受的。如同最近的熊胆事件一样,如果你把一生都放在熊胆提取上,你会允许别人“说三道四”吗?

  笔者认为,应该避免通过任何使用“云端加速”的手机浏览器访问HTTPS网页,直到这些软件提供明确的说明。这样,在保护自己的同时,也不会触犯任何一方的利益。

  原则

  第一方记录你的浏览历史是无可非议的,当然你总是可以不提供任何信息(通常而言,这总是意味着你无法使用该服务)

  所有第三方内容都可以被阻止,只要不影响你的正常使用(第三方需要为自己负责)

  但是一个网站(特别是大型站点)需要把内容分别放在不同的域名中,以便均衡负载压力,分类不同内容,或是因为确实需要由第三方向用户提供服务。这个时候,用户就需要一些知识才能分辨出用于CDN(内容分发)的域名与用于收集信息的第三方之间的区别。

  有人觉得,因为国情,大家都不注重个人隐私,以上内容都是空谈。

  事实:所有你的信息最初一定都是由你提供的,除非碰到病毒(其实,病毒也是你‘不小心’,或这是‘默认地’请进来的)或者是刑侦需要,所以你总是能决定不提供哪些和个人关联的信息。无非是有的地区很注重程序正义,广告商往往需要为某一项具体行为付出一定的责任,用户在提交信息时更有信心;而在这里,你更需要依靠自己。

  无论在哪里,早起的鸟儿有果子吃。如果不愿意早起,还是等天上的掉下的馅饼更好。

  Google在一份声明中说“需要强调的是,这些广告Cookie不会收集个人信息,这一点很重要”。

  那么笔者也学着“强调”一下:只要是收集信息的内容,不管它和个人有多深的关联,用户总是可以阻止,这一点很重要。

  来源:fcerebel投稿。

2012年2月20日星期一

移动开发中HTML5能否替代本地程序?

  随着移动设备越来越先进,对HTML5的支持度越来越高,我们进军移动领域的时候,都会遇到一个问题,是选择HTML5和还是Native(用原生代码编写的本地程序)?HTML5的前景无疑是诱人的,一句“Write once, run anywhere”就可以秒杀一切。笔者最近两年来对HTML5与Native有较为深入的研究,觉得两者之间不能仅仅是二分法来选择,还要根据企业自身的情况、团队的构成、公司的战略以及产品的特点来综合选择。

  HTML5的发展前景我无疑是非常看好的,各大公司也不遗余力的推动,目前主流的三大智能机操作系统iOS、Android和WIndows Phone都已经支持大部分的HTML5特性。而移动设备硬件军备竞赛也为HTML5扫清硬件障碍。按照现在的发展速度,我判断是在三年以内甚至更快,移动设备运行HTML5将会完全没有压力,无论是标准还是硬件。现在主流的智能机已经配置双核处理器(之前笔误为浏览器)和1G及以上的内存,今年再出智能机没这个配置你都不好意思发布了。

  谈谈HTML5

  1.HTML5可以让你摆脱对平台的依赖,用户打开浏览器,直接就可以访问你的应用,而不需要经过各种Store的审核。

  2.实时更新,通常平台的审核都需要七个工作日左右的时间,如果你发布之后发现问题怎么办?Web方式就不存在这种问题。

  3.Write once, run anywhere?

  这是多少程序员的梦想,也曾经是Java让人心动的地方,但真正做过跨平台解决方案的人都知道,这只是一句口号而已,跨平台没那么容易玩转的。没错,HTML5可以实现Write once, run anywhere,但我们总不能写一个Hello World来run anywhere吧。不同平台有自己的特性,不同平台用户也有自己的操作习惯,如果你想讨好所有人,也就意味着你无法讨好任何人。

  4.减少开发工作量或者让开发变得更简单?

  对老板来说,这是一个非常诱人话题,因为工作量的减少就意味着节省更多的钱,没有老板不喜欢用更少的钱办更多的事。而且目前一个非常大的问题是,移动设备开发人员特别是iOS开发人员非常不好找,因为技术好的都自己做应用了,人家自己也能赚个月薪上万甚至更多,为什么要进你的公司?怎么说也是自己的事业,拥有无限可能,还可以充分享受自由。但如果可以充分利用HTML5,那么我们就可以招聘Web前端的开发人员来构建移动应用,这样就不愁招人的有问题。因为在许多人的眼里,HTML5/CSS/Javascript都是没多大技术含量的东西,实在找不到人,找些实习生学学也就会了。

  但问题是,工作量真的会减少吗?技术门槛真的那么低么?答案是NO!

  我曾经花了半年的时间去开发一个基于HTML5的移动框架,用来模拟Native应用,让HTML5应用看起来尽可能看起来像本地应用,注意:是像。这有点像jTouch,但不一样的是,它能和Native程序很好地交互,并且能调用本地资源等等特性。但最后结果确不是那么令人满意,比如HTML5在动画切换的时候,有时候候会有一些莫名其妙的问题,当然你可以告诉我把动画效果关了,但这看起来很死板,最后我不得不关闭某些动画。而用Objective-c编写程序就没这么多事了,几句简单的代码可以实现很酷的动画,用HTML5需要更多的代码,甚至根本无法实现。

  而且移动设备上的HTML5开发对开发人员的技术有非常高的要求,不是一般的Web前端人员能解决的,通常拥有这样技术的人才,工资水平也不会比Native开发人员低多少。如果你仅仅是要开发一个移动设备上的网站,这会简单很多,但如果你希望模拟Native应用,并且拥有较高的效率和优雅的用户体验,这就很有技术含量了。不要小看Javascript这类Web开发语言,通常我的看法是越简单的语言越会体现出技术人员的水平,特别是规划设计能力。

  5.其它问题,资源调用的限制,比如说在iOS中有Javascript运行不能超过15秒的限制,不能调用本地硬件设备(如相机等),无法使用推送服务等。

  如何选择?

  是否这样,我们就不要选择HTML5了呢?我在前面说过:“要根据企业自身的情况、团队的构成、公司的战略以及产品的特点来综合选择”,我最近在关于HTML5讨论的微博上也有谈到:“HTML5是战略性方向,Facebook和Google已经布局,Google Mobile在iPhone上的体验可以媲美Native。基本上Native+Web App可以秒杀多数应用,如果不愿意受制于各种Store,单独的Web App也是一个不错的方向。对于游戏类和对硬件环境依赖严重的应用,只能是是Native”。仅管有这样那样的问题,但HTML5是一种趋势,在未来三至五年,HTML5将会取代很多本地应用,但就像多年前我们一直在谈B/S架构取代C/S架构一样,这需要一个过程。

  通常在HTML与Native之间,我们有三种选择——HTML5、Native App以及HTML5+Native,HTML5就是指纯Web的移动应用,用户需要打开浏览器,然后输入应用的网址访问。Native指的是基于特定平台开发的应用。Native+HTML5实际上是一种加壳的方式,将HTML5用和浏览器封装起来,但这对用户是不可见的,用户没有任何异物感,和Store上下载的App没有什么两样。

  就我个人而言,我是比较推崇HTML5+Native的,这种加壳的方式,可以让你享受Native与HTML5的双重好处,但缺点是对技术含量要求较高。当然我这里指的不是简单地把HTML5封装到一个浏览器里面,Native与HTML5会有许多的交互,实际上这有点像混合硬盘,我们即便享受SSD的快速,但我们又想获得机械硬盘的高性价比。我认为在5-10年内,这都会是一种不错的解决方案,当HTML5和硬件发展到一定水平之后,我们再完全转向HTML5成本也会非常低的。

  如何做?

  假定现有一个对本地环境依赖不那么严重的项目,如微博客户端,各种社交美食甚至LBS应用,我们都可以采用HTML5+Native。如图所示,我们可以将核心的代码Core层用封装起来,这个代码和平台无关,主要是业务逻辑以及和Shell的交互,代码用Web语言编写。在Core层上我们再根据不同的移动平台制作不同的UI。最后我们将上述两层放到各平台的Shell中,这个Shell主要是由浏览器来完成工作,当然还包括一些硬件操作和读取本地资源,如GPS、重力感应、相机调用、地图、推送通知或者IAP等。

移动开发中HTML5能否替代本地程序

  我们可以把Web的升级部分部署到服务器上,用户运行App后,App会向服务器讲求获取最新的Web程序并下载运行,这样可以达到跳过各种Store的更新审核,达到快速更新的目的。而且假如用户无法访问互联网,我们可以让用户使用上一个版本的程序,不会像纯Web App那样要求用户一定要联网

  好处

  1.用户可以离线使用

  2.更新下载量及少,可以全部更新,也可以选择替换部分文件

  3.代码很安全安全,众所周知Web应用有一个很大的问题就是代码安全的问题,但现在我们可以将Web代码全部加密,本地应用解密后再运行,大大的提供了代码的安全性。

  4.可以通过浏览器作为中介充分利用Native的好处,比如说可以使用GPS、照相机、本地相册、读取本地联系人,也可以使用推送功能等,最重要的是,某些Web无法实现的功能,我们可以利用Native来实现。

  5.跨平台,多数核心代码不用重写,Javascript的代码用得好的话,在许多地方都可以用到,包括移动应用、移动网站、PC网站、各种浏览器插件,甚至可以用WebKit封装作为跨平台的应用程序。诚然,这种方式并非完全跨平台,但这样也足以减少很多工作量了,特别是后期的维护。而且完全的跨平台是没有意义的,不同平台有自己的风格,为了更好的用户体验,界面层还是需要针对性开发的。

  坏处

  我觉得最大的坏处是技术难度高,如果仅仅是简单的浏览器封装几个HTML文件,那没什么技术难度,但如果要打造一个系统级的东西,这就很有技术难度了。这要求有人要了解三个主流平台的浏览器特性,通晓Native程序的开发,要精通HTML5/CSS3/Javascript,最重要的是,要有较强的架构设计能力。

  如果要再找一个坏处的话,就是它不能满足所有的需要,它并不能代替Native,但我认为他可以替代大部的Native。

  适合我们吗?

  首先从产品的角度考虑,你的产品是否严重依赖于本地环境,比如说图像处理和华丽的游戏之类的。第二要考虑的是你的技术团队的构成,如果你们的团队有一个能解决这些问题的牛人,并且有一些清通Web前端的人,那我觉得你可以考虑用这种方式。技术选型非常重要,稍有不慎,后患无穷。第三个要考虑你们公司的战略,对HTML5未来发展的看法,愿意在移动互联网上付出多少代价,是否愿意做前瞻性的事,是否愿意在前期投入较多的资源,是否允许试错等等。

  本文来自涂雅,原文链接

2012年2月19日星期日

Android能否引领移动互联网革命

  也许在五年前拥有一部智能手机还是件让人羡慕的事,想想那时的诺基亚是何等的威风,对于普通的国人来说,智能手机一定程度上就是诺基亚N系列,HTC还叫多普达,黑莓貌似压根就不属于我们,智能手机市场的格局很清晰,可以说那时候并不是智能手机的天下,一款诺基亚1110就足够了。

  s40已经达到娱乐的目的了,iPhone的诞生确实给了世界一个不小的轰动,智能手机风暴正在悄然来临,但是昂贵的价格还是让很多普通人望尘莫及,此时诺基亚依旧占有市场的很大份额,Symbian系统已经深入人心,有利可图的市场必然会出现搅局者,谷歌正如日中天,当起了这个搅局者的角色。

  安迪.鲁宾发明的android系统基于linux内核,这是从系统级与苹果iOS的最大不同,众所周知iOS采用的是unix内核,内核不同,但这丝毫不影响android强大的图形化操作。

Android

  最重要的是这样一款能和iOS媲美的手机操作系统是开源的,开源是一种精神,开源也让智能手机市场的格局骤变,智能手机生产商开始走向android阵营,MileStone想必体现的就是摩托罗拉要重新崛起,此时对于采用android操作系统的手机制造商可以说都是一个里程碑,接下来详细回顾下安卓带来的变革:

  1.智能手机不再是奢侈品

  开源的android使使用智能手机的门槛降低,如果你对手机硬件配置要求不太高,那么也许花几百元就能拿到一部智能手机,当然它的操作系统是android.

  2.android开发者成为程序员中的新宠

  为了打造了一个开放的开发者平台,谷歌在开源android的同时也开放了android API,开发的核心语言是程序员熟悉的java,因此对于很多传统的程序员来说,开发门槛较低,能从j2EE或者j2ME迅速转型,急需人才的android开发市场也让程序员的薪水大涨。

  3.创业公司和它们的优秀应用

  开放的android平台和较低的创业门槛吸引了众多的创业者,有的甚至打着曲线救国的口号研发自己的应用,可见创业青年们是何等的热血沸腾。

  4.软件商店已成必然

  即使有苹果的AppStore作为先例,但是AppStore毕竟只有一个,而第三方的android应用商店已经形成一道亮丽的风景线。

  5.移动广告平台的爆炸式增长

  依靠软件商店,好的app可以达到很高的下载量,但是别忘了这都是免费的,玩游戏大家都喜欢FTP,和谷歌的初衷一样,做平台,然后靠广告赚钱,app赚钱也可以采用广告模式,因此也造就了一个繁荣的移动广告平台市场。

  6.成熟的第三方ROM市场

  第三方可以修改android原生态的ROM,也基于原生态的android系统太过简单,所以第三方ROM几乎覆盖了所有的android设备。

  7.引领移动互联网真正的革命

  伴随着智能手机的普及以及基于智能手机的各种应用和服务的滋生,移动互联网真正意义上进入高速发展的阶段。

  以下是android和iOS以及WP7的比较:

  1)android和iOS相比

  android是开源的,iOS是封闭的,对于开发者,android设备相对于iOS便宜,所以很多开发者还是乐于选择做android开发,对于系统本身,android接纳的其他服务会很多,但是封闭的iOS也许会排斥这些相关的服务,虽然iOS目前是开发者赚钱最多的平台,但是依靠广告以及其他模式,android也会厚积而薄发。

  2)android和WP7相比

  虽然之前微软出过WM系统,但是比起WP7来说还是后者更加成功,所以就拿android和WP7做一个比较,微软和手机巨头诺基亚合作,依靠诺基亚和微软的资本,WP7会取得一定的市场份额,但是具体的情况目前还是个未知数,不过也难抵android开源的力量。

  以上可以说是对android一个大概的总结,出自本人对android的认识,也遗漏了些东西,比如android的第三方服务产业,典型的就是android开发者社区,再比如安卓培训等,在这里拿它和iOS,WP7比较,不是为了证明android就一定比其它的强,只是为了说明Android促使了移动互联网高速发展,可以说是一个风向标。

  来源:雷锋网供稿。