原生应用程序:
原生应用程序是某一个移动平台(比如iOS或安卓)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java)。原生应用程序看起来(外观)和运行起来(性能)是最佳的。
HTML5应用程序:
HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。这种只编写一次、可到处运行的移动开发方法构建的跨平台移动应用程序可以在多个设备上运行。虽然开发人员单单使用HTML5和JavaScript就能构建功能复杂的应用程序,但截至本文截稿时仍然存在一些重大的局限性,具体包括会话管理、安全离线存储以及访问原生设备功能(摄像头、日历和地理位置等)。
混合应用程序:
混合应用程序让开发人员可以把HTML5应用程序嵌入到一个细薄的原生容器里面,集原生应用程序和HTML5应用程序的优点(及缺点)于一体。
简而言之,原生应用程序提供了最佳易用性、最佳特性以及最佳总体移动体验。以下这些是只能通过原生应用程序才能实现的功能:
•多点触控:双击、缩放及其他组合的用户界面(UI)手势。
•快速图形API:原生平台为你提供了显示最快速的图形。如果你显示只有寥寥几个元素的静态屏幕,这个功能可能不太重要,但如果你使用大量数据,需要快速刷新,这项功能却很重要。
•流畅动画:与快速图形API有关的是实现流畅动画的功能。这在动画、高度交互的报表或者转换照片和声音的计算密集型算法中显得尤为重要。
•内置部件:摄像头、地址簿、地理位置及设备的其他原生功能可以无缝地整合到移动应用程序中。另一个重要的内置部件是加密的存储装置,这方面稍后会有详细介绍。
•易于使用:原生平台是人们耳熟能详的平台,所以如果你在这个熟悉的平台上添加人们期望的所有原生功能,也就拥有了一款使用起来完全更容易的应用程序。
•说明文档:市面上仅仅介绍iOS和安卓开发的图书就有2500多本,Stackoverflow等网站上还有不计其数的文章、博文和详细的技术帖子。
| 原生 | HTML5 | 混合 |
应用程序特性 |
| ||
图形 | 原生API | HTML、Canvas和SVG | HTML、Canvas和SVG |
性能 | 快速 | 慢速 | 慢速 |
原生外观和感觉 | 原生 | 模拟 | 模拟 |
分发 | 应用程序商店 | Web | 应用程序商店 |
设备访问 |
| ||
摄像头 | 有 | 无 | 有 |
通知 | 有 | 无 | 有 |
联系人和日历 | 有 | 无 | 有 |
离线存储 | 安全的文件存储 | 共享式SQL | 安全的文件系统和共享式SQL |
地理位置 | 有 | 有 | 有 |
手势 |
| ||
滑动 | 有 | 有 | 有 |
缩放 | 有 | 无 | 有 |
连接 | 在线和离线 | 主要是在线 | 在线和离线 |
开发技能 | ObjectiveC和Java | HTML5、CSS和JavaScript | HTML5、CSS和JavaScript |
让我们一起遨游在代码的海洋里!