Gradle 进行 Android 多渠道多包名换图片全自动打包
2014-09-30 14:11
363 查看
转自: http://www.eoeandroid.com/thread-325377-1-1.html
Android, 图片
在用过maven,ant等项目等工具后后,发现觉得Android最佳的项目管理以及打包实践:Git/SVN+Jenkins+Gradle Gradle 脚本: [mw_shl_code=java,true]import com.android.builder.DefaultManifestParser buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.6'//依赖 } } apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar')//添加android依赖libs } android { compileSdkVersion 19 buildToolsVersion "19.0.0" //签名 signingConfigs { myConfig { storeFile file('ext/test.keystore') storePassword '123456' keyAlias '123456' keyPassword '123456' } } defaultConfig { versionCode 1 versionName getVersionName() minSdkVersion 8 targetSdkVersion 19 debuggable=false; } //渠道 productFlavors { google{ } tantai{ } } buildTypes{ release { signingConfig signingConfigs.myConfig runProguard true proguardFile 'proguard.cfg' } } sourceSets { main { manifest { srcFile 'AndroidManifest.xml' } java { srcDir 'src' } res { srcDir 'res' } assets { srcDir 'assets' } resources { srcDir 'src' } aidl { srcDir 'src' } } } } tasks.withType(Compile) { //options.encoding = "UTF-8" } //替换AndroidManifest.xml的UMENG_CHANNEL_VALUE字符串为渠道名称 android.applicationVariants.all{ variant -> variant.processManifest.doLast{ copy{ from("${buildDir}/manifests"){ include "${variant.dirName}/AndroidManifest.xml" } into("${buildDir}/manifests/$variant.name") filter{ String line -> line.replaceAll("UMENG_CHANNEL_VALUE", "$variant.name") } variant.processResources.manifestFile = file("${buildDir}/manifests/${variant.name}/${variant.dirName}/AndroidManifest.xml") } } def manifestParser = new DefaultManifestParser() def version =manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile) //def versionName = android.defaultConfig.versionName //def versionNameSuffix = variant.buildType.versionNameSuffix //if(versionNameSuffix.toString().equals("null")){ //versionNameSuffix = "" //} //def version= versionName+versionNameSuffix; def apk = variant.packageApplication.outputFile; println version; def newName = version+"//"+"unaligned//"+apk.name.replace(".apk","-"+version+".apk"); newName=newName.replace("release","release(proguard)"); variant.packageApplication.outputFile = new File(apk.parentFile, newName); if (variant.zipAlign) { newName=newName.replace("unaligned//", ""); variant.zipAlign.outputFile = new File(apk.parentFile, newName.replace("-unaligned", "")); } //delete new File(apk.parentFile, "unaligned"); }[/mw_shl_code] |
相关文章推荐
- Android——使用gradle进行多渠道自动打包
- 安卓学习笔记---Android 开发技巧-以友盟为例在Android Studio利用gradle进行多渠道打包和apk签名发布
- Android 开发技巧-以友盟为例在Android Studio利用gradle进行多渠道打包和apk签名发布
- Android Studio Gradle多渠道打包(动态设定App名称,应用图标,背景图片,状态栏颜色)、配置签名文件
- Android Studio使用Gradle多渠道自动打包
- Android中利用ant进行多渠道循环批量打包(二)
- Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解
- Android中利用ant进行多渠道循环批量打包(一)
- Android多渠道打包工具Gradle插件
- gradle android友盟多渠道混淆编译打包
- android gradle 多渠道打包
- Android_Ant_多渠道打包/一键自动编译
- Ant_android 多渠道自动打包(1)
- ant工具-多渠道自动打包android项目
- Android中利用ant进行多渠道循环批量打包
- Android_Ant_多渠道打包/一键自动编译 ——Mac lion 10.8.2下
- Android中利用ant进行多渠道循环批量打包(一)
- Android_Ant_多渠道打包/一键自动编译 ——Mac lion 10.8.2下
- Android中利用ant进行多渠道循环批量打包(二)
- Android中利用ant进行多渠道循环批量打包