文章目录

  • 前言
  • 基础配置.gradle
  • project#.gradle
  • module#.gradle


前言

切换各种项目时,老是配置一些东西,写在这里,以后不怕找不到了。


基础配置.gradle

configs.gradle

/* 主要会使用 kotlin androidx 相关库 *//* -------------------------------- 构建设置 -------------------------------------- */def buildVersions = [:] //mapext.buildVersions = buildVersions //使用 ext 扩展属性buildVersions.compileSdkVersion = 29buildVersions.minSdkVersion = 18buildVersions.targetSdkVersion = 29buildVersions.versionCode = 1buildVersions.versionName = "1.0"/* -------------------------------- 版本号 -------------------------------------- */ext.versions = [:]//test settingversions.junit = '4.12'versions.testRunner = '1.2.0'versions.espresso = '3.2.0'//安卓兼容包,未来是 androidxversions.supportAppcompat = '28.0.0'//官方约束布局.  url: https://dl.google.com/dl/android/maven2/index.html//versions.constraintLayout = '1.1.4'versions.constraintLayout = '2.0.0-beta2'versions.recyclerviewX = '1.0.0'//官方多 dex 分包. doc: https://developer.android.com/studio/build/multidexversions.multidex = '1.0.3'//官方架构组件扩展兼容包versions.archExtensions = '1.1.1'versions.archNavi = '1.0.0-rc02'//Android KTX 是一组 Kotlin 扩展程序,属于 Android Jetpack 系列. url: https://developer.android.google.cn/kotlin/ktx?hl=zh_cnversions.ktx = '1.0.2'versions.androidxCompat = "1.0.2"//阿里界面路由. url: https://github.com/alibaba/ARouter//与 kotlin 的兼容性,还是有问题versions.arouter = '1.5.0'versions.arouterApt = '1.2.2'//工具类集. url: https://github.com/Blankj/AndroidUtilCodeversions.utilcode = '1.23.6'//网络. url: https://github.com/square/okhttpversions.okhttp = '3.14.1'versions.okio = '1.17.4'//封装网络请求与响应。可结合 okhttp、gson、rxjava. url: https://github.com/square/retrofitversions.retrofit = '2.6.0'//动态切换 retrofit 中的 baseUrl。 url: https://github.com/JessYanCoding/RetrofitUrlManagerversions.retrofitUrlManage = '1.4.0'//google json 库. url: https://github.com/google/gsonversions.gson = '2.8.5'//快速解析和生成json数据. url: https://github.com/alibaba/fastjsonversions.fastjson = '1.1.71.android'//RecyclerView.Adapter 实用封装. url: https://github.com/CymChad/BaseRecyclerViewAdapterHelperversions.brvah = '2.9.46'//Android智能下拉刷新框架. url: https://github.com/scwang90/SmartRefreshLayoutversions.smartRefreshLayout = '1.1.0-alpha-24'//安卓 fragment 封装. url: https://github.com/YoKeyword/Fragmentationversions.fragmentation = '1.3.6'versions.fragmentationx = '1.0.1'//流式事件. url: https://github.com/ReactiveX/RxJavaversions.rxjava = '2.2.9'//安卓版. 使用时,最好也要依赖 rxjava. url: https://github.com/ReactiveX/RxAndroidversions.rxandroid = '2.1.1'//url: https://github.com/ReactiveX/RxKotlinversions.rxkotlin = '2.3.0'//依赖 rxjava 的动态权限申请. url: https://github.com/tbruyelle/RxPermissions//可以结合 JakeWharton/RxBindingversions.rxpermissions = '0.10.2'// 对 view 添加 rxjava 式的 响应事件. url: https://github.com/JakeWharton/RxBindingversions.rxbinding = '3.0.0-alpha2'//rxlifecycle AndroidX.versions.rxlifecycle = '3.0.0'//防止 rxjajva 订阅,造成的内存泄露. url: https://github.com/trello/RxLifecycle//versions.rxlifecycle = '2.2.2'//权限处理 url: https://github.com/yanzhenjie/AndPermission// url: https://github.com/permissions-dispatcherversions.andPermission= '2.0.1'//权限处理 url: https://github.com/permissions-dispatcher/PermissionsDispatcherversions.permissionsDispatcher= '3.3.1'//依赖注入. url: https://github.com/google/daggerversions.dagger = '2.23.1'//编译时生成 .java 源文件. url: https://github.com/square/javapoetversions.javapoet = '1.11.1'//google auto-projects (AutoFactory AutoService AutoValue Common )  url: https://github.com/google/auto///一个 对 jsr-330(依赖注入标准)兼容的 源代码生成工厂。 url: https://github.com/google/auto/tree/master/factoryversions.autoFactory = '1.0-beta6'//使用java.util.ServiceLoader-style service providers,编译后生成 java 注解处理器源数据的配置//      url: https://github.com/google/auto/tree/master/serviceversions.autoService = '1.0-rc5'// 生成属性值不可变的 java 类.// url: https://github.com/google/auto/tree/master/value  https://github.com/google/auto/blob/master/value/userguide/index.mdversions.autoValue = '1.6.5'// Auto 项目的 对帮助简化使用 注解处理环境 的 一个通用的工具(类的)集合。 url: https://github.com/google/auto/tree/master/commonversions.autoCommon = '0.10'//A circular ImageView for Android. url: https://github.com/hdodenhof/CircleImageViewversions.hdoCircleImageview = '3.0.0'//java aop(Aspect Oriented Programming). url: https://github.com/eclipse/org.aspectj//guide url: https://www.eclipse.org/aspectj/doc/released/progguide/index.htmlversions.aspectj = '1.9.3.RC1'//一个基于AspectJ并在此基础上扩展出来可应用于Android开发平台的AOP框架,可作用于java源码,class文件及jar包,同时支持kotlin的应用。// url: https://github.com/HujiangTechnology/gradle_plugin_android_aspectjxversions.AspectJX = '2.0.4'//绑定 android 资源与事件. url: https://github.com/JakeWharton/butterknifeversions.butterknife = '10.1.0'//跨组件、线程通信. url: https://github.com/greenrobot/EventBusversions.eventbus = '3.1.1'//内存泄露检测. url: https://github.com/square/leakcanaryversions.leakcanary = '2.0-alpha-1'//时间、省市区联动等的选择器. url: https://github.com/Bigkoo/Android-PickerViewversions.androidPickerView = '4.1.8'//androidPickerView作者的 基础滚动选择器versions.apvWheelView= '4.0.9'//滚轮选择器(可以设置 adapter,绑定布局文件). url: https://github.com/venshine/WheelViewversions.venshineWheelView = '1.3.3'//other 滚动选择器. url: https://github.com/wangjiegulu/WheelView//一个聚集于平滑显示的对于安卓图片的加载和缓存库. url: https://github.com/bumptech/glideversions.glide = '4.9.0'//图片加载和缓存库. url: https://github.com/square/picassoversions.picasso = '2.5.2'//图片选择. url: https://github.com/jeasonlzy/ImagePickerversions.imagepicker = '1.0.6'//图片选择. url: https://github.com/zhihu/Matisse//注意调用 ImageEngine,由于新版的 Glide api变化,所以 GlideEngine 需要单独自定义versions.matisse = '0.5.2-beta4'//能打印出调用时所在线程与方法的日志库. url:https://github.com/orhanobut/loggerversions.orhLogger = '2.2.0'//二维码扫描与生成(集成了 zxing 和 zbar). url: https://github.com/bingoogolapple/BGAQRCode-Android//   如果需要自实现,那就依赖 zxing 和 zbar. url: https://github.com/zxing/zxing//   zbar 需要自行下载并编译versions.bgaqrcode = '1.3.6'//可滚动的 tab layout. url: https://github.com/H07000223/FlycoTabLayoutversions.flycoTabLayout = '2.1.2@aar'//标签(自动换行)列表, 单选多选必选. url: https://github.com/donkingliang/LabelsViewversions.labelsView = '1.5.0'//手动签名. https://github.com/gcacace/android-signaturepadversions.signaturePad = '1.2.1'//材料设计. url: https://github.com/navasmdc/MaterialDesignLibraryversions.materialDesign = '1.5@aar'//轮播图. url: https://github.com/youth5201314/bannerversions.youthBanner = '1.4.10'//轮播图. url: https://github.com/saiwu-bigkoo/Android-ConvenientBanner     少用这个,问题有点多versions.convenientBanner = '2.1.4'//今日头条适配方案. url: https://github.com/JessYanCoding/AndroidAutoSize//多fragment时,遇到了适配出错的问题;暂不使用versions.androidAutoSize = '1.1.2'//圆角imageView. url: https://github.com/vinc3m1/RoundedImageView//不支持glide加载gif图片. 作者推荐 glide-transformationsversions.roundedImageView = '2.3.0'//glide变换. url: https://github.com/wasabeef/glide-transformationsversions.glidTransformations = '4.0.1'//类似ios的GPUImage,配合GLSurfaceView使用. url: https://github.com/cats-oss/android-gpuimageversions.gpuImage = "2.0.3"//缩放,平移,旋转和动画支持,加载大图等.  由于继承的是view,不能用其它加载库来加载网络图片.//它需要本地有图片文件. 缩放等动画主要也是作用在图的内容上的,对view没有影响.//url: https://github.com/davemorrissey/subsampling-scale-image-viewversions.scaleImageView = '3.10.0'//流式布局. url: https://github.com/hongyangAndroid/FlowLayoutversions.flowLayout = '1.1.2'//android 4.4以上沉浸式状态栏和沉浸式导航栏管理. url: https://github.com/gyf-dev/ImmersionBarversions.immersionbar = '3.0.0-beta05'//腾讯插件化框架. url: https://github.com/Tencent/Shadow//需要下载工程,自行研究下versions.shadow = ''//支持h5标准的 html 文件解析. url: https://github.com/jhy/jsoupversions.jsoup = '1.12.1'//阿里对flutter的再封装项目. url: https://github.com/alibaba/flutter-go//有自己的规范,需要单独学习/* -------------------------------- 类库引用: "group:name:version" -------------------------------------- */ext.refs = [:]refs.junit = "junit:junit:$versions.junit"refs.testRunner = "androidx.test:runner:$versions.testRunner"refs.espresso = "androidx.test.espresso:espresso-core:$versions.espresso"refs.supportAppcompat = "com.android.support:appcompat-v7:$versions.supportAppcompat"refs.design = "com.android.support:design:$versions.supportAppcompat"refs.recyclerview = "com.android.support:recyclerview-v7:$versions.supportAppcompat"refs.recyclerviewX = "androidx.recyclerview:recyclerview:$versions.recyclerviewX"refs.cardview = "com.android.support:cardview-v7:$versions.supportAppcompat"refs.constraintLayout = "com.android.support.constraint:constraint-layout:$versions.constraintLayout"refs.multidex = "com.android.support:multidex:$versions.multidex"refs.archExtensions = "android.arch.lifecycle:extensions:$versions.archExtensions"refs.archNaviFragment = "android.arch.navigation:navigation-fragment:$versions.archNavi"refs.archNaviUI = "android.arch.navigation:navigation-ui:$versions.archNavi"refs.ktx = "androidx.core:core-ktx:$versions.ktx"refs.androidxCompat = "androidx.appcompat:appcompat:$versions.androidxCompat"refs.arouter = "com.alibaba:arouter-api:$versions.arouter"refs.arouterApt = "com.alibaba:arouter-compiler:$versions.arouterApt"refs.utilcode = "com.blankj:utilcode:$versions.utilcode"refs.retrofit = "com.squareup.retrofit2:retrofit:$versions.retrofit"refs.retrofitConverterScalars = "com.squareup.retrofit2:converter-scalars:$versions.retrofit"refs.retrofitConverterGson = "com.squareup.retrofit2:converter-gson:$versions.retrofit"refs.retrofitAdapterRxjava = "com.squareup.retrofit2:adapter-rxjava2:$versions.retrofit"refs.retrofitUrlManage = "me.jessyan:retrofit-url-manager:$versions.retrofitUrlManage"refs.gson = "com.google.code.gson:gson:$versions.gson"refs.fastjson="com.alibaba:fastjson:$versions.fastjson"refs.okhttp = "com.squareup.okhttp3:okhttp:$versions.okhttp"refs.okhttpLogInterceptor = "com.squareup.okhttp3:logging-interceptor:$versions.okhttp"refs.okio = "com.squareup.okio:okio:$versions.okio"refs.brvah = "com.github.CymChad:BaseRecyclerViewAdapterHelper:$versions.brvah"refs.smartRefreshLayout="com.scwang.smartrefresh:SmartRefreshLayout:$versions.smartRefreshLayout"refs.smartRefreshLayoutHeader="com.scwang.smartrefresh:SmartRefreshHeader:$versions.smartRefreshLayout"refs.fragmentation = "me.yokeyword:fragmentation:$versions.fragmentation"refs.fragmentationSwipeback = "me.yokeyword:fragmentation-swipeback:$versions.fragmentation"refs.fragmentationx = "me.yokeyword:fragmentationx:$versions.fragmentationx"refs.fragmentationxSwipeback = "me.yokeyword:fragmentationx-swipeback:$versions.fragmentationx"refs.rxjava = "io.reactivex.rxjava2:rxjava:$versions.rxjava"refs.rxandroid = "io.reactivex.rxjava2:rxandroid:$versions.rxandroid"refs.rxkotlin = "io.reactivex.rxjava2:rxkotlin:$versions.rxkotlin"refs.rxpermissions = "com.github.tbruyelle:rxpermissions:$versions.rxpermissions"//refs.rxbinding = "com.jakewharton.rxbinding2:rxbinding:$versions.rxbinding"refs.rxbinding = "com.jakewharton.rxbinding3:rxbinding:$versions.rxbinding"refs.rxlifecycle="com.trello.rxlifecycle3:rxlifecycle:$versions.rxlifecycle"// If you want to bind to Android-specific lifecyclesrefs.rxlifecycleAndroid="com.trello.rxlifecycle3:rxlifecycle-android:$versions.rxlifecycle"//If you want pre-written Activities and Fragments you can subclass as providersrefs.rxlifecycleComponents="com.trello.rxlifecycle3:rxlifecycle-components:$versions.rxlifecycle"refs.rxlifecycleKotlin="com.trello.rxlifecycle3:rxlifecycle-kotlin:$versions.rxlifecycle"refs.andPermission = "com.yanzhenjie.permission:support:$versions.andPermission"refs.permissionsDispatcher = "org.permissionsdispatcher:permissionsdispatcher.permissionsDispatcher"refs.permissionsDispatcherCompiler = "org.permissionsdispatcher:permissionsdispatcher-processor.permissionsDispatcher"refs.dagger="com.google.dagger:dagger:$versions.dagger"refs.daggerCompiler="com.google.dagger:dagger-compiler:$versions.dagger"refs.javapoet = "com.squareup:javapoet:$versions.javapoet"refs.autoService = "com.google.auto.service:auto-service:$versions.autoService"refs.autoFactory = "com.google.auto.factory:auto-factory:$versions.autoFactory"refs.autoValue = "com.google.auto.value:auto-value-annotations:$versions.autoValue"refs.autoValueCompiler = "com.google.auto.value:auto-value:$versions.autoValue"refs.autoCommon = "com.google.auto:auto-common:$versions.autoCommon"refs.hdoCircleImageview="de.hdodenhof:circleimageview:$versions.hdoCircleImageview"refs.aspectjRt="org.aspectj:aspectjrt:$versions.aspectj"refs.aspectjTools="org.aspectj:aspectjtools:$versions.aspectj"refs.aspectjWeaver="org.aspectj:aspectjweaver:$versions.aspectj"refs.butterknife="com.jakewharton:butterknife:$versions.butterknife"refs.butterknifeCompiler="com.jakewharton:butterknife-compiler:$versions.butterknife"refs.eventbus="org.greenrobot:eventbus:$versions.eventbus"refs.leakcanary="com.squareup.leakcanary:leakcanary-android:$versions.leakcanary"refs.androidPickerView="com.contrarywind:Android-PickerView:$versions.androidPickerView"refs.apvWheelView="com.contrarywind:wheelview:$versions.apvWheelView"refs.venshineWheelView="com.wx.wheelview:wheelview:$versions.venshineWheelView"refs.glide="com.github.bumptech.glide:glide:$versions.glide"refs.glideCompiler="com.github.bumptech.glide:compiler:$versions.glide"refs.glideOkhttp="com.github.bumptech.glide:okhttp3-integration:$versions.glide"refs.picasso="com.squareup.picasso:picasso:$versions.picasso"refs.imagepicker="com.cysion:ImagePicker:$versions.imagepicker"refs.orhLogger = "com.orhanobut:logger:$versions.orhLogger"refs.bgaqrcodeZxing = "cn.bingoogolapple:bga-qrcode-zxing:$versions.bgaqrcode"refs.bgaqrcodeZbar= "cn.bingoogolapple:bga-qrcode-zbar:$versions.bgaqrcode"refs.flycoTabLayout= "com.flyco.tablayout:FlycoTabLayout_Lib:$versions.flycoTabLayout"refs.labelsView= "com.github.donkingliang:LabelsView:$versions.labelsView"refs.signaturePad= "com.github.gcacace:signature-pad:$versions.signaturePad"refs.materialDesign= "com.github.navasmdc:MaterialDesign:$versions.materialDesign"refs.youthBanner= "com.youth.banner:banner:$versions.youthBanner"refs.convenientBanner= "com.bigkoo:ConvenientBanner:$versions.convenientBanner"refs.matisse= "com.zhihu.android:matisse:$versions.matisse"refs.androidAutoSize = "me.jessyan:autosize:$versions.androidAutoSize"refs.roundedImageView = "com.makeramen:roundedimageview:$versions.roundedImageView"refs.glidTransformations = "jp.wasabeef:glide-transformations:$versions.glidTransformations"refs.gpuImage = "jp.co.cyberagent.android:gpuimage:$versions.gpuImage"refs.scaleImageView = "com.davemorrissey.labs:subsampling-scale-image-view:$versions.scaleImageView"refs.flowLayout = "com.hyman:flowlayout-lib:$versions.flowLayout"refs.immersionbar = "com.gyf.immersionbar:immersionbar:$versions.immersionbar"refs.immersionbarComponents = "com.gyf.immersionbar:immersionbar-components:$versions.immersionbar"refs.jsoup= "org.jsoup:jsoup:$versions.jsoup"//refs.=":$versions."/* ---------------------------------------------------------------------- */

