Android Studio 多渠道打包, 自定義APK名稱

使用Android Studio 有一段時間了, 讓我總結下使用感受,那就是 “爽”!!!

由於公司項目android版渠道比較多, 所以打包的時候一般都會使用多渠道打包。而AS 爲我們提供了很方便很牛逼的腳本工具Gradle,廢話不多說了


首先在項目底下的 build.gradle 文件中的 android 節點 添加 productFlavors 節點 , 如下

// 渠道列表
productFlavors {

    pc {
        manifestPlaceholders = [CHANNEL_NAME: "pc"]
    }

    s360{
        manifestPlaceholders = [CHANNEL_NAME: "s360"]
    }
}
其中 CHANNEL_NAME 是 AndroidManifest.xml 中添加 umeng 渠道佔位符

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${CHANNEL_NAME}">
</meta-data>

同時也在android 節點下 添加 以下腳本

//PK打包重新命名
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def appName = 'your app name'
        def buildName

        variant.productFlavors.each { product ->
            buildName = product.name
        }

        output.outputFile = new File(output.outputFile.parent, appName + "_" + getVersionNameFromManifest() + "_" + buildName + ".apk");
    }

}
因爲我們的版本號一般配置在AndroidManifest.xml 中, 所以利用 getVersionFromManifest() 方法獲取其中的版本號(versionName)

//androidManifest.xml中獲取版本號
def getVersionFromManifest() {
    def manifestParser = new com.android.builder.core.DefaultManifestParser()
    return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)
}

~~~ 好了, 直接 Build->Generate Signed APK ,然後選擇你要打包的渠道和目錄,搞定~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章