前言

Apache Cordova是一个开源的移动开发框架。允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发。 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑定去访问每个设备的功能,比如说:传感器、数据、网络状态等。

使用Apache Cordova的人群:

1.移动应用开发者,想扩展一个应用的使用平台,而不通过每个平台的语言和工具集重新实现。

2.web开发者,想包装部署自己的web App将其分发到各个应用商店门户。

3.移动应用开发者,有兴趣混合原生应用组建和一个WebView(一个特别的浏览器窗口) 可以接触设备A级PI,或者你想开发一个原生和WebView组件之间的插件接口。

—— 摘自《Cordova官网》

Cordova虽然可以用来开发APP,但cordova并不能把H5代码变成IOS或者Android的原生代码。cordova只是将我们的Html文件通过相应的API,显示在HTML Rendering Engine(即WebView)中,同时 Cordova支持丰富的插件,这些插件提供了Cordova和原生组件相互通信的接口并绑定到了标准的设备API上。这就使开发者可以通过JS去调用原生代码,比如:照相机、联系人、热更新和打开第三方APP应用等。

接下来,本文会一步步的介绍如何使用Cordova开发我们的第一个APP应用(本文主要介绍Android平台应用,IOS平台不做介绍)!

使用Cordova的基本要求

1.首先要会基本的HTML + CSS + JS(否则的话你开发个毛线的app)

2.不需要太高深的Android开发经验,但起码的开发流程要了解

3.需要自行搭建Android开发环境:比如SDK

4.需要下载安装Node(自行百度)

5.需要安装Cordova(npm install -g cordova)

创建APP

# cordova create

cordova create cordova-study com.zyd.cordova

创建完成后的文件夹目录结构:

hooks:存放自定义cordova命令的脚本文件。每个project命令都可以定义before和after的Hook,比如:before_build、after_build

platforms:平台目录,各自的平台代码就放在这里,可以放一下平台专属的代码

plugins:Cordova插件目录,安装的插件会放在这里,cordova提供的原生API也是以插件的形式提供的

www:源代码目录。在cordova prepare的时候会被copy到各个平台工程的assets\www目录中

config.xml:主要是cordova的一些配置,比如:项目使用了哪些插件、应用图标icon和启动页面

添加Android开发平台

xx\cordova-study\platforms>cordova platform add android

Using cordova-fetch for cordova-android@~7.0.0

Adding android project...

Creating Cordova project for the Android platform:

Path: platforms\android

Package: com.zyd.cordova

Name: HelloCordova

Activity: MainActivity

Android target: android-26

Subproject Path: CordovaLib

Subproject Path: app

Android project created with cordova-android@7.0.0

Android Studio project detected

Android Studio project detected

Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project

Installing "cordova-plugin-whitelist" for android

This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version

, you do *not* need this plugin since the whitelist will be built in.

Adding cordova-plugin-whitelist to package.json

Saved plugin info for "cordova-plugin-whitelist" to config.xml

--save flag or autosave detected

Saving android@~7.0.0 into config.xml file ...

注:cordova在添加平台时,已自动安装了一个白名单(cordova-plugin-whitelist)插件

导入Android Studio

File --> Open --> 选择platforms-android下的build.gradle,确定

等待IDE自动构建...

构建完成后的目录结构如下:(我已切换到Android视图模式,图中箭头位置)

目录内容解释:

AndroidManifest.xml:Android应用的入口文件,负责配置applaction和activity等

java:Java文件,当前主要为Cordova项目默认的启动类(一般不需要关心,除非涉及到使用原生代码开发功能)

assets:资源文件(H5应用的html、js、css等文件),需要注意的是,www中的cordova开头的文件或文件夹(如果使用到了自定义插件,会有个plugins文件目录),切记不可删除!切记不可删除!切记不可删除!

res:app的配置:启动图标、应用图标、应用名称等。注意:xml中的config.xml是app打包用的配置文件,可配置如:启动主页面、权限、白名单等

使用cordova打包APP

xx\platforms\android>cordova build android

Android Studio project detected

ANDROID_HOME=F:\AndroidSDK

JAVA_HOME=D:\server\Java\jdk1.8\jdk1.8.151

studio

Subproject Path: CordovaLib

Subproject Path: app

Starting a Gradle Daemon, 1 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details

publishNonDefault is deprecated and has no effect anymore. All variants are now published.

The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.

at build_dm9mufthcbtehnxb8j3px6xr.run(xx\platforms\android\app\build.gradle:143)

:CordovaLib:preBuild UP-TO-DATE

中间省略......

:app:cdvBuildDebug

BUILD SUCCESSFUL in 1m 1s

47 actionable tasks: 47 executed

Built the following apk(s):

xx\platforms\android\app\build\outputs\apk\debug\app-debug.apk

提示BUILD SUCCESSFUL则表示打包完成,根据指定路径,获取apk后安装即可。

常用的命令:

cordova install android //将编译好的应用程序安装到模拟器上。

cordova emulate android //在模拟器上运行(前提是创建好AVD)

cordova serve android //在浏览器运行

cordova build android //打包cordova项目到android平台。

cordova run android //通过USB直接安装到真机(该语句已经包括了build命令)

使用AndroidStudio打包APP

参考资料

源码地址

欢迎关注,欢迎Star。当然,如果你直接下载了源码并不star,我也没办法(手动滑稽o(╯╰)o)。

