116、对移动端开发的了解
1、三种移动端开发模式
现今流行的移动端开发模式共有三种:
- web(H5)
- Hybrid(混合开发)
- Native(原生)
1.1 Native APP(原生开发)
Native APP又称原生APP,就是我们平时说的手机应用软件。
原生APP 是针对IOS、Android、Windows等不同的手机操作系统要采用不同的语言和框架进行开发出来的,通常是由“服务器数据+APP应用客户端”两部份构成。
技术: iOS: Object C或者 swift Android: java
优点:
- 体验好,用户无法上网也可访问APP应用中以前下载的数据;
- 性能稳定,可调用手机的硬件设备(语音、摄像头、短信、GPS、重力感应等)和本地资源(通讯录,相册等);
- 操作速度快,能够实现出色的动效,转场动画;
缺点:
- 跨平台差,每种平台都需要独立的开发语言。Java(安卓),Objective-C(iOS)等等;
- 用户要使用原生APP,必须通过安装到手机里面才行,而且APP软件体积大,占用较多手机内存容量;
- 要获取最新功能,需要升级应用,所以会容易出现有些用户不升级,导致多个不同功能版本出现,维护成本大;
- 开发周期长,开发人员工资起点高;
- 更新缓慢,根据不同平台,提交–审核–上线流程较复杂;
1.2 Hybrid(混合开发)
混合开发,就是Native结合Web的混合开发。内部本质是Web网页,使用打包软件给它套一层原生APP的外壳。可以在应用商店AppStore发布,可自主更新。
技术:React Native, phoneGap(cordova+android) ,APICloud, WeX5
优点:
- 既可以调用丰富的手机设备API,也能拥有Web APP的跨平台能力
- 可以在应用商店发布,实现收费下载
- 内部是网页结构,可以自主更新,做到开发一次,所有平台生效
- 降低开发成本和技术成本,降低维护和开发周期
缺点:
- 本质上就是一个Web APP使用了原生APP的壳,所以体验比不上原生APP
- 开发难度比Web APP高,有一定的学习成本,开发周期比Web APP长
- APP发布有可能无法通过审核,需要多次调整,才能发布
- 依赖开发框架本身提供的手机设备API,少部分设备功能只能借住原生语言进行调用才可以
- 对团队技术栈要求相对高,既要懂web开发的,也要懂原生APP开发的
1.3 Web开发
Web APP本质上是为移动浏览器设计的网站,可以在各种智能手机浏览器上运行。
技术:HTML5+Javascript+CSS3 vue组件化+项目打包
优点:
- 一套代码到处运行,可以同时在 PC、Android、iPhone 浏览器上访问
- 开发者不需要发布到应用市场审核,用户不需要下载、安装和更新
- 开发周期短,维护成本低
- 用户不需用户手动更新,可以自动更新,直接使用最新版本
缺点:
- 转场表现略差,要求联网
- 用户体验没那么炫。图片和动画支持性不高
- 没法在App Store中下载、无法通过应用下载获得盈利机会
- 对手机功能应用缺乏,有限制(摄像头、GPS、蓝牙等)
1.3 三种移动端开发模式的比较
- 开发难度:无疑web和Hybrid难度要小于原生app开发,而且可以利用现有的Web开发工具和工作流程;
- 发布渠道及更新方式:Hybrid可以在应用商店AppStore发布,可自主更新;原生App更新必须通过商店AppStore;
- 移动设备本地API访问:Hybrid可以通过jsAPI访问移动设备的摄像头,GPS等;原生App 可以通过原生编程语言访问设备的所有功能;
- 跨平台,可移植性:基于浏览器的移动web具有最好的可移植性和跨平台表现;混合开发也能节省跨平台的时间成本,只需要写一次核心代码就可以部署在不同的平台;原生App跨平台性能差。
- 消息推送:只有混合App 和原生App支持推送消息,增加用户忠诚度。
参考:
移动端开发相关概念_wangfan741的博客-CSDN博客
移动端开发模式_松鼠豪的坚果-CSDN博客_移动端开发模式
2. 移动端开发的基础知识
参考:
什么是移动端开发【重点学习系列---干货十足--一万字详解】_拎着壳儿跑的蜗牛-CSDN博客_什么是移动端开发
移动端开发基础知识_陈皮糖的博客-CSDN博客_移动端开发
116、对移动端开发的了解相关推荐
- 前端系列——vue2+高德地图web端开发(行政区边界绘制)
vue2+高德地图web端开发(行政区边界绘制) 前言 原理 基础 实现步骤 1.eslint设置AMap为全局变量放置报错 2.Search.vue传输给MapContainer.vue数据然后进行 ...
- Erlang服务端开发(无需Erlang基础)笔试题
某游戏公司Erlang服务端开发(无需Erlang基础)笔试题,面向C/C++程序员 一.用你熟悉的语言解决下面的问题. 1.反转输出字符串,并移除其中的空格. 2.快速的判断一个数是否素数的方法. ...
- 一场B站服务端开发面试之旅
作者 | 蓝 来源 | 我是程序员小贱(ID:Lanj1995Q) 此次B站服务端开发面试之旅可谓惊险,不过通过对大部分面试题套路的掌握,不出意外还是拿下了,下面我们来看看这些题是不是常见的不能再常见 ...
- 飞桨端到端开发套件揭秘:低成本开发的四大秘密武器
11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响. 很多未到场的开发者觉得遗憾,希望可以 ...
- JMessage Android 端开发详解
JMessage Android 端开发详解 目前越来越多的应用会需要集成即时通讯功能,这里就为大家详细讲一下如何通过集成 JMessage 来为你的 App 增加即时通讯功能. 首先,一个最基础的 ...
- java服务端开发 php_PHP使用thrift做服务端开发
php中文网最新课程 每日17点准时技术干货分享 php使用thrift做服务端开发 thrift采用接口描述语言定义和创建服务,用二进制格式传输数据,体积更小.效率更高,对于高并发.数据量大和多语言 ...
- taro 引入js_Taro跨端开发之多业务模块管理 React Native篇(终篇)
React Native 热更新方案 rn的业务越来越庞大,同时协同的团队越来越多. rn的动态化就必须提上日程了. 对于rn热更新,首当其冲的问题就是分包. rn的基础库很大,再加上我们依赖了很多的 ...
- 移动端开发, 常用CSS单位
(转)https://www.cnblogs.com/mylove103104/archive/2015/06/18/4584779.html rem "em" 单位是我们开发中比 ...
- 第13章 Kotlin 集成 SpringBoot 服务端开发(1)
第13章 Kotlin 集成 SpringBoot 服务端开发 本章介绍Kotlin服务端开发的相关内容.首先,我们简单介绍一下Spring Boot服务端开发框架,快速给出一个 Restful He ...
最新文章
- 贝叶斯定理:AI 不只是个理科生 | 赠书
- 解决javah生成c头文件时找不到android类库的问题
- 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | BaseDexClassLoader 构造函数 | DexPathList 构造函数及后续调用 )
- 华为云计算之储存基础知识
- 冒泡排序,swich语句,while循环...基础性的一道综合题初学者可以做一个简单的测试...
- tail将输出的日志放到文件中_如何将Spring Boot应用中日志输出格式改为JSON?
- 我的世界基岩版json_(1.8.0.13+)我的世界Minecraft【BE】基岩版 /function 使用教程
- 通用职责分配软件原则之1-信息专家原则
- Django MTV - 模型层 - (专题)知识要点与实战案例
- Synchronized与ReentrantLock的区别
- mysql导入数据库没创建表_mysqldump不会创建表或导入任何数据
- TypeScript:变量和数据类型
- 自然语言处理:简单解释
- 解决Eclipse10配置Pydev不成功的问题
- 华为崔景龙:FNV是下一代MBB网络演进的技术驱动
- 数据挖掘(数据分析)从业指南
- JavaScript 面试题汇总
- 人工神经网络与神经网络,带反馈的人工神经网络
- 基于Matlab 实现螺旋线 轨迹曲线绘制
- 从中医角度体检健身标准