Cordova CLI源码分析

用AI画电路板AI EDA初探Creating WiFi Radio with CELUS: A Step-by-Step Tutorial 使用CELU.IO创建WiFi收音机:分步教程 结论:整体还不太成熟,所选器件单元是欧美思维,器件选型成本和咱们华强北还是无法比。可以关注迭代,看客就当走马观花就行了;不过里面的单元模块还带有AI提问的这个比较好,值得国内EDA从业者学习。话不多说上正文:本教程目的是让我们深入了解如何使用CELUS设计平台构建WiFi收音机实战项目。本指南的重点是使用该平台来选择正确的解决方案,并整合一个项目,让您可以将音乐和节目从互联网直接传输到您自己构建的扬声器。 阅读详情

本系列文章分析基于node.js的命令行工具Cordova CLI,所以如果对node.js基础不是很了解,建议参考http://nodejs.gamesys.net/node-js提供的基础教程

文中提到的包和模块有区别,但是对于使用者来说是同一个概念。

一个node.js文件就是一个模块,可能是JavaScript代码,JSON或者编译后的C/C++扩展;包是模块基础上的扩展,是一个目录,至少包含一个package.json说明文件。

1、简介

Cordova CLI是一个基于node.js的命令行工具,用于编译、部署和管理跨平台的Cordova 混合应用程序。

Apache Cordova 使开发者运用Html, CSS,javascript就能够构建原生移动应用

支持平台

l Android

l BlackBerry 10

l iOS

l Windows Phone 7 & 8

运行环境

Node.js

各平台SDK

安装

[javascript]  view plain copy
  1. npm install -g cordova  

默认安装路径

C:\Documents and Settings\xxx\Application Data\npm\node_modules\cordova\src

2、命令参数

全局命令

create <directory> [<id> [<name>]] 创建一个新的 cordova项目,三个参数分别是 保存路径,项目id,项目名称(反域名格式com.xxx.xxxx) 

项目命令

platform [ls | list] list all platforms the project will build to

platform add <platform> [<platform> ...] add one (or more) platforms as a build target for the project

platform [rm | remove] <platform> [<platform> ...] removes one (or more) platforms as a build target for the project

plugin [ls | list] list all plugins added to the project

plugin add <path-to-plugin> [<path-to-plugin> ...] add one (or more) plugins to the project

plugin [rm | remove] <plugin-name> [<plugin-name> ...] remove one (or more) added plugins

prepare [platform...] copies files into the specified platforms, or all platforms. it is then ready for building by Eclipse/Xcode/etc.

compile [platform...] compiles the app into a binary for each added platform. With no parameters, builds for all platforms, otherwise builds for the specified platforms.

build [<platform> [<platform> [...]]] an alias for cordova prepare followed by cordova compile

emulate [<platform> [<platform> [...]]] launch emulators and deploy app to them. With no parameters emulates for all platforms added to the project, otherwise emulates for the specified platforms

serve <platform> [port] launch a local web server for that platform's www directory on the given port (default 8000).

可选参数

-d或--verbose 添加调式信息输出

-v 或--version 输出cordova-cli版本信息

3、目录结构

运行cordova create hello hellotest com.xxx.hellotest

hello/

|--.cordova/

| | -- hooks/

| | -- config.json

|-- merges/

| | -- android/

| | -- blackberry10/

| | -- ios/

|-- www/

| `-- config.xml

|-- platforms/

| |-- android/

| |-- blackberry10/

| `-- ios/

`-- plugins/

刚创建完的merges,platforms,plugins都是空目录,而.cordova/config.json包含create创建时指定的参数{"id":"hellotest","name":"com.xxx.hellotest"}

(1).cordova目录是辨别是否是cordova项目的重要标志,存储一些配置文件和信息;

(2)www目录下存放的是各个平台上一致的web文件,即每个平台使用相同代码,当调用prepare命令时,拷贝此目录下内容到platforms下原生目录;

     config.xml是符合W3C's Packaged Web Apps (Widgets) 标准的配置文件,通过修改config.xml中参数值,cordova-cli完成应用参数的修改

示例:

<?xml version='1.0' encoding='utf-8'?>

<widget id="hellotest" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

    <name>com.jinkai.hellotest</name>

    <description>

        A sample Apache Cordova application that responds to the deviceready event.

    </description>

    <author email="dev@callback.apache.org" href="http://cordova.io">

        Apache Cordova Team

    </author>

    <content src="index.html" />

    <access origin="*" />

    <preference name="fullscreen" value="true" />

<preference name="webviewbounce" value="true" />

<plugins>

     <plugin name="MyPlugin" value="MyPluginClass" />

</plugins>

<content src="index.html" />

</widget>

其中主要有以下几个参数:

<name> 展示给用户的应该程序名称

<widget> 中id属性指定包名(bundle identifier 或application id)

<widget> 中version属性版本

<access> 中 origin 属性,指定网络访问白名单

<preference>  用于存储一些键值对参数

<plugin> 定义原生插件,当运行时Cordova framework确保应用可以调用设备的API接口

<content> 定义web起始页,默认值是index.html

(3)merges目录下存放的是有平台差异的web文件,当调用prepare命令时,拷贝此目录下内容到platforms下原生目录,如果有同名www目录下文件存在,merges目录下文件将覆盖www下文件;

例如存在以下目录结构

merges/

|-- ios/

| `-- app.js

