Android studio gradle 多渠道打包
2016-01-08 13:24
375 查看
apply plugin: 'com.android.application' dependencies { // compile fileTree(dir: 'libs', include: '*.jar') compile project(':appcompat_v7_8') } buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0' } } android { compileSdkVersion 19 buildToolsVersion "21.0.2" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the tests to tests/java, tests/res, etc... instrumentTest.setRoot('tests') // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } defaultConfig { applicationId "com.example.demo4" minSdkVersion 8 targetSdkVersion 19 versionCode 1 versionName "1.0" // dex突破65535的限制 multiDexEnabled true
<pre name="code" class="java"> // AndroidManifest.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE}
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "channel_name"] } //执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。 lintOptions { abortOnError false } //签名 signingConfigs { debug { storeFile file("C:/Users/xxx/.android/debug.keystore") } relealse { storeFile file("demo.jks") storePassword "demo123456" keyAlias "demo_4" keyPassword "demo123456" } } buildTypes { debug { // 显示Log buildConfigField "boolean", "LOG_DEBUG", "true" versionNameSuffix "-debug" minifyEnabled false zipAlignEnabled false shrinkResources false signingConfig signingConfigs.debug } release { // 不显示Log buildConfigField "boolean", "LOG_DEBUG", "false" //混淆 minifyEnabled true //Zipalign优化 zipAlignEnabled true // 移除无用的resource文件 shrinkResources true //加载默认混淆配置文件 progudard-android.txt在sdk目录里面,不用管,proguard.cfg是我们自己配<span></span>的混淆文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg' //签名 signingConfig signingConfigs.relealse } } //渠道Flavors,我这里写了一些常用的 productFlavors { GooglePlay {} xiaomi {} umeng {} } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk") output.outputFile = new File(outputFile.parent, fileName) } } } }
大家也可以看看/article/1874920.html
也可以参考:www.cnblogs.com/0616--ataozhijia/p/4203997.html
也可以使用命令行进行打包,详见www.apkbus.com/ask/article/13844
相关文章推荐
- Android studio 打包apk如何重命名apk名称
- android无限自动轮播图控件
- Android编程开发规范
- android studio系列之打包apk
- Android 移动开发知识体系
- 提高android源码 编译速度参考
- 优化Android Studio/Gradle构建
- Android 开发中,有哪些坑需要注意?
- android studio编码格式设置
- android软件开发基础课程(一)
- Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果
- Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)
- Android performClick无效
- Android_动态权限管理的解决方案
- [置顶] Android相关工具分类汇总
- Android之MediaPlayer的框架源码分析
- Android Studio SDK 更新方法
- Android TableLayout(表格布局)
- Android与JS之间的互相调用交互(二)
- Android5.0 设置wifi页面的修改