浅谈App原生开发、混合开发及HTML5开发的优劣
来源:互联网 发布:负反馈放大器实验数据 编辑:程序博客网 时间:2024/06/15 15:44
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等。虽然混合开发能够提高效率节省成本,但也有很多的限制,除了硬件、缓存等的限制,各大平台之间的兼容性也不足。有的也比较消耗资源。
案秀云Android端利用WebView进行混合开发(有兴趣的同学可以进qq群交流:161154103 或者搜索微信公众号“案秀云”下载最新代码)
三种开发模式基本功能的对比(因平台版本、应用情况不同经供参考)
原生
HTML5
混合
应用程序特性
图形
原生API
HTML、Canvas和SVG
HTML、Canvas和SVG
性能
快速
慢速
慢速
原生外观和感觉
原生
模拟
模拟
分发
应用程序商店
Web
应用程序商店
设备访问
摄像头
有
无
有
通知
有
无
有
联系人和日历
有
无
有
离线存储
安全的文件存储
共享式SQL
安全的文件系统和共享式SQL
地理位置
有
有
有
手势
滑动
有
有
有
缩放
有
无
有
连接
在线和离线
主要是在线
在线和离线
开发技能
ObjectiveC和Java
HTML5、CSS和JavaScript
HTML5、CSS和JavaScript
- 浅谈App原生开发、混合开发及HTML5开发的优劣
- 混合开发,原生+html5
- ios 开发之 原生+html5混合开发 [[ 方法互调 ]]
- APP,原生和H5开发技术混合开发
- Web开发、原生开发、混合开发的区别优势:
- 手机应用开发的原生app,WEBAPP,混合app的认识
- 目前开发手机app的几种方式?怎么判断一个APP是原生APP、混合APP还是WEB APP ?
- Android原生APP中添加ReactNative 进行混合开发教程
- Android原生APP中添加ReactNative 进行混合开发教程
- 混合开发-利用Cordova插件实现HTML5 与 原生代码的连接
- 开发移动应用程序的三种选择:原生、HTML5或混合
- 谈谈App混合开发
- 谈谈App混合开发
- 混合app开发
- 混合app开发
- h5混合APP开发
- Android App混合开发
- 什么是混合app开发
- Unity 各个方面的性能优化
- 无序数组中,三个数的乘积最大
- 生活日记1
- 647.Palindromic Substrings(动态规划)
- EasyDarwin流媒体服务器高性能优化方向
- 浅谈App原生开发、混合开发及HTML5开发的优劣
- Codeforces 868 D. Huge Strings 字符串思维乱搞
- android开发-Hashmap源码解析
- Golang http 建立Web服务器
- 线性表
- construct2 创立射击小游戏
- Windows下安装git
- mnist文件提取成bmp(matlab代码)
- hdu 4622 Reincarnation(hash)