您的位置首页>硬件>

android开发是否被h5代替?

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解android开发是否被h5代替?问题。大量新型移动设备的崛起,改变了互联网的未来。HTM

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解android开发是否被h5代替?问题。

大量新型移动设备的崛起,改变了互联网的未来。HTML5会在技术发展中取代App应用吗?或者能被替代到什么程度?在HTML5规范中,增加了摄像头、磁罗盘、GPS信息的支持。许多新兴浏览器也开始支持这些新功能。一个统一的HTML5能代替安卓和ios并行开发的双重成本吗?下面这篇由Michael Mahemoff翻译的文章详细分析了HTML5能否取代安卓和iOS应用。

介绍

移动应用(App)和HTML5是目前最热门的技术,两者之间有很多重叠。运行在移动设备浏览器中的Html5网页也可以重新打包成运行在不同平台上的应用程序。目前很多浏览器都有很好的跨平台支持,(翻译注意:firefox实际上可以在android中使用与windows中相同的浏览器内核),HTML5的web解决方案更方便开发者。一旦完成,它可以被多个平台使用。但是真的可行吗?开发者选择app开发还有很多必要的理由。显然,很多人已经在这样做了。本文将详细分析这两种方案的优缺点。

功能丰富

方块:App中可以开发更多功能。

我们将移动功能分为两类。程序本身和程序与系统的结合。例如,在android中,添加小部件图标或通知和提醒。App两者都可以。不用说,这是肯定的。

交易对手:APP相当强大,但Web也在迎头跟进。

事实上,许多原生应用实现了HTML5无法比拟的功能。不管你的网络有多好,如果你呆在一个没有摄像头支持的沙盒里,很多场合还是玩不了。幸运的是,现在没有这样的沙盒限制。如果您需要您的网络照片,您可以制作一个照片应用程序,然后将您的网络打包到该应用程序中。开源的PhoneGap框架做到了这一点。这样,widget、手机提醒都没问题。

但是这种混合开发的问题在于它增加了复杂性,并且它不像传统的web那样直接在浏览器中运行。恐怕在短时间内我对这个问题无能为力。幸运的是,网络标准在不断高速扩展,先进的浏览器也在跟进。安卓3.1已经支持摄像头了。IOS浏览器还支持WebSocket和设备方向检测。

总的来说,移动设备在发展,网络也在快速变化。桌面浏览器本身,有五大浏览器开发者在改进现有标准和丰富新功能。因此,原生App在快速推进的同时,web也在缩小差距。

经营效率

方块:原生APP更快。

原生APP没有瓶颈,可以直接调用GPU加速使用多线程。

对应:现在,网络快得多,大多数应用程序不需要那么快。

这个说法有点过时了。当Chrome发布时,Javascript V8带来了网络速度的飞跃。现在,计算速度越来越快:

图像处理引擎使用了网络加速。现在硬件加速也得到了应用。看看硬件加速的画布。

如果你想开发3D游戏,你不必争论,但是对于赖平来说,新闻、邮件、时间管理、社交网络,所有这些在网络上都足够了。试试史蒂夫索德斯的手机性能测试工具。此外,越来越多与WebGL结合的框架可以利用OpenGL的优势。例如,ImpactJS帮助开发JS游戏。

发展感觉

方块:原生APP很好写。

原生APP使用了很强的编程语言(Java、ObjecTIve C、C)。适合写复杂的程序,历史证明API丰富。在桌面环境中,使用模拟器进行测试非常方便。乱七八糟的Web程序和各种浏览器的运行时是个大问题。

对应:一般来说,Web比较简单,尤其是需要兼容不同设备的时候。

网络最初的功能仅限于文档展示,而不是应用。JS好像最近两周才出现。但是有了JS,网络世界马上就会不一样了。更何况网络不仅仅是静态的,HTML5、CSS3、EcmaScript Harmony(谁知道这是什么?)对开发者有很大的帮助。如果你喜欢C、java和JavaScript,那么你的个人爱好就是基于你保存的代码。但现在没人能否认JavaScript和前者处于同一阶段。

作为APP,浏览器/runTIme不兼容(碎片化),反之亦然。用Java写安卓app,然后面对iOS的ObjecTIve C。如果你会写程序,可以马上在安卓和iOS上运行。真麻烦。我们还没有提到WebOS、黑莓和Windows Mobile。当然,这是理论上的。如果你想让程序在每个平台上都运行得很漂亮,你必须做大量的调试和妥协。这双

