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