原生和html比较

关于Android、iOS原生开发与html跨平台开发的优劣

  (2015-05-19 13:03:59)
标签: 

it

 
最近又被人问这个对互联网产品&技术人员来说,是常识到好比炒菜为什么要放盐这样的问题,虽然每次都是耐心的向对方解释其所以然,但真有点累觉不爱,所以今天将这个问题做全面的分析并总结于此,从运行效率、开发效率、应用更新问题等各个不同的方面来阐述:

1.运行效率:

原生代码基于当前环境的底层运行,而html则是在环境之上的Web解析容器中,这种结构上的差异,导致html的效率是不可能超过原生代码所构建的应用程序的。

虽然在硬件如此飞速发展的现在,应用形式的APP几乎不用考虑运行效率这个问题,但我想大家基本很少会看到某大型手游是基于html来开发构建的。


2.开发效率

如果是做单一的平台、功能简单、并且对细节要求不高的情况下,开发效率的差别其实不会太大。

如果对细节要求比较高,原生的效率会相对更好一点,这源自于每个平台都有其默认的交互形式,原生的完全不用考虑这一点,系统已经帮你解决这个问题,但html则不行,都需要开发人员来处理,忽略这些则会降级产品质量。

如果功能比较复杂,例如需要用到摄像头、重力与加速度传感器、蓝牙通讯等,则原生的效率会要更高,原因是如果html需要用到这些功能,则需要做对应的原生接口,这就造成了额外的工作量。

如果是做多个平台,功能简单,并且对细节要求不高的情况下,html在开发效率上会有一定优势,这源自于一套html可以在不同平台上运行的结果。

如果是做多个平台,但对细节要求高,或者功能比较复杂,则原生的效率会更高。因为对细节要求高,即便使用html来做也需要对各个不同的平台来做适配,这样与开发多个平台的工作相比是没有区别的,而html还需要额外考虑交互问题与功能接口问题,所以开发效率上必然会低很多。

另外,有许多人可能会提出现在有很多html的跨平台工具,可以解决不同平台上的一些底层问题,但如果对产品的质量要求高,那么这些工具其实都是在瞎忙活,你还是得为不同的平台来适配,除非牺牲产品质量。而使用第三方的工具还会带来额外的隐患:我的应用不仅仅依耐平台本身的质量,还依耐第三方工具的质量,这就对产品造成了更大的风险。

所以,如果是多平台,功能简单并且对产品质量要求不高的情况下,html有一定的开发效率优势,否则原生开发效率会更高。


3.应用更新问题

html的优势是发布后用户立马更新,但原生的需要重新安装,这一点html会有一定优势,但现在自动更新功能已十分普及的情况下,优势也不是特别明显。


结论:
基本不要去考虑使用html去做APP产品,除非你对产品质量要求不高,并且希望由此降低开发成本。
这个结论之前Facebook已经公开承认过:使用html做APP开发是一个失败的决策。


另外:
对于市面上html的跨平台工具,我认为这些东西几乎是没有太多存在意义的。由此带来的第三方工具风险不说,互联网的产品是一次开发,所有人都可以使用,并且竞争相对比较激烈的。你难道会为了节省一个开发人员的薪资成本而去牺牲产品质量,从而在竞争中让产品处于劣势么?即使是在初期!

当然跨平台开发工具在一个领域是非常好的:游戏。(注:不是html跨平台工具)
游戏的开发成本是要比一般的应用APP高很多的,所以对于节省开发成本这一点上的效果会比较明显,并且游戏都有其各自的交互形式,不会和具体平台扯上太多的关系。
另外,游戏由于其对执行效率的要求会比较高,所以在执行效率上处于劣势的html就成了累赘,现在很多主流的游戏跨平台开发工具最后都是编译为各自平台的底层代码,或者运行在虚拟机上的二进制文件,如果使用html来实现,这是自己给自己找麻烦。

猜你喜欢

转载自blog.csdn.net/jianpengxuexikaifa/article/details/49364941
今日推荐