Cordova App 打包全揭秘

本文作者:大师兄(高武军)现就职于某公司移动端架构师兼产品开发。主要开发产品:mdn(适配app和微信的移动端解决方案),pageui(移动端ui组件库),formBuilder(可以让前端建表和操作表的表单设计器)。课程介绍点击查看原文Cordova是一个开源的移动开发框架。允许你用标准的Web技术——HTML5,CSS3和JavaScript做跨平台开发。应用在每个平台的

大家好,又见面了,我是你们的朋友全栈君。

[运营专题]零预算引爆个人和企业品牌【原文链接】
Selenium 自动化测试从零实战【原文链接】
原来这样做,才能向架构师靠近【原文链接】
TensorFlow on Android:物体识别【原文链接】
TensorFlow on Android:训练模式【原文链接】
图解敏捷教练和 ScrumMaster【原文链接】

这里写图片描述


本文作者:大师兄(高武军)

现就职于某公司移动端架构师兼产品开发。
主要开发产品:mdn(适配app和微信的移动端解决方案),pageui(移动端ui组件库),formBuilder(可以让前端建表和操作表的表单设计器)。

课程介绍 点击查看原文

Cordova 是一个开源的移动开发框架。允许你用标准的 Web 技术——HTML5,CSS3 和 JavaScript 做跨平台开发。应用在每个平台的具体执行被封装了起来,并依靠符合标准的 API 绑定去访问每个设备的功能。

本课程是一个系列基础教程,目标是带领读者上手实战,你可以掌握和 Cordova 相关环境搭建,创建项目,添加插件等核心技能。随心随意打包自己的 App 应用。


导读:混合开发 APP

近年来随着移动设备类型与操作系统的增多,用户需求也日益增长,因此在项目启动前,大家都会考虑到它的需求、成本、需要投入的时间,自己的团队成员与技术成熟度等一系列因素。在这种情况下,App 的开发方案也尽显多元。

曾经 Html5 有一段小浪潮,很多人看到或参与过这样一个讨论:是选择原生开发、混合开发,还是 Web 开发?究竟哪个才是最佳实践,笔者认为只有实践过的人才知道,尤其是在当今这个充满变数的移动互联网时代。

混合移动应用程序开发的流行

当涉及到移动应用程序开发时,目前还没有一种可以适合所有场景的方式。你可以选择开发本地应用程序、基于网络的移动应用程序或是混合移动应用程序,而在以上选项中,混合移动应用程序开发应该是最具优势的。

那么什么是混合应用程序开发呢?

App 混合开发,顾名思义是一个开发模式,它指的是开发 App 时一部分功能用 native 构建,另一部分功能用 Html5 构建。介于 web-app、native-app 这两者之间的 App,英文名叫:Hybrid App。

其实,早在几年前就已经出现了 App 混合开发模式,到2014年末才开始流行,2016年已经被广泛使用,而2017年甚至达到鼎盛期。

混合开发模式的流行离不开它自身的优势,因为 Hybrid App 总体特性更接近 Native App,但是和 Web App 区别较大,同时使用了网页语言编码,所以开发成本和难度比 Native App 要小很多。因此说,Hybrid App(混合模式移动应用)兼具“Native App 良好用户交互体验的优势”和“Web App 跨平台开发的优势”。目前有名的混合开发框架有 Cordova,React-Native,Weex,Ionic 等。

Cordova

Cordova 是 Apache 的一个开源项目。

Cordova 的体系架构从上往下分为,前端(html,js),Html 渲染引擎(各平台的浏览器组件),cordova plugin。Cordova Plugin 为 Cordova 重最核心的部分,扩展了 js 访问手机硬件和原生 API 的接口。

开发者可自定义 Cordova Plugin 扩展自己的原生接口,添加到 Cordova。总体来说 Cordova 即可以简单的部署到多平台,也支持单平台的深层定制。

ReactNative

Facebook 推出的跨平台框架。 使用 JS 和 React 就可以开发 App,React 是 Facebook 自己的 JS 库。用 react-native 开发的界面会完全转化为 native 界面。部署的时候不用重新编译,可以热加载而且可以植入原生代码。

react-native 是通过 JavaScript 将 native 中的方法映射到 JS 中,没有使用浏览器组件(除低版本 iOS),严格意义上来说开发出来的并不是 Hybrid App。所以,开发时比较依赖 react-native 暴露出来的接口,除此之外,初次学习成本比较高,需要学习 react 的使用(一套前端不能复用到 PC、手机浏览器、微信公众号网页)。

Weex

