Walle(瓦力):Android Signature V2 Scheme 签名下的新一代渠道包打包神器。
瓦力通过在 Apk 中的 APK Signature Block
区块添加自定义的渠道信息来生成渠道包,从而提高了渠道包生成效率,可以作为单机工具来使用,也可以部署在 HTTP 服务器上来实时处理渠道包 Apk 的升级网络请求。
为了方便大家的使用,我们提供了2种使用方式:
Gradle 插件方式,方便快速集成
命令行方式,最大化满足各种自定义需求
在位于项目的根目录 build.gradle
文件中添加Walle Gradle插件的依赖, 如下:
buildscript { dependencies { classpath 'com.meituan.android.walle:plugin:1.0.3' } }
并在当前App的 build.gradle
文件中apply这个插件,并添加上用于读取渠道号的AAR
apply plugin: 'walle'dependencies { compile 'com.meituan.android.walle:library:1.0.3'}
在需要渠道等信息时可以通过下面代码进行获取
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
生成渠道包的方式是和assemble指令结合,可以通过传入参数决定是否生成渠道包,渠道包的生成目录存放在 build/outputs/apk/
下面是各类用法示例:
生成单个渠道包 ./gradlew clean assembleRelease -PchannelList=meituan
支持 productFlavors ./gradlew clean assembleMeituanRelease -PchannelList=meituan
生成多个渠道包 ./gradlew clean assembleRelease -PchannelList=meituan,dianping
通过渠道配置文件来生成渠道包 ./gradlew clean assembleRelease -PchannelFile=channel
渠道信息的配置文件支持配置相对路径,详见:配置文件示例,同时配置文件支持使用#号添加注释。
Walle部署系统部署 1.执行LAMP环境搭建命令 yum -y install httpd mysql mysql-libs mysql-server php php-cli php-common php-fpm php-gd php-imap php-ldap php-mbstring php-snmp php-xml php-mysql 2.查看以上命令安装的php版本 [root@iZ9
背景 我们的应用集成了TalkingData这个第三方工具来统计日活、事件等,需要在应用启动时初始化SDK,这个时候需要传入当前渠道,以便数据的统计。 由于最开始是用脚本一个个打包,一直想解决打包过慢的问题,但是网上大多教程是基于命令行参数或flavor,实质上并没有根本解决打包效率的问题。直到发现了文章的主角 walle。 应用解决方案 walle walle是美团开源的一个打包插件,这里就不做
背景介绍 为了防止安卓应用程序被恶意破解,植入黑客病毒或修改代码用于商业竞争等,对应用程序进行加固必不可少。接下來,本篇文章会主要讲加固的过程以及一些注意事项。 前期准备 首先,了解一下何为加固,加固的原理是怎样的,这有利于后面分析问题。 简单来说,加固就是对源Apk进行加密,然后再套上一层壳。用加密算法对源Apk进行加密,再将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件得到新
前言 本文讲述了Android项目集成Bugly异常上报、运营统计和Tinker热修复方案以及Walle多渠道打包的一系列流程,用来记录本人在使用中的接入步骤和一些注意点。 Bugly文档中心 Tinker Wiki Walle打包神器 添加插件依赖 工程根目录下“build.gradle”文件中添加: classpath ‘com.android.tools.build:gradle:3.0.0
国内Android应用下载有360、小米、豌豆荚、百度等等非常多的渠道, 如果我们想统计每个渠道的下载量和活跃度,就需要使用统计平台. 我们以友盟统计为例,介绍如何配置渠道信息并执行自动化打包. 1.在AndroidMainfest.xml配置可动态替换的渠道参数 友盟集成文档中有说明,使用友盟统计需要在AndroidMainfest.xml配置相应的渠道号: <meta-data andro
我们在日常开发中多多少少都会遇到多渠道打包的情况。这些版本可能会上传到不同的应用市场,也可能是是线下多渠道推荐。有时候可能不同的渠道使用的资源图片都不一样。古老的做法就是,需要打多少个渠道包拉出多少份代码分支,分别替换对应的资源文件和包名配置信息等。这种做法非常的耗时耗力。Gradle 可以帮我们用一份代码通过配置实现打出所有的渠道包。 1. 创建多渠道资源文件目录 首先,我们新创建一个工程,然后
本文向大家介绍Android Studio多渠道打包套路,包括了Android Studio多渠道打包套路的使用技巧和注意事项,需要的朋友参考一下 说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值: 上面的v
本文向大家介绍Android多渠道打包时获取当前渠道的方法,包括了Android多渠道打包时获取当前渠道的方法的使用技巧和注意事项,需要的朋友参考一下 作为Android app,发布多个分发平台是常规操作。然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码。 这里把简单的代码记一下。 首先,分渠道打包很简单。 在项目的bui
本文向大家介绍Android Studio多渠道打包的配置方法,包括了Android Studio多渠道打包的配置方法的使用技巧和注意事项,需要的朋友参考一下 说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值: 上面的value值Cha
本文向大家介绍Android Studio使用教程(六):Gradle多渠道打包,包括了Android Studio使用教程(六):Gradle多渠道打包的使用技巧和注意事项,需要的朋友参考一下 由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。 友盟多渠道打包 废话不
本文向大家介绍Android Studio中一套代码多渠道打包的实现方法,包括了Android Studio中一套代码多渠道打包的实现方法的使用技巧和注意事项,需要的朋友参考一下 一套代码达到以下效果: 打包不同applicationId能同时安装在同一手机上 不同logo,app名称, 不同第三方SDK接入配置(例如微信分享appid,激光推送appkey) 能区分debug和release配置
本文向大家介绍Android 7.0中新签名对多渠道打包的影响详解,包括了Android 7.0中新签名对多渠道打包的影响详解的使用技巧和注意事项,需要的朋友参考一下 老签名多渠道打包原理 前言 由于Android7.0发布了新的签名机制,加强了签名的加固,导致在新的签名机制下无法通过美团式的方式再继续打多渠道包了。不过在说新的签名机制对打包方案的 影响和为什么会影响我们原有的打包机制之前,需要先