【译】Jenkins 集成 APK size 与 dexcount 趋势图

声明:本文也在我的微信公众号 Android程序员(AndroidTrending) 发布。

原文链接:Android APK size + dexcount charts on Jenkins
原文作者:Marc Reichelt
译文出自:汤涛的简书
译者:汤涛
状态:完成

最近在 Android Weekly 上看到的一篇文章,感觉有些帮助,文章不长,就顺手翻译了一下。Jenkins 这个持续集成工具,我们一直在用,感觉不错,用好它能帮助我们解决很多问题,极大提高团队开发效率。

我们在 flinc 为持续集成投入了大量的精力。为了改善 APK size 与 dex 中的方法/字段数,首先必须测量它。当我在 Twitter 上提出这个问题时,有人告诉了我 dexcount-gradle-plugin,它使用起来非常容易:

top-level build.gradle

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        // other dependencies go here...
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.5.2'
    }
}

app/build.gradle

android {
    // your android block goes here
}

apply plugin: 'com.getkeepsafe.dexcount'

现在,如果编译你的工程,这个插件将会在每次 build 时,输出 dex 方法数与字段数。


output of ./gradlew app:assembleDebug

以上已经非常有帮助了 :-)
如果你不用 Jenkins 的话,可以不用继续往下看了。


接下来,让我们看看 Plot 这个 Jenkins 插件。给 Jenkins 安装 Plot 插件,并为你的 build 配置它。

注意根据你的工程调整 CSV 文件路径,debug 与 release build 各有不同的文件名。如果准备就绪,在你的 build 任务里点击 Plots(注意应该先跑 1~2 次 build 任务),应该可以看到一个漂亮的图表。来看看我们现在有什么了?

现在让我们来看看 APK size,打开 Jenkins build 配置,在 build 的最后,加一小段脚本。

OUTFILE=flinc/app/build/outputs/apksize.csv
echo filesize > $OUTFILE
# yep, that's for Mac. Use "stat -c %s" instead on Linux
stat -f%z flinc/app/build/outputs/apk/app-release.apk >> $OUTFILE

同时添加新的 plot 变量:'Add Plot' 按钮 ( 不是 'Add' 按钮,这个也会被添加到同样的图表中)。注意我在 group 字段里,填写了与之前一样的 'APK info'。

让我们来看看最终效果吧:

超赞!

特别提示:为了更轻松地创建 plots, 你可以简单创建一个 free-style 类型的 Jenkins 任务,将指定的 .csv 文件复制到其 workspace, 并开始测试,分分钟就可以搞定。

希望这篇文章会帮助你更容易地跟踪各种优化的改进效果,包括:APK 瘦身开启混淆压缩图片或者使用矢量图片等。祝你玩得愉快!

推荐阅读更多精彩内容