VasDolly

VasDolly的出现是为了更便捷、更快速的生成多个渠道包。

一般的打多个渠道包的情况

Gradle Plugin

  1. 在AndroidManifest.xml中添加渠道信息占位符:

    <meta-data 
    android:name="InstallChannel" android:value="${InstallChannel}" />
    
  2. 通过Gradle Plugin支持的productFlavors标签,添加渠道信息:

    productFlavors{
     "YingYongBao"{
         manifestPlaceholders = [InstallChannel : "YingYongBao"]
     }
     "360"{
         manifestPlaceholders = [InstallChannel : "360"]
     }
    }
    

这样,在编译时,gradle会将不同的渠道信息替换成AndroidManifest.xml中的占位符。

缺点:

  • 每生成一个渠道包,都要重新执行一遍构建流程,效率太低,只适用于渠道较少的场景。
  • Gradle会为每个渠道包生成一个不同的BuildConfig.java类,记录渠道信息,导致每个渠道包的DEX的CRC值都不同。(热修复可能会有问题)

ApkTool

通过ApkTool逆向解开APK,修改渠道信息,然后再重新打包。这种方式不需要重新构建新的渠道包,速度上相对gradle要快一点(但个人感觉也不一定吧~~)

缺点:

ApkTool工具不稳点,并且速度也不是很快

results matching ""

    No results matching ""