android每次打包的时候, 要一堆目的地, 并且要记得手工升级build.gradle(module: app).

这个挺麻烦的. 而且是机械无脑的工作, 理应自动化, 由机器负责.

源码可以看懂, 有注释的行是有用的, 没有注释的行, 请忽略

apply plugin: 'com.android.application'
def cmd = 'git rev-list HEAD --count' //版本号基于git的commit数量.
def gitVersion = cmd.execute().text.trim().toInteger() //这个就是版本计数.
def cmd2 = 'git describe --tags' //版本名给予git的tag
def version = cmd2.execute().text.trim()  //这个就是自动版本名.
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    defaultConfig {
        applicationId "com.takungae.dagong30"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode gitVersion //这里用上刚才的变量
        versionName version //这里也是
    }
    buildTypes { 
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

查看apk的版本号

aapt dump badging myapp.apk
aapt dump permissions package.apk
aapt l -a <someapp.apk>
#带上路径才能执行, 比如下面这样
/Users/m/Library/Android/sdk/build-tools/23.0.3/aapt dump badging app/build/outputs/apk/app-debug.apk

或者使用apktool: http://ibotpeaches.github.io/Apktool/

参考

  1. 极速打包: https://github.com/mcxiaoke/packer-ng-plugin
  2. 优雅打包: http://www.race604.com/android-auto-version/
  3. 多渠道打包: http://www.jianshu.com/p/44d40f8e67c9