project#.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {    apply from: "configs.gradle"    ext {        var = '1.8'    }    ext.kotlin_version = '1.3.31'    repositories {//        jcenter()        google()        maven { url 'https://maven.aliyun.com/repository/public' }    }    dependencies {        classpath 'com.android.tools.build:gradle:3.4.1'        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"//        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'    }}allprojects {    repositories {//        jcenter()        google()        maven { url 'https://maven.aliyun.com/repository/public' }        maven { url 'https://jitpack.io' }        flatDir {            dirs 'libs'        }    }    ext {    }}task clean(type: Delete) {    delete rootProject.buildDir}

module#.gradle

主要依赖方式的配置:implementation、 api(向后公开,常在 library-module 中使用) 、compileOnly(仅编译) annotationProcessor(注解处理器)。

依赖方式配置,可以结合 test、androidTest 、product-flavor、buildType 来确定的该依赖的作用范围
如,有两个 flavor: dev, stable,两个 buildType: debug, release :
testDevDebugCompile devDebugImplementation testDevReleaseAnnotationProcessor androidTestStableAnnotationProcessor devDebugImplementation

依赖 eg.

dependencies {implementation fileTree(include: ['*.jar'], dir: 'libs')implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"testImplementation refs.junitandroidTestImplementation refs.espressoapi refs.supportAppcompatapi refs.designimplementation refs.fastjsonannotationProcessor refs.daggerCompilerapi (refs.butterknife) {     exclude group: 'com.android.support', module: 'support-annotations'     exclude group: 'com.android.support', module: 'support-compat' }annotationProcessor refs.butterknifeCompiler... }//动态重置 依赖方式配置中,符合条件的依赖 的版本configurations.all {    resolutionStrategy.eachDependency { DependencyResolveDetails details ->        def requested = details.requested        if (requested.group == 'com.android.support') {            if (!requested.name.startsWith("multidex") && !requested.name.startsWith("constraint")) {                details.useVersion '28.0.0'            }        }    }}

更多相关文章

  1. Android操作系统默认图片
  2. Android——intent分享图片到微信好友、朋友圈、QQ
  3. android拖动图片移动效果
  4. Android拷贝图片到指定文件路径
  5. android 关于图片的放大,缩小,旋转功能的实现(附源码)
  6. Android Location 和 Sensor的使用,图片旋转角度
  7. Android 图片拖动和缩放
  8. android 背景圆角以及图片圆角处理

随机推荐

  1. Android之——常见Bug及其解决方案
  2. Android 编译环境快速安装(基于ubuntu 12
  3. android通过servlet服务器保存文件到手机
  4. Afaria 做Android设备lock时候发给GCM的
  5. JavaGG android实现uc 和墨迹天气那样的
  6. Android: not single entry point
  7. android的AndroidManifest.xml文件介绍
  8. Android 代码获取手机ip地址(个人笔记)
  9. Android 开发中,pullToRefreshListView
  10. Android(安卓)Material Design-Maintaini