apply plugin: 'com.android.application' static def appName() { return "AndroidAppTemplate" } static def releaseTime() { return new Date().format("yyyyMMdd_HHmmss", TimeZone.getDefault()) } android { compileSdkVersion 29 buildToolsVersion "29.0.3" defaultConfig { applicationId "com.ttstd.template" minSdkVersion 26 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true ndk { //选择要添加的对应 cpu 类型的 .so 库。 abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', "x86" // 还可以添加 'x86', 'x86_64', 'mips', 'mips64' } javaCompileOptions { annotationProcessorOptions { includeCompileClasspath true } } 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 } dexOptions { jumboMode true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } viewBinding { enabled = true } dataBinding { enabled true } } //签名 signingConfigs { tuixin {// 签名文件 storeFile file("keystore/tuixin.jks") storePassword "123456" keyAlias "universal" keyPassword "123456" v2SigningEnabled false } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { buildConfigField "String", "platform", '"tuixin"' versionNameSuffix "-debug" debuggable true //Zipalign优化 zipAlignEnabled true minifyEnabled false signingConfig signingConfigs.tuixin applicationVariants.all { variant -> variant.outputs.each { output -> if (outputFile != null) { def fileName = "${appName()}-${variant.versionCode}-V${variant.versionName}-${releaseTime()}-${buildType.name}.apk" output.outputFileName = fileName } } } } release { buildConfigField "String", "platform", '"tuixin"' //Zipalign优化 zipAlignEnabled true //混淆 minifyEnabled false //前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //签名 signingConfig signingConfigs.tuixin // 将release版本的包名重命名,加上版本及日期 applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = "" if (outputFile != null) { def fileName = "${appName()}-${variant.versionCode}-V${variant.versionName}-${releaseTime()}-${buildType.name}.apk" output.outputFileName = new File(outputFile, fileName) } } } } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10' //BindView implementation 'com.jakewharton:butterknife:10.2.3' // If you are using Kotlin, replace annotationProcessor with kapt. // annotationProcessor rootProject.ext.dependencies["butterknife-compiler"] annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' //okhttp implementation 'com.squareup.okhttp3:okhttp:4.9.3' //log打印 implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0' //Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0' implementation 'com.squareup.retrofit2:converter-moshi:2.9.0' // gson converter implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // 标准转换器,去掉 Retrofit以Mutipart上传参数时,String参数会多一对双引号 implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' //RxJava implementation 'io.reactivex.rxjava3:rxjava:3.0.0' implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' //生命周期管理 implementation 'com.trello.rxlifecycle4:rxlifecycle:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-android:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.2' //rxbinding implementation 'com.jakewharton.rxbinding4:rxbinding:4.0.0' //Google implementation 'com.google.code.gson:gson:2.10.1' implementation 'com.google.zxing:core:3.5.0' implementation 'com.google.android.material:material:1.4.0' //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.13.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2' //磁盘缓存 implementation 'com.jakewharton:disklrucache:2.0.2' //Aria implementation 'com.arialyy.aria:core:3.8.15' annotationProcessor 'com.arialyy.aria:compiler:3.8.15' //MMKV implementation 'com.tencent:mmkv-static:1.2.14' //bugly implementation 'com.tencent.bugly:crashreport:4.1.9.2' implementation 'com.iqiyi.xcrash:xcrash-android-lib:3.0.0' //工具类 implementation 'com.blankj:utilcodex:1.31.0' //autosize会改变第三方view的大小 //https://github.com/JessYanCoding/AndroidAutoSize implementation 'com.github.JessYanCoding:AndroidAutoSize:1.2.1' implementation 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar' implementation 'com.github.chrisbanes:PhotoView:2.0.0' //沉浸状态栏 implementation 'com.gitee.zackratos:UltimateBarX:0.8.0' // //验证码输入 // implementation 'com.jacktuotuo.customview:verificationcodeview:1.0.5' // 权限请求框架:https://github.com/getActivity/XXPermissions implementation 'com.github.getActivity:XXPermissions:18.63' // 吐司框架:https://github.com/getActivity/Toaster implementation 'com.github.getActivity:Toaster:12.6' }