最近开发几个项目,牵涉到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%;再或者原生占80%,Web占20%。 

优点: 

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

  • 不确定上线时间;
  • 用户体验不如本地应用;
  • 性能稍慢(需要连接网络);
  • 技术还不是很成熟。
比如Facebook现在的应用属于混合应用它可以在许多App Store畅通无阻,但是掺杂了大量Web特性,所以它运行速度比较慢,而现在为了提高性能FB又决定采用原生应用。 

结论 

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

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

--------------------------------------------------------------------------------------------------


更多相关文章

  1. Android原生和React Native 混合旧项目的开发环境搭建及打包
  2. Android(安卓)Ap 开发 设计模式第五篇:单件模式
  3. Android软件工程师像牛市一样如日中天
  4. 手机音视频开发 视频聊天APP应用
  5. 如何自学Android编程?(Android入门到精通的全路线)
  6. Android开发实践(六)字符串实现DES加密
  7. android手机开发课小结
  8. 【Android信息安防】三星KNOX容器(2)
  9. 短视频技术详解:Android端的短视频开发技术

随机推荐

  1. 【文档】五、Mysql Binlog事件结构
  2. g++ 连接 mysql 编译报错 /usr/bin/ld: c
  3. Mysql 查看及设置事物隔离级别
  4. mysql学习之路_外键
  5. 如何用mysql或Navicat实现流水号的插入
  6. 远程服务器CentOS7安装MySQL并用本地Navi
  7. 在mac中配置apache+php5.3+mysql的环境,修
  8. 如何在mysql中的两个值之间插入一个新值
  9. 主义通过扩展来破坏对实体的查询
  10. 新版MySql 5.6.20,安装后无法登陆的解决办