Cordova开发App入门之创建android项目
Apache Cordova是一个开源的移动开发框架。允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发。 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑定去访问每个设备的功能,比如说:传感器、数据、网络状态等。
使用Apache Cordova的人群:
1.移动应用开发者,想扩展一个应用的使用平台,而不通过每个平台的语言和工具集重新实现。
2.web开发者,想包装部署自己的web App将其分发到各个应用商店门户。
3.移动应用开发者,有兴趣混合原生应用组建和一个WebView(一个特别的浏览器窗口) 可以接触设备A级PI,或者你想开发一个原生和WebView组件之间的插件接口。
Cordova虽然可以用来开发APP,但cordova并不能把H5代码变成IOS或者Android的原生代码。cordova只是将我们的Html文件通过相应的API,显示在HTML Rendering Engine(即WebView)中,同时 Cordova支持丰富的插件,这些插件提供了Cordova和原生组件相互通信的接口并绑定到了标准的设备API上。这就使开发者可以通过JS去调用原生代码,比如:照相机、联系人、热更新和打开第三方APP应用等。
创建APP
# cordova create <项目名> <包名> <app名(可选)>
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.
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms\android
Package: com.zyd.cordova
Name: HelloCordova
Activity: MainActivity
Android target: android-
Subproject Path: CordovaLib
Subproject Path: app
Android project created with cordova-android@7.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. 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.\jdk1.8.151
studio
Subproject Path: CordovaLib
Subproject Path: app
Starting a Gradle Daemon, busy and incompatible and 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:)
:CordovaLib:preBuild UP-TO-DATE
中间省略......
:app:cdvBuildDebug BUILD SUCCESSFUL in 1m 1s
actionable tasks: 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

Cordova开发App入门之创建android项目的更多相关文章
- [Android教程] Cordova开发App入门(二)使用热更新插件
前言 不知各位遇没遇到过,刚刚发布的应用,突然发现了一个隐藏极深的“碧油鸡(BUG)”,肿么办!肿么办!肿么办!如果被老板发现,一定会让程序员哥哥去“吃鸡”.但是想要修复这个“碧油鸡”,就必须要重新打 ...
- [Android教程] Cordova开发App入门(一)创建android项目
前言 Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的A ...
- 1) 十分钟学会android--建立第一个APP,创建android项目
一个Android项目包含了所有构成Android应用的源代码文件. 本小节介绍如何使用Android Studio或者是SDK Tools中的命令行来创建一个新的项目. Note:在此之前,我们应该 ...
- Android开发中遇到的问题(三)——eclipse创建android项目无法正常预览布局文件
一.问题描述 今天使用SDK Manager将Android SDK的版本更新到了Android 5.1的版本,eclipse创建android项目时,预览activity_main.xml文件时提示 ...
- Cordova开发App使用USB进行真机调试
在使用cordova开发app时,不像浏览器中可以直接使用浏览器的开发者工具进行调试.为了看到app的显示效果, 一种是使用模拟器进行展示,一种是使用真机进行展示. 模拟器:可以使用Android s ...
- eclipse创建android项目失败的问题 [ android support library ]
有根筋搭错了,想起来android应用开发???? 放下两年的手机应用开发,昨天有更新了android SDK, 重新搭建开发环境. 这两年android 变化真TM的大............... ...
- 使用eclipse创建android项目的时候为什么会生成两个项目
使用eclipse创建android项目的时候为什么会生成两个项目 问题描述: 使用eclipse创建一个Android项目时,发现project列表中会多创建出一个appcompat_v7项目,再创 ...
- 创建 Android 项目
创建 Android 项目 上一页下一页 您也应该阅读 项目概览 本课向您介绍如何使用 Android Studio 创建新的 Android 项目并介绍该项目中的一些文件. 在 Android St ...
- 创建Android项目时出错——No resource found that matches the given name 'Theme.AppCompat.Light'
创建Android项目时出错,error: Error retrieving parent for item: No resource found that matches the given nam ...
随机推荐
- [译]javascript中的依赖注入
前言 在上文介绍过控制反转之后,本来打算写篇文章介绍下控制反转的常见模式-依赖注入.在翻看资料的时候,发现了一篇好文Dependency injection in JavaScript,就不自己折腾了 ...
- [漏洞分析]thinkphp 5.x全版本任意代码执行分析全记录
0x00 简介 2018年12月10日中午,thinkphp官方公众号发布了一个更新通知,包含了一个5.x系列所有版本存在被getshell的高风险漏洞. 吃完饭回来看到这个公告都傻眼了,整个tp5系 ...
- 数据操作流DataOutputStream、DataInputStream类
[例子1] import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import ...
- C# 中删除控件的事件的方法类
方法一: 代码 /// <summary> /// 删除指定控件的指定事件 /// </summary> /// <param name="control&qu ...
- Web前端性能优化——编写高效的JavaScript
前言 随着计算机的发展,Web富应用时代的到来,Web 2.0早已不再是用div+css高质量还原设计的时代.自Gmail网页版邮件服务的问世开始,Web前端开发也开启了新的纪元.用户需求不断提高,各 ...
- BZOJ5384 有趣的字符串题 回文树
神奇的结论: 一个字符串的所有回文后缀的长度,可以形成$k$个等差数列,$k$是$log$级的 考虑前$R$个字符组成的字符串,对于一个等差数列,假设组成这个等差数列的回文串,最短的叫$a$,最长的叫 ...
- GitLab 安装(推荐)
参考文档: https://about.gitlab.com/installation/#centos-7 基础环境 [root@node1 ~]# uname -r -.el7.x86_64 [ro ...
- git 修改文件内容
在安装Git和创建版本库的时候,我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容 [root@node1 gi ...
- php 获取URL
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br> ...
- 使用nvm进行node多版本管理
nvm与Python的virtualenv和Ruby的rvm类似.NVM (Node Version Manager,Node多版本管理器)是一个通用的叫法,它目前有许多不同的实现.通常我们说的 nv ...