|-- android/

| `-- android.js

www/

`-- app.js

最终编译时,platforms目录下,android目录包含android.js和app.js,iOS目录包含app.js,这个文件与merges目录下ios/app.js一致,即merges目录下文件覆盖www目下文件

(4)platforms 各平台原生应用程序目录结构

(5)plugins 所有插件将会解压后放在此目录

(6)hooks 定义一系列回调函数

包含两类:项目指定和模块指定函数


4、Cordova CLI使用流程

(1)创建应用 cordova create (创建应用程序骨架)

cordova create hello hellotest com.jinkai.hellotest

(2)添加平台 cordova platform add 

cd hello

Mac支持平台

$ cordova platform add ios

$ cordova platform add android

$ cordova platform add blackberry10

Windows支持平台

$ cordova platform add wp7

$ cordova platform add wp8

$ cordova platform add android

$ cordova platform add blackberry10

查看支持平台

cordova platform ls

删除

$ cordova platform remove blackberry10

$ cordova platform rm android

(3)编译cordova build(在platforms目录下生成平台代码)

[javascript]  view plain copy
  1. $ cordova build ios  

等价于顺序执行以下两个步骤

[javascript]  view plain copy
  1. $ cordova prepare ios  
  2. $ cordova compile ios  

(4)测试

[javascript]  view plain copy
  1. $ cordova emulate android  

(5)添加插件

安装插件cordova plugin add

Basic device information (Device API):

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

Network Connection and Battery Events:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status.git

Accelerometer, Compass, and Geolocation:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git

Camera, Media playback and Capture:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git    

Access files on device or network (File API):

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git

Notification via dialog box or vibration:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-vibration.git

Contacts:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts.git

Globalization:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-globalization.git

Splashscreen:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git

Open new browser windows (InAppBrowser):

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

Debug console:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git

查看已安装插件plugin ls 或plugin list 或plugin

[javascript]  view plain copy
  1. $ cordova plugin ls    # or 'plugin list'  
  2. [ 'org.apache.cordova.core.console' ]  

删除插件

[javascript]  view plain copy
  1. $ cordova plugin rm org.apache.cordova.core.console          
  2. $ cordova plugin remove org.apache.cordova.core.console    # same  

高通SDX55平台:5G速率问题排查分析方法 和大家分享一下高通5G平台5G速率问题排查分析方法。 阅读详情

相关推荐

电机驱动技术中关于磁阻转矩生成的理解

正交在物理学和数学中指的是两个方向或两个向量之间的夹角为90°(直角)。在图中,当气隙磁场的轴线与转子轴线的夹角为90°时,我们称它们为正交。转子磁极的方向。通常由转子的磁极中心指向另一极的连线表示。转子轴线用图示中的d 轴表示。通过对定子、转子、气隙磁场、磁力线的理解,我们可以清晰地分析不同角度下电磁转矩的方向。这种分析不仅有助于电机的理论学习,还能为实际设计提供重要参考。掌握这些基础知识后,可以更好地理解电机工作原理及优化其性能。

weixin_48327795的博客 2074

手把手教你安装Cordova