阿里推出的跨平台框架,Weex 的理念是write once run anywhere 也就是三端体验一致,让大家专注于业务,写一份代码 iOS、Android、H5 都能够适用。当然也有为企业节省开发成本的考虑。所以 Weex 技术方案的关键在于要拥有一个强大的解析渲染引擎。

Weex 所采用的技术架构方案:JS 引擎用 V8,JS 开发框架基于 vue.js。可以看出学习的成本也是非常高的。

Ionic

Ionic 是一个专注于用 Web 开发技术,基于 Html5 创建类似于手机平台原生应用的一个开发框架。绑定了 AngularJS 和 Sass。这个框架的目的是从 Web 的角度开发手机应用,基于 Cordova 的编译平台,可以实现编译成各个平台的应用程序。

Ionic 所采用的 JS 开发框架基于 AngularJS,并且还提供了很多 UI 组件,封装了 Cordova 常用的 Native API,但是看出学习的成本也是非常高的。

Cordova 的优势在于你熟悉了 Cordova 开发方式,熟悉了一套框架,把 Html5 开发手机 App 的坑大部分都踩过一遍之后,开发第二个 App 会极大的提高你的开发速度!

所以那些会 Html5 技术想更进一步掌握跨平台,高性能 App 开发技术,增加职场竞争力的前端人员。优秀的 Cordova 将是你的第一选择。

Cordova——混合型框架中的佼佼者

Cordova 主张一站式开发,简而言之,就是一个纯 Html5 的开发人员也可以开发和发布 Android 和 iOS 的 App了,而不需要专门的 Android 和 iOS 开发人员。

而在众多混合型框架中,Apache 作为幕后老大,背景强大,Cordova 可以说是佼佼者。Cordova 基于标准的 Web 技术——HTML、JavaScript 和 CSS,用 JavaScript 包装平台的 API 供开发者调用,具备强大的编译工具为不同平台生成应用,同时拥有丰富的第三方资源和产业链。

Cordova 的特点有以下:

  • 插件丰富

Cordova 的插件是其生态系统的重要组成部分,能帮助你快速地抵达移动设备的原生 API 上面。它提供了Cordova 和原生组件相互通信的接口,将其绑定到了标准的设备 API 上。这使你能够通过 JavaScript 调用原生代码。

Apache Cordova 项目维护着一组插件叫做核心插件。这些核心插件可以让你的应用程序访问设备功能,比如:电源、相机、联系人、摄像头、麦克风、传感器、数据、网络状态等。除了核心插件,Cordova 还有一些第三方插件提供若干个附加功能。

  • 可移植性

基于浏览器的移动 Web 可移植性和跨平台最突出表现为混合 App 也能节省跨平台的时间与成本,开发者只需编写一次核心代码就可部署到多个平台,而原生 App 的跨平台性能最差。

目前已有部分开发商采取了只编写一次应用程序,就可以在6个主要的移动平台和应用程序商店(App Store)里进行发布的方式,这些移动平台和应用程序商店包括:iOS、Android、BlackBerry、webOS、Bada 以及 Symbian 等。

当然这种方式也存在缺点,笔者认为其最主要的缺点有两个:一是性能不够好,二是兼容性较差。

但随着 Android 5.0+ 的普及以及 iOS 9.0+ 的普及,性能缺陷和兼容性问题都在减少,也就是说,如果未来某天 Android 最低支持版本从5.0开始,iOS 最低支持版本从9.0开始了,那么混合开发 App 的缺点就变得不那么明显了。很明显现在这都不是问题。

随着移动互联网的发展,现在基本是 App 满天飞,如果我去下载一个 App,那么基本都能看到有两种选择,一种是 Android 版本,一种是 iOS 版本。不管我的手机是哪种操作系统,安装完一个 App 之后,后续如果有新的版本发布的时候,我还必须去更新,才能享用新版本里的功能。比如我装了“京东”这个 App,前几天正好碰到“618”活动,那么之前一个月 App Store 就提醒我要去更新最新的 App 版本,以免错过“618”活动中新的功能使用。相对来说 iOS 系统更新 App 比起 Android 系统用户体验会好一点,但是还是稍显麻烦。

那么有没有一种方式,我只需要开发一个 App 版本,就能去适配通用的操作系统呢,不仅可以适配 Android、iOS,还可以适配其他系统,比如 Windows Phone、 Palm WebOS、Blackberry 等等。有,Cordova 就能提供这种能力,代码写一次,就能到处运行,跟我们日常开发网站效果一样,基于写 Web App,根据输出平台要求不同,就能提供不同类型的安装包。Cordova 其设计初衷是希望用户群体能够通过跨平台开发的方法降低原生开发的成本,为此,开发人员需要安装原生开发环境,配置工程,使用 HTML5、CSS3、JS 和原生 SDK 生成应用。

