码迷,mamicode.com
首页 > 移动开发 > 详细

android studio 多渠道打包,调试正式包,build.gradle解析

时间:2015-08-27 18:54:09      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:android studio   多渠道   

1,讲解build.gradle文件。

1.1根目录Android     

                     技术分享

1.1.1
defaultConfig是Android的根目录,可以配置包名等信息,若AndroidMainfest.xml也配置了,以defaultConfig的为准。


1.1.2
signingConfigs是Android的根目录,可以配置签名,如下图:


技术分享

调试时若想直接用正式的签名包可以在buildType里配置。

buildTypes {
    debug {
        signingConfig signingConfigs.release
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
    }
}

1.1.3


多渠道打包,修改AndroidMainFest 的meta-data值。
AndroidMainFest 配置如下:

${Value} 是动态配置的。

<application android:name=".MyApplication">
    <meta-data
        android:name="channelValue"
        android:value="${Value}"></meta-data>

build.gradle配置如下

productFlavors {

    huawei {
        minSdkVersion 14
        targetSdkVersion 21
        manifestPlaceholders =[Value: "huawei"]
    }
    xiaomi {
        minSdkVersion 14
        targetSdkVersion 21
        manifestPlaceholders =[Value: "xiaomi"]
    }
}

代码中获取AndroidMainnifest Value的值

//获取meta字段
public static String getMetaString(Context con,String name){
      ApplicationInfo ai = null;
        try {
            ai = con.getPackageManager().getApplicationInfo(con.getPackageName(), PackageManager.GET_META_DATA);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        Bundle bundle = ai.metaData;
        return bundle.getString(name);
}

打包时直接使用

技术分享



最后贴上build.gradle文件。

apply plugin: ‘com.android.application‘

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "caisheng.com.search"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    signingConfigs {
        //你自己的keystore信息
        release {
            keyAlias ‘aolaigo‘
            keyPassword ‘123456‘
            storeFile file(‘E:/test.jks‘)
            storePassword ‘123456‘
        }
    }
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }

    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
        }
    }


    productFlavors {

        huawei {
            minSdkVersion 14
            targetSdkVersion 21
            manifestPlaceholders =[Value: "huawei"]
        }
        xiaomi {
            minSdkVersion 14
            targetSdkVersion 21
            manifestPlaceholders =[Value: "xiaomi"]
        }
    }
}

dependencies {
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    // compile (name:‘cai‘,ext:‘aar‘)

    // compile project(‘:cai‘)
  /*  compile ‘com.facebook.fresco:fresco:0.6.0‘
    compile ‘com.android.support:appcompat-v7:22.2.0‘
    compile ‘com.github.liuguangqiang.swipeback:library:1.0.2@aar‘
    compile ‘com.sothree.slidinguppanel:library:3.1.1‘
    compile ‘me.dm7.barcodescanner:zbar:1.5‘*/
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

android studio 多渠道打包,调试正式包,build.gradle解析

标签:android studio   多渠道   

原文地址:http://blog.csdn.net/chencaishengsic/article/details/48027339

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!