Cordova开发平台配置--Android

本文详细介绍了如何在Windows系统环境下使用Cordova框架打包Android应用所需的配置和步骤,包括安装所需SDK、配置环境变量、设置模拟器以及配置Gradle等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然Cordova是一个跨平台的移动开发框架,但是要打包成不同平台下的App,需要有相应的SDK和环境配置才行。这里以windows系统环境打包到Android平台为例对所需SDK环境和命令行工具进行详细说明(cordova版本是6.x)。

一、所需配置和支持

Cordova需要安装Android SDK,Cordova最新版本已经可以支持Android API-Level 23。Cordova和Android SDK API的支持关系如表1所示:

cordova-android Version Supported Android API-Levels
5.X.X14 - 23
4.1.X14 - 22
4.0.X10 - 22
3.7.X10 - 21
                                                                                  表1 cordova和Android API Level支持关系                                                

想要查看项目使用的Android SDK的版本,在项目的根目录下运行下面的命令:cordova platform ls。

二、安装所需配

安装JDK

安装JDK 1.7或者更高版本。安装完成后新建JAVA_HOME系统环境变量,填入JDK的安装路径,我的是C:\Program Files (x86)\Java\jdk1.8.0_51。 JDK下载地址

安装Android SDK

安装Android SDK,下载地址: Android SDK。也可以安装Android Studio,它自动集成了Android SDK里面,如果想开发Android平台下的Cordova插件,或者使用AS的调试工具的话,安装AS是个不错的选择。

添加SDK开发包

安装完SDK后,必须添加你想要的API Level的包,这里推荐的是你的项目中cordova版本能够支持的最高版本。打开SDK安装Android sdk tools,Anroid platform tools、Android build tool,以及版本包,然后在Extras里面把support library也安装上。

设置环境变量

Cordova CLI工具需要设置环境变量才能正常工作:

  1. 设置 JAVA_HOME 环境变量。(安装JDK时已经设置好了)
  1. 设置 ANDROID_HOME 环境变量,目录是SDK的安装目录,我的是:C:\Program Files (x86)\Android\android-sdk。
  1. 将 SDK的 tools 和 platform-tools 目录加入到path环境变量中。

三、配置工程

设置模拟器

如果想要在Android模拟器上运行APP,需要创建一个AVD(Android Vitual Device)。创建AVD是Android开发经常涉及的,如果你安装了Eclipse或者AS,可以参考这个:Eclipse创建AVDAndroid Studio创建AVD。如果只安装了Android SDK,那么在安装目录下有AVD Manager.exe,打开后也可以创建AVD。当AVD配置好了后,就可以在项目根目录下使用下面的命令查看创建的AVD设备:

$ cordova run --list


配置Gradle

cordova4.0.0以后,Android工程通过Gradle生成。(以前的版本是使用的Ant生成工具)

设置Gradle属性

可以通过设置Cordova提供的特定值来配置Gradle生成工具。可以设置的属性如下表所示:

Property Description
cdvBuildMultipleApks 如果设置,会生成多个APK文件:每个硬件平台一个APK文件(x86,ARM等等)。如果项目中使用了会显著增加APK文件的大小的很大的本地库,就应该设置这个属性。如果未设置,那么只会生成一个APK文件。
cdvVersionCode会覆盖  AndroidManifest.xml中的versionCdoe。
cdvReleaseSigningPropertiesFile 默认值: release-signing.properties
生成发布版本时,指向包含签名信息的属性文件的路径。
cdvDebugSigningPropertiesFile 默认值: debug-signing.properties
生成调试版本时,指向签名信息的属性文件路径,当需要分享密钥的使用。
cdvMinSdkVersion 会覆盖  AndroidManifest.xml中的 minSdkVersion 值。当创建多个基于SDK版本的APK文件时会很有用。
cdvBuildToolsVersion 覆盖自动检测到的 android.buildToolsVersion 值。
cdvCompileSdkVersion 覆盖自动检测到的 android.compileSdkVersion 值。

可以通过下面几种方式来配置这些属性(以MinSkdVersion为例):

  1. 在build或者run命令中使用--gradleArg参数设置

      $ cordova run android --gradleArg=-PcdvMinSdkVersion=20
    
  2. 在项目platform/Android目录下新建一个叫 gradle.properties ,并设置如下属性:

      # In <your-project>/platforms/android/gradle.properties
      cdvMinSdkVersion=20
    
  3. 通过build-extras.gradle 文件来扩展 build.gradle ,设置如下属性:

      // In <your-project>/platforms/android/build-extras.gradle
      ext.cdvMinSdkVersion = 20
    

最后的两种方式都需要添加额外的文件,而这些修改经常会丢失和重写。因此,这两个文件应该作为使用before_build参数的build命令生成的从别的地方直接拷贝过来(使用hook方式)。

扩展build.gradle文件

如果想要自定义 build.gradle, 而不是直接编辑它, 那么需要创建一个叫 build-extras.gradle 的文件。这个文件会在呈现时被 build.gradle 包含进来。这个文件必须包含在platforms/Android目录下,所以推荐使用before_build参数的hook的方式,通过脚本将其拷贝过去。

build-extras.gradle示例:

// Example build-extras.gradle
// This file is included at the beginning of `build.gradle`
ext.cdvDebugSigningPropertiesFile = '../../android-debug-keys.properties'

// When set, this function allows code to run at the end of `build.gradle`
ext.postBuildExtras = {
    android.buildTypes.debug.applicationIdSuffix = '.debug'
}

插件可以通过下面的方式包含 build-extras.gradle 文件:

<framework src="some.gradle" custom="true" type="gradleReference" />

设置Version Code

要更改App的版本号,需要在config.xml文件的widget标签中设置 android-versionCode 属性。如果android-versionCode 没有设置,那么会通过version属性设置版本号,格式为: MAJOR.MINOR.PATCH:

versionCode = MAJOR * 10000 + MINOR * 100 + PATCH

四、给APP签名

给app签名有以下三种方式:
1、通过命令行使用参数
Parameter Flag Description
Keystore --keystore 存放keystore的路径
Keystore 密码 --storePassword keystore的密码
别名 --alias 私钥id
Password --password 私钥密码
 Keystore类型 --keystoreType 通过文件后缀确定,为p12或者jks
例如:

cordova build android --release -- --keystore=../my-release-key.keystore --storePassword=password --alias=alias_name --password=password.

关于如何生成keystore可以参考:利用JDK的KeyTool工具生成keystore

2、通过build.json

也可以通过在build.json配置以上内容,然后使用--buildConfig参数指定配置文件。

{
    "android": {
        "debug": {
            "keystore": "../android.keystore",
            "storePassword": "android",
            "alias": "mykey1",
            "password" : "password",
            "keystoreType": ""
        },
        "release": {
            "keystore": "../android.keystore",
            "storePassword": "",
            "alias": "mykey2",
            "password" : "password",
            "keystoreType": ""
        }
    }
}

发布版本的签名,密码可以排除,生成工具会弹出提示要求输入密码。

3、通过Gradle

也可以包含一个.properties文件,然后设置cdvReleaseSigningPropertiesFile 和 cdvDebugSigningPropertiesFile 属性指向该文件,例如:

storeFile=relative/path/to/keystore.p12
storePassword=SECRET1
storeType=pkcs12
keyAlias=DebugSigningKey
keyPassword=SECRET2

storePassword 和 keyPassword 是可选的,如果没有填,生成工具会弹出提示要求输入密码。

官网原文地址:http://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值