1. 安装Node.js 安装Node.js,是为了使用其中安装的包管理工具npm(下载上传工具) 测试是否安装成功,cmd中执行[node -v]以及[npm -version] 2. 安装cordova Cli 这个是cordova开发的脚手架,其中集成了一些方法,比如构建,打包,方便开发。 [npm install -g cordova] 测试是否安装成功,cmd中执行[cordova -v...

weixin_43978056的博客 6443

使用mne包来对脑电数据进行预处理(一)

MNE(MNE-Python)是一个用于处理脑电(EEG)、磁图(MEG)和其他神经科学数据的Python库。它提供了丰富的功能,包括数据加载、预处理、分析和可视化,旨在帮助研究人员和神经科学家更轻松地进行脑电数据的处理和分析。在本文中,我们使用mne来对不同的格式的脑电数据集进行数据读取。

m0_71596228的博客 4305

Cordova CLI源码分析(一)——简介

本系列文章分析基于node.js的命令行工具Cordova CLI,所以如果对node.js基础不是很了解,建议参考http://nodejs.gamesys.net/node-js提供的基础教程 文中提到的包和模块是同一概念 1、简介 Cordova CLI是一个基于node.js的命令行工具,用于编译、部署和管理跨平台的Cordova 混合应用程序。 Apache Cordov

JINKAI 8779

炉石传说游戏系统拆解和部分系统分析

一.游戏综述 《炉石传说:魔兽英雄传》是一款由暴雪娱乐公司出品的策略类卡牌游戏。中国大陆地区的独家运营由网易公司代理。2014年3月13日全球同步正式运营。游戏背景设定于暴雪的魔兽系列,共十位魔兽中的角色作为十种不同的职业。而玩家要做的,就是根据己方现有的卡牌组建合适的卡组,指挥英雄,驱动随从,施展法术,与游戏好友或素不相识的对手一决高下。 二.游戏系统拆解图 三.游戏系统部分分析 1. 对战系统 (1)战斗准备 炉石传说开始前都需要配置至少30张卡牌作为出战卡组 .....

Jimmy72236的博客 4926

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

Cordova开发

通过一个月的Cordova学习, 我将知识点总结为三部分: 纯Cordova开发---不依赖原生平台 原生平台混合Cordova开发 插件开发 在进行Cordova开发之前, 先花点时间了解一下的Cordova的原理和Cordova的框架结构. Cordova是开发跨平台web App的工具, 使用前端技术来开发App, 可以节省成本和快速发布. Cordova的底层逻辑是:HTML+CSS搭建页面, 使用JS和原生平台交互来展示原生平台的功能. Cordova所有功能是建立在各种插件上的, 所

zhanghaibo369的博客 5321

Petalinux-2018.3添加内核驱动(linux-xlnx源码打补丁)

大部分模块可以直接使用,需要添加自己的驱动文件时,可以通过linux-xlnx源码打补丁方式和使用PetaLinux编译为.ko文件加载运行,本文章介绍通过linux-xlnx源码打补丁方式添加内核驱动文件。根据查找资料,了解到可以通过打补丁方式添加到工程文件中。. /opt/tool-pkg/petalinux/2018.3/components/yocto/source/arm/layers/core/oe-init-build-env (该执行文件在Petalinux软件安装路径下)

sanyuedtaifen的博客 1554

跨平台框架Cordova 命令行简介(CLI)

Cordova 命令行简介。包括如何利用CLI创建项目,用Eclipse开发项目以及如何启动Android仿真器。

zythy的专栏 4万+

关于光耦隔离与SP3485E芯片一起使用无法拉高485使能引脚问题

最近在做的一个项目,定制了一块STM32F407ZG的工控板,工控板载4个485接口全部都是只能接收数据,不能对外发送数据。1.接线不正确:接线不正确导致485收发出现问题。 2.程序端口初始化问题:控制光耦隔离的输入脚IO的初始化和置位状态有问题。 3.GPIO复用问题:控制对应串口的GPIO不是正点原子默认的GPIO,而是经过复用的其他IO,复用问题。 4.程序设置与485E芯片收发模式不对应:对于使能引脚的电平要根据光耦的输出情况确定输入IO与RE的关系,可能模式没有对应。 5.光耦隔离或者SP485

weixin_45862642的博客 2978

OpenCV C++ 图像处理实战 ——《基于轮廓比对的缺陷检测》

本文使用OpenCV C++ 实现基于轮廓比对的缺陷检测。

Zero___Chen的博客 1149

xcode打包cordova项目生成ipa

Apple ID 及注册账号至https://developer.apple.com/membercenter/index.action及证书provision profiles添加测试设备等,app在打包的时候必须签名,苹果iOS系统在安装app之前会验证Certificate,否则不会通过安装.Provisioning Profile简单来说就是包含Apple ID,证书,和设备ID等各种信息的集合体.一般来说,在打包ipa的时候,必须配置Provisioning Profile.在苹果的开发者...

一一 530

数据分析案例-电影数据可视化分析

数据介绍数据为2011-2021电影数据可视化分析首先导入本次项目需要的包和数据 数据预处理 可视化

m0_64336780的博客 2万+

Cordova CLI源码分析(六)——添加插件

添加插件源码位于src/plugin.js 不再详细分析,主要用到plugman,也是Cordova 提供的用于安装和卸载插件的工具,见https://npmjs.org/package/plugman 主要内容摘录如下: 1环境:需要git工具支持 2 命令行使用 plugman install --platform --project --plugin [--plugins_di

JINKAI 4070

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Cordova CLI源码分析(三)——初始化

本部分主要涉及以下三个文件 1 cli.js 2 cordova.js 3 events.js 通过前一篇package.json的分析,可以知道,当命令行执行cordova相关命令时,首先调用main参数指向的cordova.js文件,加载模块的相关信息,把内部接口暴露出来,起到初始化作用,方便后续模块内部调用各部分接口; 然后bin 指向的./bin/cordova 文件,执行

JINKAI 2994

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Cordova CLI源码分析(四)——创建工程

在第一篇分析我们曾经举例,创建一个新工程, cordova create hello hellotest com.xxx.hellotest cli.js文件分析命令行参数后,会走到  else if (cmd == 'create' || cmd == 'serve') {             cordova[cmd].apply(this, tokens);         }

JINKAI 2892

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Cordova CLI源码分析(五)——添加平台

添加平台支持,其实本质是利用各平台SDK环境创建原生工程文件。所以,所有函数也是围绕这一主题展开。 入口当然是platform函数 module.exports = function platform(command, targets, callback) { ..... }; 先不看具体源码,再看其他几个函数 (1)module.exports.supports = func

JINKAI 5001

Cordova 3.x 源码分析(1) -- Cordova CLI

[b](1)Node.js的使用[/b] Cordova CLI基于node.js,所以有必要知道nodejs最基本的知识。 [code="js"]// define:1个module1个js文件 exports.printFoo = function(){ return "foo" } // import var foo = require('./foo.js'); // call ...

Fish Where The Fish Are 168

Cordova CLI源码分析(二)——package.json

每个包需要在其顶层目录下包含一个package.json文件,该文件不仅是包的说明,也影响npm安装包时的配置选项   更多参数详见参考文档https://npmjs.org/doc/json.html  { "name": "cordova", "version": "3.0.4", "preferGlobal": "true",//如果安装包是作为命令行应用程序,应该全局模式安

JINKAI 4649

Cordova CLI源码分析(一)——简介 分类: node phonegap

from:http://blog.youkuaiyun.com/mociml/article/details/10540623

MaximusKiang的专栏 1322

cordova3.x 入门教程

基础篇Cordova 3.x 基础(1) -- 环境搭建(Windows / Android)详细内容Cordova 3.x 基础(2) -- 应用图标icon和启动页面SplashScreen详细内容Cordova 3.x 基础(3) -- 调试Debug工具详细内容Cordova ...

chengzhanjian02999的博客 292

Cordova 3.x 源码分析(7) -- CordovaLib概要

在[url=http://rensanning.iteye.com/blog/2020843]http://rensanning.iteye.com/blog/2020843[/url]已经介绍过通过Cordova CLI创建Cordova工程。 Cordova生成的Android工程主要来自于以下目录: [quote]C:\Documents and Settings\RenSanNin...

Fish Where The Fish Are 210

2017-08-18 前端日报

2017-08-18 前端日报 精选 [译] 关于 React Router 4 的一切腾讯祭出大招VasSonic,让你的H5页面首屏秒开用简单的方法学习ECMAScript 6【译】一个小时搭建一个全栈Web应用框架你应该知道的Debug技巧Understanding V8’s Bytecode – DailyJS – MediumA...

weixin_33716557的博客 139

D4RL核心功能解析:从 locomotion 到 CARLA,解锁7大强化学习环境

D4RL(Dataset for Deep Reinforcement Learning)是一个强大的离线强化学习环境集合,为研究人员和开发者提供了丰富的预训练数据集和多样化的模拟环境。无论是机器人操作、自动驾驶还是导航任务,D4RL都能提供高质量的环境支持,帮助快速验证强化学习算法的有效性。 [![D4RL项目logo](https://raw.gitcode.com/gh_mirrors/d

gitblog_00087的博客 444

t5-v1_1-large-ko-openmind性能基准测试:与其他韩语模型对比分析

t5-v1_1-large-ko-openmind是一款针对韩语优化的T5系列大型语言模型,基于T5 v1.1架构构建,特别优化了韩语自然语言处理任务的性能表现。本文将通过详细的基准测试数据,全面对比该模型与其他主流韩语模型在各项关键指标上的表现差异,为开发者选择最适合的韩语NLP解决方案提供权威参考。 ## 模型架构与核心参数解析 t5-v1_1-large-ko-openmind采用了T5

gitblog_00535的博客 432

Android Cordova 开发 - Cordova 快速入门(Cordova 环境配置、Cordova 第一个应用程序)

Android Cordova 开发 - Cordova 快速入门(Cordova 环境配置、Cordova 第一个应用程序)

weixin_52173250的博客 3542
上一篇: phoneGap可行性分析
下一篇: The Command
楠317
博客等级 码龄18年 37粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值