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 渠道占位符



同时也在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 ,然后选择你要打包的渠道和目录,搞定~~~

你可能感兴趣的:(Android Studio 多渠道打包, 自定义APK名称)