很多原生APP也是一样的。不同OS版本,不同的设备。。。

  所谓的Web碎片化,一直都是如此。但好消息是现在已经有很多不错的解决办法。Modernizr库,用得好的话,可以帮你兼容一大批主流设备,不管是啥系统,哪个牌子的。看看我们2011年的Google IO演示。

  用户体验

  

  正方:原生APP更切合原有平台

  操作感受的定义之一,就是用户希望在你的程序里,用与系统连贯统一的方式来操作。不同的平台,都有一些约定俗成的习惯。比如长按按钮会有啥反应。你不能指望用一套统一的HTML5 App去满足所有用户。

  此外,整个平台的操作感受都由用平台自有的软件库协调。直接调用平台工具包就能直接免费获得完整支持。

  反方:我们Web有自己的传统,你要特想做原有平台那种感觉的web,也一样能做出来

  前面说了,Web开发的方式,是先做一个大体适合所有平台的版本,然后再针对不同平台不断改进。当这些改进主要是针对功能时,你可以选择几个你最关心的平台做优化。类似于浏览器检测。技术论坛里的悲催技术员们,经常抱怨这事。太多不同的浏览器版本了。不过如果你优先关注两三种主流平台,是值得为他们多花点时间做做优化。

  web本来就有自己的操作感受。我们也可以说,不同的默认浏览器以及运行环境造就了独特的“Web感受”。从更广的角度看,这本身就是一种用户公认的方式。此外,还有很多成功的案例并不遵循移动设备的原生操作习惯,人家也成功了。想想你最喜欢的手机游戏的界面?很多更传统的app也是一样,比如Twitter客户端。

  传播途径

  正方:原生应用更容易接触客户

  象Google Play和Apple Store这样的app发布机制这几年势不可挡,推动了整个移动行业。每个程序员都能在市场里发布自己的应用。用户都挤在市场里浏览,搜索,接受推荐。不仅如此,只要你的程序够好,现有用户的打分会帮助你说服更多新的客户。

  

  反方:其实web才容易接触到客户

  通过web找到内容,这是经过论证的可靠途径。利用URL,每一项发布的内容都有一个独立的地址,包括在网站上发布的应用程序。搜索引擎帮助发现内容,其他网站提供链接,还有一些类似应用市场的分类网站。用户还可以邮件、短信、在社交网站分享你的链接。你的应用链接可以直接在不同设备上直接打开。

  web上还没有一个统一的评分系统,但这个情况也在发生改变。往下看。。。

  收费

  正方:App收费:应天意,顺民生

  “六岁孩子午饭时做app,$3一个,卖出几百万”。最近常听看到这样的新闻。各种大小厂商也跟着蜂拥而至,等着圈钱。应用商点帮开发商直接收费。最简单的办法,一次性收费。也有在app里再另行收费或者做订阅收费的,这帮助开发商赢得长期稳定的回报。

  此外,传统网站的广告、赞助,在app里也同样适用。

  反方:网站赚钱,从来都不是问题。现在机会还越来越多

  Web能成为现在社会的推动力,有能力用多种方式取得回报,这是基本条件。虽然使用付费并不普遍。但SaaS的模式已经相当普及了。成功案例包括Google Apps,37Signals的系列产品,各类邮件的收费版。另外,直接收费并不是web应用的唯一模式。广告、会员链接,赞助,其他产品服务的交叉推广都是可选的模式。

  看着能在应用市场里直接赚钱而眼红的Web开发商们,你们不能直接把你的URL发进市场,但是做一个浏览web的app的壳子来连到自己的web上怎么样?现在市场中如果不说数以千计,至少也有上百的app这么干了。有些包装的好的,你甚至察觉不到他是一个web程序。

  

  以后应用市场会直接支持web程序吗?这个现在还不好说,但去年Google已经建了个Chrome web store。虽然还只能从桌面电脑放问,但这已经挑起了浏览器厂商的兴趣。现在还只是个初步概念,但看起来挺有前途。

  结论

  现在还看不出完胜的一方。有些应用适合做app,有一些适合用html5。目前的情况,原生APP肯定是一个很重要的选择。上面提到的混合式开发,可能是一个不错的妥协方案。能用web的时候用app调用web。web实现不了的功能用app开发。

  如果你选择web方式,要在web标准和不断的改进上用心。web技术本身的优点就是能兼容大批不同的操作系统和设备。消极的看,你也可以这是碎片,但web就是一切通吃。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。