批量打包500个apk渠道包上传至oss,性能提升8倍"/>
linux批量打包500个apk渠道包上传至oss,性能提升8倍
linux批量打包apk渠道包
项目背景
公司开发一个游戏盒子类似的app。目前需要给很多app应用市场打渠道包。目前十几个渠道,500款游戏,每个渠道每个游戏对应一个包。我们将打包好的apk通过前端界面上传到oss,一个包60M,上传一个包需要16秒左右。每次更新apk上传到渠道耗费的时间是个大问题。
解决方案1,通过多线程上传渠道包
想到的第一个方案是,最简单的优化方案是通过多线程的方式上传。尝试使用go语言的多线程,开4个线程同时上传,期望能够减少上传的时间。通过对比,上传的时间和单线程上传的时间是一致的。上传速度取决于带宽。这个方案行不通
解决方案2,通过多线程上传渠道包
方案1走不通,所以就想了第二种方案。在服务端打包,打包后直接挂载到oss。后端使用的是lavarel框架。搭建在宝塔上面首先需要一个用一个打包的脚本,用来将加固的包重新写入渠道信息。下载地址:,按脚本config配置既可完成渠道包重新打包。
php代码中执行python脚本,通过redis队列进行异步处理的,同步会出现打包时间过长,服务器不响应的问题。
$path = date('m')."/".date('d')."/".time();
exec("cd /www/wwwroot/walle && python ApkResigner.py --channel={$param['log_id']} >> //www/wwwroot/logs/{$path}/exec.log 2>&1 &",$out);
通过宝塔的腾讯云COSFS,将打包后的渠道包直接挂载到腾讯云上。这样可以大大缩短渠道包的上传时间。目前来说2秒可以上传一个渠道包,比之前的性能提升8倍左右。
更多推荐
linux批量打包500个apk渠道包上传至oss,性能提升8倍
发布评论