android 原生应用、Web应用、混合应用优缺点分析

最近开发几个项目,牵涉到android的几种开发模式。对于原生态开发、web 应用开发以及混合模式开发,本人认为并不是哪一种就是最好的,哪一种就是最差的,这个完全是根据自己的需求,选择一种合适的开发模式。他们同时具备自己的有点,同时也有自身的缺点,我们根据实际情况,取其中的优点,尽量避免掉缺点,才是最好的开发模式。下面,我们就一同看看,这三种开发模式,到底有什么区别。

一、原生应用 (也称本地开发 Native App

你使用过微软PowerPoint 或者 Word吧?这些可直接在你电脑上运行或者在智能手机上运行,简单来说,原生应用是特别为某种操作系统开发的,比如iOS、Android、黑莓等等,它们是在各自的移动设备上运行的。

优点:

  • 可访问手机所有功能(GPS、摄像头);
  • 速度更快、性能高、整体用户体验不错;
  • 可线下使用(因为是在跟Web相对地平台上使用的);
  • 支持大量图形和动画; 容易发现(在App Store里面)和重新发现(应用图标会一直在主页上);
  • 应用下载能创造盈利(当然App Store抽取20-30% 的营收)。

缺点:

  • 开发成本高;
  • 支持设备非常有限(一般是哪个系统就在哪个平台专属设备上用);
  • 上线时间不确定(App Store审核过程不一);
  • 内容限制(App Store限制);
  • 获得新版本时需重新下载应用更新。

举例:Yellow Pages Group 就开发了是几个版本(iOS、黑莓、Android),他们在每一个原生应用市场都有上架。

二、Web 应用

Web应用本质上是为移动浏览器设计的基于Web的应用,它们是用普通Web开发语言开发的,可以在各种智能手机浏览器上运行。

优点:

  • 支持设备广泛;
  • 较低的开发成本;
  • 可即时上线;
  • 无内容限制;
  • 用户可以直接使用最新版本(自动更新,不需用户手动更新)。

缺点:

  • 表现略差(对联网的要求比较大);
  • 用户体验没那么炫;
  • 图片和动画支持性不高;
  • 没法在App Store中下载、无法通过应用下载获得盈利机会;
  • 要求联网;
  • 对手机特点有限制(摄像头、GPS等)。

对于这些缺点,如果能把HTML 5的优点用到Web上的话就会得到很大改善,尽管技术在提高, 目前它还不能做原生应用可以做的每件事。

有些公司,比如金融时报继原生应用后也开发了Web应用,用户通过浏览器来访问他们的应用,因为他们的应用要采取应用内购买,而App Store是不允许应用内购买的,不然它们就无法拿到那20%-30% 的抽成了。

三、混合应用(HyBrid App 开发)

混合应用大家都知道是原生应用和Web应用的结合体,采用了原生应用的一部分、Web应用的一部分,所以必须在部分在设备上运行、部分在Web上运行。

不过混合应用中比例很自由,比如Web 占90%,原生占10%;或者各占50%。

优点:

  • 兼容多平台;
  • 顺利访问手机的多种功能;
  • App Store中可下载(Wen应用套用原生应用的外壳);
  • 可线下使用。

缺点:

  • 不确定上线时间;
  • 用户体验不如本地应用;
  • 性能稍慢(需要连接网络);
  • 技术还不是很成熟。

比如Facebook现在的应用属于混合应用它可以在许多App Store畅通无阻,但是掺杂了大量Web特性,所以它运行速度比较慢,而现在为了提高性能FB又决定采用原生应用。

结论

现在如果你在想哪种应用是最好的,那答案就是,看情况而定:

  • 比如,你的预算是多少?预算充足的话可以开发几个本地应用加一个Web应用。
  • 你的应用需要什么时候面市?Web应用可以很快地开发然后直接推出来。
  • 你的应用需要包含什么特点和功能?如果跟手机的某些功能深度整合了,比如摄像头,需要呈现大量图形和动画就选原生应用好点。
  • 在现实开发过程中,很多开发人员往往是自己熟悉那种开发就会用自己擅长的,也是情理之中的。但是,因为自己擅长,就肯定是最好的,排斥其他不熟悉的开发模式,这样下结论,就有点目光短浅和草率了。

android 原生应用、Web应用、混合应用优缺点分析,布布扣,bubuko.com

时间: 2024-10-15 12:21:40

android 原生应用、Web应用、混合应用优缺点分析的相关文章

WebRTC原生开发和混合开发优缺点分析对比

WebRTC的出现,让企业快速开发出一个支持全平台的音视频程序成为可能.在WebRTC之前,企业想要开发出一个全平台的音视频程序,难度,工作量非常大.使用WebRTC后,音视频程序中一些通用的模块比如音视频采集,播放模块,rtp,rtcp协议模块,都可以直接复用WebRTC现成的,不用自己再重复造轮子.这些模块开发难度不是很大,但是工作量非常大.使用WebRTC后,企业可以专注于优化流程,解决bug,实现业务需求. 目前,开发WebRTC程序有两种途径 原生开发,自己下载WebRTC代码,每个平

wex5 教程 之 web网站android原生模式打包

如果有成型的web网站,想做成手机app,如何用wex5来打包成apk呢?比如说百度视频,我想打包成自已的apk安装到手机上,怎么做呢? 官方提供了四种打包模式,都需要提供服务地址,也就是说要有一台服务器来提供服务.我只是要把web地址封装一下,apk打开后跳转到网页就行,显然服务地址是不需要的. 那如果用wex5的页面frame组件加载一个web页面呢? 经测试,这种方法可行,问题是,w页面是wex5自创的页面,不是html的document页面,会出现视频格式不能播放,无falsh插件问题.

web?混合?原生?移动开发的三种模式选择

原文网址链接:http://www.ctocio.com/mobile/10169.html 今天,消费者在移动app应用(包括原生和混合)上花费的时间(94分钟/天)超过移动web(72分钟/天),于是"移动优先"成为移动开发战略的热门口号,但实际上移动web和移动app又有各自不可替代的优势,不同的移动开发模式都有成功的案例,企业需要根据自身的产品和业务属性.移动战略及目标用户需求,选择适合自己的开发道路. 下面是AppCloud制作的一张信息图,为我们详细对比了纯web(HTML

原生,html5,混合Hybird

app开发的三种模式:原生,html5,混合Hybird Native APP:就是所说的原生开发,Native Code编程,代码编译之后以2进制或者字节码的形式运行在OS上,直接调用OS的Device API: Web APP,以HTML+JS+CSS等WEB技术编程,代码运行在浏览器中,通过浏览器来调用Device API(取决于HTML5未来的支持能力): Hybrid APP,就是混合开发.部分代码以WEB技术编程,部分代码由某些Native Container承担(例如PhonGAP

Android进阶(二十七)Android原生扰人烦的布局

Android原生扰人烦的布局 在开发Android应用时,UI布局是一件令人烦恼的事情.下面主要讲解一下Android中的界面布局. 一.线性布局(LinearLayout) 线性布局分为: (1)垂直线性布局: (2)水平线性布局: 针对这两种区别,只是一个属性的区别 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertic

Android 原生 Android ActionBar Tab (滑动)导航

本文内容 环境 项目结构 演示一:ActionBar Tab 导航 演示二:ActionBar Tab 带滑动导航 本文演示 Tab 导航.第一个演示,是基本的 Tab 导航,第二个是带滑动的 Tab 导航. 另外,个人觉得,通过本例能够知道,如何创建初始化 Fragment,并把 Fragment 放入"容器"中.容器既可以是 LinearLayout.RelativeLayout,也可以是 ViewGroup.这类似初始化 Web 应用程序页面的实现,困扰了我很久,不解决这个问题,

如何在android studio中cordova的混合开发

基于Android Studio 中Cordova的开发 cordova简介 Cordova的前身是PhoneGap 官网: (http://cordova.io) Cordova应是运行在客户端本地应用容器的web应用.因此,运行在Cordova容器中的Html5应用的结构和传统的基于web服务器的有所不同.传统的web应用中服务器端做了大部分工作,比如按照用户请求传回生成的内容.而Cordova这种容器中的应用本身包括了所需要的静态页面,用户请求一般由js代码响应并与服务器交互,这样与服务器

Android原生json和fastjson的简单使用

android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json 1 //创建学生对象 2 Student student=new Student(); 3 student.setAge(23); 4 student.setClazz("六年级"); 5 student.setName("王二麻子"); 6 //创建JSONObject 7 JSONObject jsonObject=new

android原生ExpandableListView

android原生可扩展ExpandableListView就是可以伸缩的listView,一条标题下面有多条内容. 这个list的adapter对的数据要求与普通ListView的数据要求也有一些差别,这个list需要有两个数据源 一半需要 List<String> groups 作为group 和一个 Map<String , List<String>> children 作为children,他们最好意义对应 ExpandableListView使用起来和普通的l