ScratchPaper - 为 icon 和 apk 添加 build info 的 Gradle Plugin

2018-09-21 14:00:42 +08:00
 2bab

项目地址: https://github.com/2BAB/ScratchPaper

欢迎 issues, PRs, any contributions

ScratchPaper (v2.x)

ScratchPaper 通过编译期动态修改 icon 和生成包括 git 信息在内的 assets,帮助你识别多个 buildTypes 或 flavors 生成的 APK 文件。

ScratchPaper 都做了些什么?

如果你在一台设备上安装两个 App,一个是 Debug 版一个是 Release 版,那么你很难区分出来到底哪个是哪个(不打开的情况下)。

ScatchPaper 可以在你的 App icon 上加一个蒙层用以区分出各个 buildTypes 的 App,并且承载了版本信息等附加文字。

如果你同时打了多个测试包给测试或者产品(例如基于多个复合分支),当他们给你反馈的问题时候你和他们可能都很难分别出每个 App 对应的具体的分支或者 commit 节点。

ScatchPaper 支持生成编译信息并打包到你的 Apk 中(从 assets 中读取),以及输出一份拷贝到 /intermedias/scratch-paper/assets 文件夹,包括:

为什么一定要试试 ScratchPaper

其实市面上不乏有类似的解决方案,例如:akonior/icon-version, akaita/easylauncher-gradle-plugin。但是他们的问题在于:不支持 AAPT2 !由于 Google 会在 18 年底停止对 aapt1 的支持( enableAapt2=false 将被移除),所以尽早迁移到 AAPT2 其实是一个明智的选择。加上 AAPT2 的诸多好处:

ScratchPaper 希望不仅能给大家带来好用的 APK 识别解决方案,同时也跟大家一起探讨:

如何使用?

0x01. Add the plugin to classpath:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath 'me.2bab:scratch-paper:2.1.1'
    }
}

0x02. Apply Plugin:

// On Application's build.gradle (do not use in Library project)
apply plugin: 'me.2bab.scratchpaper'

0x03. Build your App and Enjoy!

0x04. Advanced Configurations

scratchPaper {
    textSize = 12
    textColor = "#FFFFFFFF"
    verticalLinePadding = 4
    backgroundColor = "#99000000"
    extraInfo = "This is a sample!"
    enableGenerateIconOverlay = true
    enableGenerateBuildInfo = true
    
    // Experimental field
    // @see IconOverlayGenerator#removeXmlIconFiles
    enableXmlIconRemove = false
}
8128 次点击
所在节点    Android
2 条回复
2bab
2018-09-21 14:30:54 +08:00
yukiww233
2018-09-21 14:52:10 +08:00
试试看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/491524

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX