Android Studio简介化打包详解

大家可能在android开发打包的时候需要配置各种参数,各种测试环境,上线的时候需要打不同渠道的包,甚至各种开关(如:日志开关)。需要配置这么多东西,搞不好就忘了哪个,出现各种问题,下面我就讲一下快捷打包,点几下鼠标就可以。

1、配置工程根目录下的build.gradle

buildscript {
    repositories {
//        jcenter()
        maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath group: 'org.tmatesoft.svnkit', name: 'svnkit', version: '1.8.11'
        classpath 'org.codehaus.groovy:groovy-all:2.3.6'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

repositories {
    maven {
        url 'https://raw.githubusercontent.com/Goddchen/mvn-repo/master/'
    }
    mavenCentral()
}
 
2、配置app目录下的build.gradle

import org.tmatesoft.svn.core.wc.*
import groovy.util.*

apply plugin: 'com.android.application'

def releaseTime() {
    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}

def getSvnRevision() {
    ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
    SVNClientManager clientManager = SVNClientManager.newInstance(options);
    SVNStatusClient statusClient = clientManager.getStatusClient();
    SVNStatus status = statusClient.doStatus(projectDir, false);
    SVNRevision revision = status.getRevision();
    return revision.getNumber();
}
android {
    compileSdkVersion 21
    buildToolsVersion '25.0.0'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    lintOptions {
        disable "ResourceType"
    }

    defaultConfig {

        applicationId "cn.yigou.mobile"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 419
        versionName "4.1.9"
    }

    buildTypes {
        debug_online {
            // 显示Log
            buildConfigField "boolean", "LOG_DEBUG", "true"
            //链接生产环境或测试环境
            buildConfigField "boolean", "IS_ONLINE", "true"
            versionNameSuffix "-debug"
            debuggable true
            jniDebuggable true
            renderscriptDebuggable true
            minifyEnabled false
            pseudoLocalesEnabled false
            zipAlignEnabled false
        }
        debug_offline {
            // 显示Log
            buildConfigField "boolean", "LOG_DEBUG", "true"
            buildConfigField "boolean", "IS_ONLINE", "false"
            versionNameSuffix "-debug"
            debuggable true
            jniDebuggable true
            renderscriptDebuggable true
            minifyEnabled false
            pseudoLocalesEnabled false
            zipAlignEnabled false
        }
        release {
            // 不显示Log
            buildConfigField "boolean", "LOG_DEBUG", "false"
            buildConfigField "boolean", "IS_ONLINE", "true"
            minifyEnabled true
            zipAlignEnabled true
            proguardFiles 'proguard.cfg'
            //是否清理无用资源
            shrinkResources true
        }
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                def outputFile = output.outputFile
                def fileName;
                if (outputFile != null && outputFile.name.endsWith('.apk')) {
                    // 输出apk名称为114MALL_v1.0_2015-01-15_wandoujia.apk
                    if (variant.buildType.name.equals('release')) {
                        fileName = "114MALL_v${defaultConfig.versionName}_${getSvnRevision()}_${releaseTime()}_${variant.productFlavors[0].name}_online_release.apk"
                    } else if (variant.buildType.name.equals('debug_online')) {
                        fileName = "114MALL_v${defaultConfig.versionName}_${getSvnRevision()}_${releaseTime()}_${variant.productFlavors[0].name}_online_debug.apk"
                    } else {
                        fileName = "114MALL_v${defaultConfig.versionName}_${getSvnRevision()}_${releaseTime()}_${variant.productFlavors[0].name}_offline_debug.apk"
                    }
                    output.outputFile = new File(outputFile.parent, fileName)
                }
            }
        }
    }
   //渠道配置
productFlavors {
        //安智,机锋,应用汇,木蚂蚁,华为,OPPO,N多市场,豌豆荚,小米,腾讯,360,百度
        //ANZHI_MARKET JIFENG_MARKET YINGYONGHUI_MARKET MUMAYI_MARKET HUAWEI_MARKET OPPO_MARKET
        ///NDUO_MARKET WANDOUJIA_MARKET XIAOMI_MARKET TENGXUN_MARKET 360_MARKET BAIDU_MARKET
        mall_114 {
            manifestPlaceholders = [CHANNEL_NAME: "114MALL"]
        }
        anzhi_market {
            manifestPlaceholders = [CHANNEL_NAME: "ANZHI_MARKET"]
        }
        jifeng_market {
            manifestPlaceholders = [CHANNEL_NAME: "JIFENG_MARKET"]
        }
        yingyonghui_market {
            manifestPlaceholders = [CHANNEL_NAME: "YINGYONGHUI_MARKET"]
        }
        mumayi_market {
            manifestPlaceholders = [CHANNEL_NAME: "MUMAYI_MARKET"]
        }
        huawei_market {
            manifestPlaceholders = [CHANNEL_NAME: "HUAWEI_MARKET"]
        }
        oppo_market {
            manifestPlaceholders = [CHANNEL_NAME: "OPPO_MARKET"]
        }
        nduo_market {
            manifestPlaceholders = [CHANNEL_NAME: "NDUO_MARKET"]
        }
        wandoujia_market {
            manifestPlaceholders = [CHANNEL_NAME: "WANDOUJIA_MARKET"]
        }
        xiaomi_market {
            manifestPlaceholders = [CHANNEL_NAME: "XIAOMI_MARKET"]
        }
        tengxun_market {
            manifestPlaceholders = [CHANNEL_NAME: "TENGXUN_MARKET"]
        }
        market_360 {
            manifestPlaceholders = [CHANNEL_NAME: "360_MARKET"]
        }
        baidu_market {
            manifestPlaceholders = [CHANNEL_NAME: "BAIDU_MARKET"]
        }
    }
}

3、在AndroidManifest.xml代码中调用渠道配置

<meta-data     android:name="114MALL_APM_APP_CHANNEL"     android:value="${CHANNEL_NAME}"> </meta-data>

4、在日志文件中调用日志开关

private static boolean logFlag = BuildConfig.LOG_DEBUG;

5、在配置文件中调用平台环境

/**  * true:正式环境 false:测试环境;  */ public static boolean IS_ONLINE = BuildConfig.IS_ONLINE;

6、以上配置好了,接下来就是调用android studio打包功能,如图:


 

7、最终生成文件名如下:114MALL_v4.1.9_51985_2017-04-13_mall_114_offline_debug.apk,文件虽然很长,但里面带了丰富的信息


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值