Walle oficial GitHub Dirección: https://github.com/Meituan-Dianping/walle
VasDolly oficial GitHub Dirección : https://github.com/Tencent/VasDolly
escalones de acceso VasDolly:
El primer paso: añadir esta línea de código en el Proyecto de build.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.leon.channel:plugin:2.0.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
Paso dos: Módulo de build.gradle, añadir una referencia a la VasDolly
aplicar plugin: 'canal'
El tercer paso: En el Módulo a las referencias de proyectos dependientes de ayudante
api 'com.leon.channel:helper:2.0.1'
Cuarto paso: Configurar archivo de firma
Automated Packaging asegúrese de especificar signingConfig signingConfigs.release // Gradle en buildTypes envasado automático Asegúrese de añadir la frase, si no se puede agregar un paquete de depuración. La configuración del módulo en el proyecto
android {
signingConfigs {
debug {
storeFile file('D:\\DownLoad\\VasDolly-master\\MyApplication\\vasdolly1.jks')
storePassword '123456'
keyAlias = '123456'
keyPassword '123456'
}
release {
storeFile file('D:\\DownLoad\\VasDolly-master\\MyApplication\\vasdolly1.jks')
storePassword '123456'
keyAlias = '123456'
keyPassword '123456'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release//gradle 自动打包一定要添加这句
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug //可以没有
}
}
compileSdkVersion 28
defaultConfig {
applicationId "com.cq.myapplication"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
channel {
//指定渠道文件
channelFile = file("D:/DownLoad/VasDolly-master/MyApplication/channel.txt")
//多渠道包的输出目录,默认为new File(project.buildDir,"channel")
baseOutputDir = new File(project.rootProject.buildDir, "channel")
//多渠道包的命名规则,默认为:
${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}
apkNameFormat = '${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}'
//快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false)
isFastMode = false
//buildTime的时间格式,默认格式:yyyyMMdd-HHmmss
buildTimeDateFormat = 'yyyyMMdd-HH:mm:ss'
//低内存模式(仅针对V2签名,默认为false):只把签名块、中央目录和EOCD读取到内存,不把最大头
的内容块读取到内存,在手机上合成APK时,可以使用该模式
lowMemory = false
}
rebuildChannel {
//指定渠道文件
channelFile = file("D:\\DownLoad\\VasDolly-master\\VasDolly-master\\channel.txt")
baseDebugApk = new File("D:\\DownLoad\\VasDolly-master\\VasDolly-master\\baseApk\\app-debug.apk")
baseReleaseApk = new File("D:\\DownLoad\\VasDolly-master\\VasDolly-master\\baseApk\\app-debug.apk")
//默认为new File(project.buildDir, "rebuildChannel/debug")
debugOutputDir = new File(project.rootProject.buildDir,"rebuildChannel/debug")
//默认为new File(project.buildDir, "rebuildChannel/release")
releaseOutputDir = new File(project.rootProject.buildDir,"rebuildChannel/release")
//快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false)
isFastMode = false
//低内存模式(仅针对V2签名,默认为false):只把签名块、中央目录和EOCD读取到内存,不把最大头的内容块读取到内存,在手机上合成APK时,可以使用该模式
lowMemory = false
}
Entre ellos, nombrando paquete de múltiples canales, puede utilizar los siguientes campos:
appName: El nombre del proyecto actual
nombre de la versión: Variante del nombre de la versión actual
versionCode: Variante actual de versionCode
buildtype: 当前 variante 的 buildtype, 即 de depuración o la liberación
flavorName: El nombre del canal actual
Id de aplicación: Variante actual de applicationId
BUILDTIME: compilación actual fecha y tiempo de construcción, se puede personalizar el formato de hora, el formato por defecto: AAAAMMDD-HHmmss
Quinto paso: Paso 5: Inicio de embalaje, que puede entrar en la línea de comandos en un terminal en Android Studio
prueba gradlew channelDebug
oficial gradlew channelRelease
gradlew rebuildChannel APK utilizando el paquete multicanal original