android开发之HTML5、Native或Hybrid App开发全接触

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:10 我要评论(0)

许多企业向实施移动战略迈出了头几步,它们正面临将影响移动项目成效的一个重要决定。为移动App选择一种开发方法:Native、Web还是 Hybrid的过程牵涉许多因素,比如预算、项目时间表、目标群体和App功能,等等。每种方法都有天生的优点和局限性,找到最适合本企业要求的一种开发 方法可能是项艰巨的任务。

开发方法介绍

一、Native App

Native App含有二进制可执行文件,直接下载到设备上,并存储在本地。安装过程由用户启动;在一些情况下,由企业的IT部门启动。下载Native App的最常见方法是访问应用程序商店,如苹果的应用程序商店、安卓的应用程序市场或黑莓的应用程序世界;但是还有其他方法,有时由移动开发商来提供。

一旦应用程序安装到了设备上,用户可以如同启动设备提供的其他任何服务那样启动应用程序。一旦完成初始化,Native App就直接与移动操作系统进行联系,不用通过任何中介或容器。Native App可随意访问由操作系统开发商提供的所有应用编程接口(API);在许多情况下,NativeApp有着某种特定的移动操作系统所常见的独特外观和感 觉。

想创建Native App,开发者必须编写源代码(采用人类可读的形式),并建立额外资源,比如镜像、音频段和针对特定操作系统的各种声明文件。使用由操作系统开发商提供的 工具,对源代码进行编译(有时还要进行链接),目的是为了建立一个二进制形式的可执行文件,它可以连同其余资源封装起来,并随时可供分发。

这些工具以及其他实用程序和文件通常名为移动操作系统的软件开发工具包(SDK)。虽然不同操作系统上进行的开发过程常常很相似,但是SDK视特定 的平台而定,每一种移动操作系统都随带各自的独特工具。下面这张表显示了与四大移动操作系统有关的不同工具、语言、格式和分发渠道。

台之间的这些区别导致了Native开发方法的最重大缺点之一:为一种移动平台编写的代码无法在另一种平台上使用;这样一来,为多种操作系统开发 和维护Native App成了一项时间很长、成本很高的任务。

那么,为什么尽管存在成本高昂的这个缺点,许多公司还是选择Native开发这条路呢?为了回答这个问题,我们就要更清楚地了解API的角色。

应用编程接口(API)

一旦Native App安装到了移动设备上,并由用户启动,它就能借助操作系统公开的专有API调用,与移动操作系统进行联系。这些API可以分为两大类:低级API和高 级API。

低级API

正是借助这些低级API调用,应用程序能直接与触摸屏或键盘进行联系、渲染图形、连接至网络、处理从麦克风收到的音频、通过扬声器或麦克风播放声 音,或者接收来自摄像头的图像或视频。应用程序能访问全球定位系统(GPS)、接收方位信息,当然还可以读写固态硬盘上的文件,或者访问现有和将来会有的 其他任何硬件元件。

高级API

除了提供我们刚才提到的低级硬件访问服务外,移动操作系统还提供对个人移动体验来说很重要的较高级服务。这类服务包括浏览Web,管理日历、联系人 资料和相册等过程,当然还包括打电话或收发文本消息的功能。

虽然大多数移动操作系统包含一组内置的应用程序可以执行这些服务,但是还让Native App可以访问一组公开的高级API,让它们可以访问上述许多重要的服务。其他API让可下载式应用程序可以访问操作系统开发商提供的各种基于云的服务, 比如推送通知(Push Notifications)或应用程序内购买(In-App Purchase)等服务。

GUI工具包

操作系统提供的另一组重要的API是GUI工具包。每一种移动操作系统都随带各自的一组用户界面组件,比如按钮、输入区、滑块、菜单、菜单栏、对话 框及其他。可以使用这些组件的应用程序继承了该特定移动操作系统的外观和感觉,通常会带来非常流畅的用户体验。

值得一提的是,不同的移动平台带有一系列独特的用户界面组件。因而,为了可在多种操作系统上运行而设计的应用程序需要设计者熟悉每一种操作系统不同 的用户界面组件。

虽然API视特定的操作系统而定,并且给开发诸多Native App的工作大大增添了复杂性和成本,但是这些元素只是创建丰富移动应用程序的手段而已,这些应用程序可以充分利用现代移动设备所提供的全部功能。

二、移动Web App

现代移动设备包含功能强大的浏览器,这些浏览器支持许多新的HTML5功能、CSS3和高级JavaScript。由于最近在这方面取得的进 展,HTML5预示着这项技术将从一种 页面定义语言 ,转变成一种功能强大的开发标准,用于开发丰富的、基于浏览器的应用程序。

表明HTML5大有潜力的几个例子包括:高级的用户界面组件、可以访问丰富媒体类型、地理位置服务和离线功能。使用这些特性和处于开发中的其他更多 特性,开发者就能仅仅使用Web技术,开发出高级应用程序。

不妨先来区别一下两种极端的Web App开发方法。我们都熟悉移动浏览和针对移动设备优化的网站。这些网站能够识别何时被智能手机访问,因而呈现为了在小尺寸屏幕上提供舒适的 触摸体验设计的HTML网页。但是有些公司更进一步,建立了移动网站,以改善用户体验。这种移动网站看起来就像Native App,可通过快捷方式来启动,这与启动Native App的方式没什么不同。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...