前言:
因为公司项目需要发布到更多的平台上,以供用户下载。打包就成了一个很大的问题。利用原本的打包方式,又慢油耗。主要是电脑慢的话,打一个包都已经要一俩分钟了,如果需要发布的渠道多的话,那么真的就GG了。
当然第一想到的还是使用第三方框架来实现。原始的做法如何配置渠道打包我这就不介绍啦。咱们主要讲的就是使用VasDolly来配置完成打包的过程。
这个框架是腾讯的开源框架,大家可以了解一下,VasDolly实现原理
大家可以对比一下目前比较流行的三个框架,VasDolly、packer-ng-plugin、Walle。选择适用自己的。
正文:
先贴一下全部的配置代码
apply plugin: 'com.android.application'
apply plugin: 'channel'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
multiDexEnabled true
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
sourceSets rootProject.ext.android.sourceSets
dexOptions {
javaMaxHeapSize "4g"
}
flavorDimensions 'default'
//等更新到3.0.0的版本AS更换成这个
android.applicationVariants.all { variant ->
if (variant.buildType.name == "debug") {
// 服务器地址
buildConfigField "String", "HOST", "\"http://testBaidu.com/\""
} else if (variant.buildType.name == "release") {
// 服务器地址
buildConfigField "String", "HOST", "\"http://www.baidu.com/\""
}
variant.outputs.all {
outputFileName = "app-${variant.versionName}.apk"
}
}
signingConfigs {
debug {
storeFile file("test.keystore")
storePassword "android"
keyAlias "test"
keyPassword "123456"
}
release {
storeFile file("test.keystore")
storePassword "android"
keyAlias test
keyPassword "123456"
v1SigningEnabled true/