androidstudio
jdk/sdk
group = 'com.example.test'apply plugin: 'com.android.application'apply plugin: 'com.neenbedankt.android-apt'android { //1.签名配置,这样打包可以直接在terminal里使用命令打包 signingConfigs { TestConfig { keyAlias 'test' keyPassword 'test' storeFile file('../jks/'test'.jks') storePassword 'test' } } compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion //2.为了让项目目录出现jniLibs文件夹 sourceSets { main { jniLibs.srcDir 'libs' } } //3.基础配置,例如版本信息,适配最小和目标版本号等信息 defaultConfig { multiDexEnabled true minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode 1 versionName '1' } //4.定义了编译类型,默认release和debug类型 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.TestConfig; ndk { abiFilters 'x86', 'armeabi' } } debug { debuggable true minifyEnabled false signingConfig signingConfigs.TestConfig; ndk { abiFilters 'x86', 'armeabi' } } //5.多渠道打包,让你打包一次得到多个apk productFlavors { apk_release applicationId 'com.example.test' // app名字,在 string.xml 不能有这个字段,会重名!!!改这个,名字就改了 resValue 'string', 'app_name', '测试项目' // 修改 AndroidManifest.xml 里友盟的渠道变量,百度地图 manifestPlaceholders = [UMENG_APPKEY: '5abc74f8f29d98278f00023e', UMENG_MESSAGE_SECRET: '05ce4d1d9b15991405f30310427af672', BAIDU_API_KEY: 'miwLNN7vDAHxzANaFpqta6vGxbNcDG2u'] //网络请求的地址,根据实际需求,可以将一些服务常量全部配置在这里,修改时只需到这里修改就可以了 buildConfigField('String', 'API_HOST', '\'http://baidu.com\'') } } // 批量打包 applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { //输出apk名称为:渠道名_版本名_时间.apk def fileName = '${variant.productFlavors[0].name}_v${defaultConfig.versionName}.apk' output.outputFile = new File(outputFile.parent, fileName) } } } } //解决rxjava冲突的 packagingOptions { exclude 'META-INF/rxjava.properties' } } //6.依赖 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile rootProject.ext.supportAppcompatV7 compile rootProject.ext.sqlbrite compile rootProject.ext.rxJava compile rootProject.ext.rxAndroid compile rootProject.ext.rxPermissions compile rootProject.ext.rxBinding compile rootProject.ext.dagger2 compile rootProject.ext.retrofit compile rootProject.ext.eventBus compile rootProject.ext.retrofitConverterGson compile rootProject.ext.retrofitAdapterRxJava compile rootProject.ext.materialDialog apt dagger2Compiler compile project(':library' compile project(':push') }}
若有需要,还可以自行建一个Config.gradle文件,对所有module进行管理,一般配置如下,具体需要用那些库,自行删减:def supportVersion = '25.3.1'def rxBindingVersion = '0.4.0'def rxLifecyleVersion = '0.3.1'def retrofitVersion = '2.1.0'def leakCanaryVersion = '1.3'def dagger2Version = '2.6'ext { android = [ compileSdkVersion: 25, buildToolsVersion: '25.0.3', minSdkVersion : 15, targetSdkVersion : 25 ] //官方库 supportV4 = 'com.android.support:support-v4:${supportVersion}' supportAppcompatV7 = 'com.android.support:appcompat-v7:${supportVersion}' supportDesign = 'com.android.support:design:${supportVersion}' supportCardView = 'com.android.support:cardview-v7:${supportVersion}' supportRecyclerView = 'com.android.support:recyclerview-v7:${supportVersion} //Rx家族,响应式编程 rxJava = 'io.reactivex:rxjava:1.1.9' rxAndroid = 'io.reactivex:rxandroid:1.2.1' rxPermissions = 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar' rxBinding = 'com.jakewharton.rxbinding:rxbinding:${rxBindingVersion}' rxBindingSupportV4 = 'com.jakewharton.rxbinding:rxbinding-support-v4:${rxBindingVersion}' rxBindingSupportAppcompatV7 = 'com.jakewharton.rxbinding:rxbinding-appcompat-v7:${rxBindingVersion}' rxBindingSupportDesign = 'com.jakewharton.rxbinding:rxbinding-design:${rxBindingVersion}' rxBindingSupportRecyclerView = 'com.jakewharton.rxbinding:rxbinding-recyclerview-v7:${rxBindingVersion}' rxBindingLeanbackV17 = 'com.jakewharton.rxbinding:rxbinding-leanback-v17:${rxBindingVersion}' rxLifecycle = 'com.trello:rxlifecycle:${rxLifecyleVersion}' rxLifecycleComponents = 'com.trello:rxlifecycle-components:${rxLifecyleVersion}' // retrofit retrofit = 'com.squareup.retrofit2:retrofit:${retrofitVersion}' retrofitConverterGson = 'com.squareup.retrofit2:converter-gson:${retrofitVersion}' retrofitAdapterRxJava = 'com.squareup.retrofit2:adapter-rxjava:2.0.1 sqlbrite = 'com.squareup.sqlbrite:sqlbrite:1.1.2' }'}