使用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 ,然後選擇你要打包的渠道和目錄,搞定~~~