zoukankan      html  css  js  c++  java
  • 浅谈App原生开发、混合开发及HTML5开发的优劣

    App混合开发(英文名:Hybrid App),是指在开发一款App产品的时候为了提高效率、节省成本即利用了原生的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用。目前App的开发主要包含三种方式:原生开发、HTML5开发和混合 开发。

    原生应用开发,是在Android、IOS等移动平台上利用官方提供的开发语言、开发类库、开发工具进行App开发。比如android是利用java、eclipse、Android studio,IOS是利用Objective-C 和Xcode进行开发。原生应用由于利用的是官方提供的语言和工具并且能够直接操控硬件设备(比如多点触控、NFC、读取短信等),在应用性能上和交互体验上应该是最好的,但是原生应用的可移植性比较差,特别是一款原生的App,Android和IOS都要各自开发,同样的逻辑、界面要写两套。

    HTML5应用开发,是利用Web技术进行的App开发,我们知道web技术本身需要浏览器的支持才能进行展示和用户交互。主要用到的技术是HTML5、JavaScript、CSS等。现在还有一些开发框架可以利用,比如phoneGap、bootstrap、jquery等。H5开发的好处是可以跨平台,编写的代码可以同时在Android、IOS、Windows上进行运行。由于Web技术本身的限制,H5移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性。

    混合应用开发正是结合原生和H5开发的技术,取长补短的一种开发模式,原生代码部分利用WebView插件或者其它的框架为H5提供了一个容器,程序主要的业务实现、界面展示是利用H5相关的Web技术进行实现的。比如现在的京东、淘宝、今日头条等都是利用的混合开发模式。

    混合开发的优缺点:

    优点是:

    1、开发效率高,节约时间同一套代码Android和IOS基本都可用

    2、更新和部署比较方便,不需要每次升级都要上传到App Store进行审核了,只需要在服务器端升级就可以

    3、代码维护方便、版本更新快,降低产品成本

    缺点是:

    1、由于不能直接操控硬件有些方面性能不是很好

    2、另外有技术比较新版本的兼容性比较差,还有就是即懂原生开发又懂H5开发的高端人才难找。

    混合App开发是未来的趋势,目前混合开发中使用的技术也很多,主要的混合开发技术有jQuery Mobile、React Native、Cordova、APICloud、AppCan等。虽然混合开发能够提高效率节省成本,但也有很多的限制,除了硬件、缓存等的限制,各大平台之间的兼容性也不足。有的也比较消耗资源。

    三种开发模式基本功能的对比(因平台版本、应用情况不同经供参考)

     

    原生

    HTML5

    混合

    应用程序特性

         

    图形

    原生API

    HTML、Canvas和SVG

    HTML、Canvas和SVG

    性能

    快速

    慢速

    慢速

    原生外观和感觉

    原生

    模拟

    模拟

    分发

    应用程序商店

    Web

    应用程序商店

    设备访问

         

    摄像头

    通知

    联系人和日历

    离线存储

    安全的文件存储

    共享式SQL

    安全的文件系统和共享式SQL

    地理位置

    手势

         

    滑动

    缩放

    连接

    在线和离线

    主要是在线

    在线和离线

    开发技能

    ObjectiveC和Java

    HTML5、CSS和JavaScript

    HTML5、CSS和JavaScript

     
  • 相关阅读:
    iOS 模拟定位(自定义手机定位)
    iOS 关于启动app循环播放视频功能(常用于登录时)
    ios开发首次安装或者版本升级的引导页的判断
    字符串base64加密、解密
    ios/oc banner广告位---- 打开浏览器跳转链接
    oc 字符串 如何去掉前后空格、回车键
    swagger文档接口指定参数必传的方式
    打包运行报no main manifest attribute, in XXXX的解决办法
    @Query 报错Validation failed for query for method public abstract的解决办法
    两种获取随机字符串的方法
  • 原文地址:https://www.cnblogs.com/tdskee/p/9354991.html
Copyright © 2011-2022 走看看