cordova android 开发,Cordova开发App入门(一)创建android项目相关推荐

  1. Android Studio下载、安装、配置及连接真机开发第一个App ——入门选手快进

      最近的安卓测试给我心态搞蹦了,问也没人问,难受简直了!又是一轮自学之路(说实话这一路上教会我一个很大的道理就是一定要有愿意帮助你的老师,还有自己的自觉,一样也不能少.前者没有的话只能后者补了呜呜呜 ...

  2. 微信小程序开发(三)入门之创建打卡活动

    相关文章 微信小程序开发(一)微信开发者工具以及小程序框架介绍 微信小程序开发(二)开发之日历打卡小程序发现页 微信小程序开发(四)入门之打卡功能开发 前言 上篇介绍了日历打卡小程序发现页视图相关开发 ...

  3. ionic+angularjs开发hybrid App(环境配置+创建测试项目)

    本文使用的系统是win10 因为后期需要使用nodejs 所以先把node装好 https://nodejs.org/download/ 下载JDK并配置Java运行环境 http://www.ora ...

  4. python django开发工具_利用pyCharm编辑器创建Django项目开发环境-python开发工具第一篇...

    [前置说明] 1.django环境与python对应关系: Django version Python versions 1.11 2.7, 3.4, 3.5, 3.6, 3.7 (added in ...

  5. 前端开发之从零开始的uniapp(1):创建uni-app项目

    一.使用HBuilderX创建uniapp项目 ,并且命名为app(vue版本选择的是2) 二.创建好app项目之后我们了解一下它的结构(只说主要的,个人理解,如有错漏之处,敬请斧正) 1.pages ...

  6. gradle构建多模块项目_Gradle入门:创建多项目构建

    gradle构建多模块项目 尽管我们可以仅使用一个模块来创建一个运行中的应用程序,但有时将我们的应用程序划分为多个较小的模块是比较明智​​的. 因为这是一个相当普遍的用例,所以每个自重的构建工具都必须 ...

  7. Gradle入门:创建多项目构建

    尽管我们只能使用一个模块来创建一个工作的应用程序,但是有时将我们的应用程序划分为多个较小的模块是比较明智​​的. 因为这是一个相当普遍的用例,所以每个自重的构建工具都必须支持它,Gradle也不例外. ...

  8. android studio 安卓制作app入门教程,Android开发:AndroidStudio安卓APP入门教程

    轻松学会Android,让工作主动找你 即使你是零基础,也能掌握真正的技术 低风险.低投入,随时随地学习 全方位的技术支持:高清视频.源码.资料.技术指导 课程目录 章节1:初识篇 课时1开发环境搭建 ...

  9. android xml 里的 app,xml中的android、app、tools你真的了解吗

    在布局文件的编写中,我们经常在跟节点见到这几句代码: 这是怎么样的三兄弟.png 虽然经常见到,但从来没有好好的认识认识,今天我们就来简单的聊一下吧~ 首先我们要明白一点,xmlns是xml name ...

  10. android如何查看当前app的版本号,《android 获取当前app的版本号和版本名称》

    一.概念 apk打包之前根据自己的需要,进行版本号.版本名称设置.android studio 设置是于build.gradle文件的中设置. android{ defaultConfig { ver ...

最新文章

  1. JS实现HTML上用button打开文件对话框
  2. 圣才电子书怎么提取pdf_总结10个免费网站,助你解决PDF所有问题!
  3. 记录 之 最近阅读的动作识别(action recognition)工作
  4. 备战秋招——操作系统
  5. Python基础-----列表、元组、集合(2)
  6. [react] React Fiber它的目的是解决什么问题?
  7. docker+selenium grid解决node执行经常卡死
  8. 分布式数据库的最新发展情况
  9. 关于搜索引擎原理的详细解读
  10. java高级教程pdf_《Java高级编程实用教程》PDF 下载_IT教程网
  11. GRE零基础50-60天出分随感--V159 Q170
  12. 以太网--车载以太网
  13. php的替换快捷键是什么,wps替换快捷键是什么
  14. 您似乎与家庭管理员不在同一个国家/地区,油管换区过程记录
  15. 如何度过人生艰难:魔都28岁硬核知识型美少女自救指南
  16. 曹云金回应公式相声_疑砸挂曹云金?阎鹤祥封箱大典开玩笑要退社,郭德纲回复亮了!...
  17. 用最生动的语言重现经典!听我细细道来冯·诺依曼体系结构
  18. 买笔记本电脑的13个重要的验机步骤
  19. Numpy+Pandas+Matplotlib学习
  20. 双十一马上到来了,程序员都在干什么呢?程序员:我太难了…

热门文章

  1. android scroll 中 scroll Bar 修改
  2. Facebook再遭黑客攻击 部分账户密码被盗
  3. myeclipse 8.0GA 安装注册步骤
  4. vue事件发射与接收(可实现页面传值和非父子组件传值)
  5. getssdtserviceid_[下载]发个获得SSDT函数名和索引号的代码
  6. C# 尝试还原程序包时出错:找不到“XXXXX”版本的程序包“XXXXXX”
  7. winfrom模拟表单同步数据、上传文件(.net core)
  8. css-3d旋转相册
  9. PHP file_get_contents与file_put_contents
  10. CSDN发布博文时出错的截图