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