Cordova开发平台配置--Android

来源:互联网 发布:淘宝收货地址写什么 编辑:程序博客网 时间:2024/05/29 09:15

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

一、所需配置和支持

Cordova需要安装Android SDK,Cordova最新版本已经可以支持Android API-Level 23。Cordova和Android SDK API的支持关系如表1所示:
cordova-android VersionSupported Android API-Levels5.X.X14 - 234.1.X14 - 224.0.X10 - 223.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创建AVD,Android Studio创建AVD。如果只安装了Android SDK,那么在安装目录下有AVD Manager.exe,打开后也可以创建AVD。当AVD配置好了后,就可以在项目根目录下使用下面的命令查看创建的AVD设备:

$ cordova run --list


配置Gradle

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

设置Gradle属性

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

PropertyDescriptioncdvBuildMultipleApks如果设置,会生成多个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、通过命令行使用参数
ParameterFlagDescriptionKeystore--keystore存放keystore的路径Keystore 密码--storePasswordkeystore的密码别名--alias私钥idPassword--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.p12storePassword=SECRET1storeType=pkcs12keyAlias=DebugSigningKeykeyPassword=SECRET2

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

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

1 0
原创粉丝点击