使用 Apache Cordova 的人群

  • 移动应用开发者,想扩展一个应用的使用平台,而不通过每个平台的语言和工具集重新实现。
  • Web 开发者,想包装部署自己的 Web App 将其分发到各个应用商店门户。
  • 移动应用开发者,有兴趣混合原生应用组建和一个 WebView(一个特别的浏览器窗口)可以接触设备 A 级 PI,或者你想开发一个原生和 WebView 组件之间的插件接口。

或许在未来几年,Android 和 iOS 开发人员需求量将会逐渐减少,而 Html5 开发人员需求量会与日俱增,那么,从 Android 或 iOS 转型为 Html5 的开发人员会更加地走俏。



下一篇

更多课程内容

导读:混合开发 APP

第01课:一起搭建 Cordova 开发环境

第02课:Cordova 生命周期

第03课:Android 与 IOS 打包

作者撰写中…

第04课:JS 是如何和本地 API 进行通信

作者撰写中…

第05课:利用 Hooks 预处理打包流程

作者撰写中…

第06课:Cordova Plugin 的使用和自定义

作者撰写中…

第07课:手机按键与 Cordova

作者撰写中…

第08课:App 自动更新设计

作者撰写中…

第09课:Cordova 实战开发技巧(一)

作者撰写中…

第10课:Cordova 实战开发技巧(二)

作者撰写中…

第11课:Cordova 实战开发技巧(三)

作者撰写中…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126275.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue相比jquery_angular和vue哪个厉害

    vue相比jquery_angular和vue哪个厉害jQuery到Vue的转变是一个思想的转变,将原有的直接操作dom的思想转变到操作数据上前言:很多人说jquey和vue没有什么可比的,应该和Angular,React来比吧,我到觉得他们倒没有多大的可比性,都是基于mvvm思想设计的框架,无非就是实现的方式不一样,在不同场景下性能上会有一些差异。然而从jquery到vue或者说是到mvvm的转变则是一个思想想的转变,是将原有的直接操作dom的思想转变到操作数据上去,难道不是一个根本性的改变吗?jquery介绍:想必大家都用过jquery吧,这个曾经.

    2022年10月15日
    3
  • 十四、迭代器模式—— 一个一个的遍历 #和设计模式一起旅行#「建议收藏」

    套路要深…故事背景今天要介绍一下迭代器,首先简单说明一下,什么是迭代器,为什么要使用迭代器。 迭代器(Iterate) 的意思就是反复做某件事情。那为什么要反复做某件事情呢,比如我们有个容器里面装了很好东西(这些东西都是同一类型的),要从容器中取每一个东西出来,就要反复去做一个取出的事情。故事主角迭代器模式 : 提供一种方法顺序访问一个聚合对象中的各个元素,而…

    2022年2月27日
    40
  • 分布式事务saga_分布式事务代码例子

    分布式事务saga_分布式事务代码例子1.分布式事务  在前面文章《分布式事务》中介绍了几种分布式事务,其中Saga介绍了相关的概念,接下来介绍Saga使用案例,案例来源《微服务架构设计模式》。2.案例需求分析2.1一个成功的订单创建流程  实现餐馆系统中的创建订单createOrder()操作。这个操作必须验证消费者是否满足下订单的相关条件、验证订单内容、完成消费者的信用卡授权,以及在数据库中创建Order。一个成功的订单创建流程:创建一个待处理订单;验证订单消费者可以下单;创建后厨工单;对消费者提供的信用卡进行授权操

    2025年11月26日
    1
  • mysql优化 面试_数据库优化方案整理

    mysql优化 面试_数据库优化方案整理点赞是一种积极的生活态度!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言数据库优化是一个老生常谈的问题,刚入门的小白或者工作N年的光头对这个问题应该都不陌生,你要面试一个中高级工程师那么他就想”哥俩好”一样那么粘,面试官肯定会问这个问题,这篇文章我们就和它哥俩好!而且这个问题就是一个送分题,数据库的优化方案基本就是那些,答案也都是固定的,大家只要好好…

    2025年7月13日
    6
  • 大学微积分函数的极限_微积分基本公式求极限

    大学微积分函数的极限_微积分基本公式求极限LaTeX语法参考:http://www.mohu.org/info/lshort-cn.pdf第一讲:函数实数与数轴,实数集(区间、邻域)。有界集与确界。函数及常用函数(函数三要素、数列(整标函数)、基本初等函数、初等函数)。【分段函数是否一定非初等;y​​=&Negati

    2022年8月11日
    7
  • 设计模式学习总结——观察者模式「建议收藏」

    设计模式学习总结——观察者模式

    2022年1月25日
    74

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号