是什么 ? | : | walle 是美团外卖 与大众点评 合并后的公司美团点评 开源出来的Android多渠道打包工具。
|
开发语言 | : | Java |
开发公司 | : | 美团点评 |
源码仓库 | : | https://github.com/Meituan-Dianping/walle |
操作系统 | 包管理器 | 安装命令 |
---|---|---|
macOS | HomeBrew | brew tap leleliu008/fpliu |
GNU/Linux | HomeBrew | brew tap leleliu008/fpliu |
step1、安装依赖
所有时 | Terminal + Shell + GNU CoreUtils |
下载时 | cURL |
运行时 | JRE | JDK |
step2、使用curl命令下载walle-cli-all.jar
()
curl -LO https://github.com/Meituan-Dianping/walle/releases/download/v1.1.6/walle-cli-all.jar
step3、编写一个名字为walle
的POSIX sh脚本,内容如下
#!/bin/sh
P=$(cd $(dirname $0);pwd)
java -jar "${P}/walle-cli-all.jar" $@
step4、给walle
赋予可执行权限
chmod a+x walle
step5、将walle
所在的目录加入PATH
环境变量中
export PATH=$PWD:$PATH
step1、使用git命令下载walle
源码
git clone https://github.com/Meituan-Dianping/walle.git
step2、进入walle
目录
cd walle
step3、编译
./gradlew build
step4、编写一个名字为walle
的POSIX sh脚本,内容如下
#!/bin/sh
P=$(cd $(dirname $0);pwd)
java -jar "${P}/walle-cli/dist/walle-cli-all.jar" $@
step5、给walle
赋予可执行权限
chmod a+x walle
step6、将walle
所在的目录加入PATH
环境变量中
export PATH=$PWD:$PATH
查看使用帮助。
查看版本号。
生成单个渠道包,也就是说这条命令运行完后,只生成一个渠道包。同时可以写入额外的key=value
信息。
option
有下面这些:
-c
是渠道号
-e
是额外的key=value
信息,可以出现多个,以,
分割。
示例:
java -jar walle-cli.jar put -c yingyongbao ~/xx.apk
java -jar walle-cli.jar put -e buildtime=20161212,hash=xxxxxxx ~/xx.apk
java -jar walle-cli.jar put -c yingyongbao -e buildtime=20161212,hash=xxxxxxx ~/xx.apk
java -jar walle-cli.jar put -c yingyongbao -e buildtime=20161212,hash=xxxxxxx ~/xx.apk ~/xx-yingyongbao.apk
批量生成渠道包。同时可以写入额外的key=value
信息。
option
有下面这些:
-f
是渠道号列表配置文件,每行一个渠道号,以#
作为注释的开头。
-c
是渠道号列表,以,
分割。
-e
是额外的key=value
信息,可以出现多个,以,
分割。
示例:
java -jar walle-cli.jar batch -c yingyongbao,360,91 ~/xx.apk
java -jar walle-cli.jar batch -e buildtime=20161212,hash=xxxxxxx ~/xx.apk
java -jar walle-cli.jar batch -c yingyongbao,360,91 -e buildtime=20161212,hash=xxxxxxx ~/xx.apk ~/
java -jar walle-cli.jar batch -f channels-config.txt ~/xx.apk channels/
这样就会生成很多个渠道包。
删除写入的信息。
java -jar walle-cli.jar rm ~/xx-360.apk
java -jar walle-cli.jar rm ~/xx-360.apk ~/xx-91.apk
查看写入的信息。
option
有下面这些:
-c
表示显示渠道号。
-e
表示显示额外的key=value
信息。
示例:
java -jar walle-cli.jar show -c ~/xx-360.apk
java -jar walle-cli.jar show -e ~/xx-360.apk
java -jar walle-cli.jar show -c -e ~/xx-360.apk
官网有详细说明,参照即可。
通常,我们可能会使用AndResGuard进行资源的压缩。 这时候,我们就无法再使用walle
的gradle插件了,只能使用命令行工具了。
在app
模块中加入如下的依赖库:
implementation("com.meituan.android.walle:library:1.1.5")
在Java代码中读取:
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
所有的被安装的APK文件的存放路径是:/data/app/{packageName}{*}.apk
, 那么我们在运行的过程中去读取该文件就可以把数据读取出来。