美团多渠道快速打包

说明

首先使用shell脚本打出源apk,根据channel中声明的渠道信息复制相应apk文件,调用美团写入方法写入信息,最后将写入的信息运行时读取出来设置给统计服务商,该套方法使用后主项目打包后体积仅多3kb。请结合文章末尾项目链接配置项目。

目录结构

目录结构图.png

步骤

  1. 以model形式导入build-lib到主项目工程,该model用于打包,并不会编译到主项目中
  2. 配置主工程build.gradle
    • 配置签名文件
    • 确保文件中有以下渠道名,改名用来生成源apk文件,在build.sh和BuildTask.java文件中使用。
        sourceChannel {}
    }```
    + 加入以下代码,指定apk生成的路径,默认在build-lib的apks文件夹下面,可以在path文件中修改

def app_name = "build_test"
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def outFileName = app_name
if (android.defaultConfig.versionName != null) {
outFileName = outFileName + "" + android.defaultConfig.versionName + "" + new Date().format('yyyy-MM-dd') + "_" + productFlavors[0].name + ".apk"
}
if (project.hasProperty("output_dir")) {
output.outputFile = new File(project.property("output_dir"), outFileName)
} else {
output.outputFile = new File(getBuildFile().getParentFile().getParent() + "\build-lib\apks", outFileName)
}

    }
}

}```

  • 引用渠道读取库
    compile 'com.meituan.android.walle:payload_reader:1.0.3'
  1. 加入图中获取信息的工具类WalleChannelReader

  2. 配置channe文件,渠道名开始,“,”做间隔,“=”连接键值对信息,可用“#”注释渠道

  3. 上述配置完成后,执行build.sh脚本,待生成apk文件后,运行BuildTask.java文件即可生成所有渠道包。

demo地址
https://github.com/xuzhili/BuildApks

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • Gradle配置最佳实践 本文会不定期更新,推荐watch下项目。如果喜欢请star,如果觉得有纰漏请提交issu...
    Solang阅读 1,674评论 0 4
  • 一、什么是多渠道 我理解的是:APP发布到不同的应用平台,监测用户是从哪个平台安装的。 二、为什么要多渠道打包 1...
    LucasAdam阅读 957评论 0 1
  • 01嵇康的生平与个性 嵇康的高洁,在哲学家群体中,可以和西方的斯宾诺沙一比。甚至是古今中外,无出其右。嵇康(223...
    玩哲阅读 5,057评论 7 74