1. 程式人生 > >Android Studio裡面的Build.gradle的詳細配置說明

Android Studio裡面的Build.gradle的詳細配置說明

apply plugin: 'com.android.application'//說明module的型別,com.android.application為程式,com.android.library為庫
android {
    compileSdkVersion 22//編譯的SDK版本
    buildToolsVersion "22.0.1"//編譯的Tools版本
    defaultConfig {//預設配置
        applicationId "com.nd.famlink"//應用程式的包名
        minSdkVersion 8//支援的最低版本
        targetSdkVersion 19//支援的目標版本
        versionCode 52//版本號
        versionName "3.0.1"//版本名
		manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"hsq" ]//宣告友盟渠道名是可變的
    }
    sourceSets {//目錄指向配置
        main {
            manifest.srcFile 'AndroidManifest.xml'//指定AndroidManifest檔案
            java.srcDirs = ['src']//指定source目錄
            resources.srcDirs = ['src']//指定source目錄
            aidl.srcDirs = ['src']//指定source目錄
            renderscript.srcDirs = ['src']//指定source目錄
            res.srcDirs = ['res']//指定資源目錄
            assets.srcDirs = ['assets']//指定assets目錄
            jniLibs.srcDirs = ['libs']//指定lib庫目錄
        }
        debug.setRoot('build-types/debug')//指定debug模式的路徑
        release.setRoot('build-types/release')//指定release模式的路徑
    }
    signingConfigs {//簽名配置
        release {//釋出版簽名配置
            storeFile file("fk.keystore")//金鑰檔案路徑
            storePassword "123"//金鑰檔案密碼
            keyAlias "fk"//key別名
            keyPassword "123"//key密碼
        }
        debug {//debug版簽名配置
            storeFile file("fk.keystore")
            storePassword "123"
            keyAlias "fk"
            keyPassword "123"
        }
    }

    buildTypes {//build型別
        release {//釋出
            minifyEnabled true//混淆開啟
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'//指定混淆規則檔案
            signingConfig signingConfigs.release//設定簽名信息
        }
        debug {//除錯
            signingConfig signingConfigs.release
        }
    }
    packagingOptions {
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/MANIFEST.MF'
    }

    lintOptions {
        abortOnError false//lint時候終止錯誤上報,防止編譯的時候莫名的失敗
    }
	
	//打包-渠道
    productFlavors {
        hsq{}
        hsq_dx{}
        hsq_wx{}
        baidu{}
        yingyongbao{}
        ppzhushou{}
        anzhi{}
        zhushou360{}
        huawei{}
        lenovomm{}
        wandoujia{}
        mumayi{}
        meizu{}
        youyi{}
        sougou{}
    }
	
	//打包-防渠道程式碼重複處理
    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [ UMENG_CHANNEL_VALUE:name ]
    }
}

dependencies {//依賴
    compile fileTree(dir: 'libs', exclude: ['android-support*.jar'], include: ['*.jar'])   //編譯lib目錄下的.jar檔案
    compile project(':Easylink')//編譯附加的專案
    compile project(':ImageLibrary')
    compile project(':ImageResLibrary')
    compile project(':Ofdmtransport')
    compile project(':PullToRefreshLibrary')
    compile project(':RecorderLibrary')
    compile project(':WebSocket')
    compile project(':WidgetLibrary')
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'//編譯來自Jcenter的第三方開源庫
}