Files
peko-android/app/build.gradle

347 lines
12 KiB
Groovy
Raw Normal View History

2020-07-06 18:38:23 +08:00
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
2021-12-20 10:27:23 +08:00
apply plugin: 'com.tencent.vasdolly'
2023-11-23 17:08:19 +08:00
apply from: '../project.gradle'
2020-04-02 10:43:40 +08:00
2023-11-29 10:02:54 +08:00
apply plugin: "com.bytedance.android.aabResGuard"
2023-11-28 16:21:56 +08:00
apply plugin: "xml-class-guard"
2020-04-02 10:43:40 +08:00
android {
compileSdkVersion COMPILE_SDK_VERSION.toInteger()
2020-04-02 10:43:40 +08:00
defaultConfig {
2024-02-23 15:17:24 +08:00
applicationId isolationMode ? 'com.e.oos' : 'com.a.f'
minSdkVersion MIN_SDK_VERSION.toInteger()
targetSdkVersion TARGET_SDK_VERSION.toInteger()
2020-04-02 10:43:40 +08:00
versionCode Integer.valueOf(version_code)
versionName version_name
multiDexEnabled true
flavorDimensions 'default'
2023-11-23 17:08:19 +08:00
buildConfigField "boolean", "ISOLATION_MODE", "$isolationMode"
if (isolationMode) {
resValue "string", "app_name", "Hi-debug"
} else {
resValue "string", "app_name", "Hiyoo"
}
2020-04-02 10:43:40 +08:00
}
splits {
abi {
enable true
reset()
include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
universalApk true
}
}
2022-09-29 19:01:32 +08:00
bundle {
language {
enableSplit = false
}
density {
enableSplit = true
}
abi {
enableSplit = true
}
}
2020-05-12 16:01:27 +08:00
//在apk文件后边生成版本号信息
android.applicationVariants.configureEach { variant ->
variant.outputs.configureEach { output ->
def date = new Date().format("MMddHHmm", TimeZone.getTimeZone("GMT+08"))
def outputFile = output.outputFile
if (outputFile == null || !outputFile.name.endsWith('.apk')) {
return
}
def abi = output.getFilter(com.android.build.OutputFile.ABI)
if (abi == null) {
abi = "universal"
2020-05-12 16:01:27 +08:00
}
outputFileName = "hiyoo_${buildType.name}_v${defaultConfig.versionName}_${abi}_${date}.apk"
}
2020-05-12 16:01:27 +08:00
}
lint {
2020-04-02 10:43:40 +08:00
abortOnError false
disable 'MissingTranslation', 'ExtraTranslation', 'ContentDescription', 'SmallSp'
2020-04-02 10:43:40 +08:00
}
2020-04-02 10:43:40 +08:00
dataBinding {
enabled = true
}
2021-01-08 15:34:13 +08:00
viewBinding {
enabled = true
}
2023-11-23 17:08:19 +08:00
signingConfigs {
debug {
storeFile file('../app_debug.jks')
2024-02-23 15:17:24 +08:00
storePassword "debug2024"
2023-11-23 17:08:19 +08:00
keyAlias "debug"
2024-02-23 15:17:24 +08:00
keyPassword "debug2024"
2023-11-23 17:08:19 +08:00
v2SigningEnabled true
v1SigningEnabled true
}
release {
2024-02-23 15:17:24 +08:00
storeFile file('../app_release.jks')
storePassword "xxxx"
keyAlias "xxx"
keyPassword "xxxx"
2023-11-23 17:08:19 +08:00
v2SigningEnabled true
v1SigningEnabled true
}
}
2020-04-02 10:43:40 +08:00
sourceSets {
main {
java.srcDirs = [
'src/main/java',
'src/module_public_chat_hall/java',
'src/module_upgrade_app/java',
'src/module_mentoring_relationship/java',
'src/module_labour_union/java',
'src/module_room_chat/java',
'src/model_customer_server/java',
'src/module_music/java',
'src/module_mini_world/java',
'src/module_lottery_dialog/java',
'src/module_bank_card/java',
'src/module_super_admin/java',
'src/module_treasure_box/java',
'src/module_community/java',
2020-04-07 16:41:24 +08:00
'src/module_album/java',
2020-04-02 10:43:40 +08:00
]
res.srcDirs = [
'src/main/res',
'src/common/res',
'src/module_public_chat_hall/res',
'src/module_upgrade_app/res',
'src/module_mentoring_relationship/res',
'src/module_labour_union/res',
'src/module_room_chat/res',
'src/model_customer_server/res',
'src/module_music/res',
'src/module_mini_world/res',
'src/module_lottery_dialog/res',
'src/module_bank_card/res',
'src/module_super_admin/res',
'src/module_treasure_box/res',
'src/module_community/res',
2020-04-07 16:41:24 +08:00
'src/module_album/res',
2020-04-02 10:43:40 +08:00
]
2022-09-07 16:26:05 +08:00
jniLibs.srcDirs = ['libs', 'aliyun-libs']
2020-04-02 10:43:40 +08:00
}
}
buildTypes {
2024-02-23 15:17:24 +08:00
def server_url_debug = '"http://beta.api.xx.xx/"'
def server_url_release = '"https://api.xx.xx/"'
debug {
println("minifyEnabled = " + minify_enabled)
// ext.enableCrashlytics = false
// ext.alwaysUpdateBuildId = false // Firebase Crashlytics禁用更新构建ID
buildConfigField "String", "BASE_URL", server_url_debug
2020-04-02 10:43:40 +08:00
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
buildConfigField "String", "BASE_URL_STAGING", "BASE_URL"
buildConfigField "String", "BASE_URL_RELEASE", server_url_release
2023-10-18 17:40:25 +08:00
minifyEnabled minify_enabled.toBoolean() // 是否混淆
2023-10-19 14:46:11 +08:00
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
crunchPngs false // 停用 PNG 压缩
2023-11-23 17:08:19 +08:00
signingConfig isolationMode ? signingConfigs.debug : signingConfigs.release
gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("Test") || task.name.contains("Lint")) {
task.enabled = false // 跳过 Test 和 Lint 相关的 Task
}
}
}
2020-04-02 10:43:40 +08:00
}
release {
ext.enableCrashlytics = CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
ext.alwaysUpdateBuildId = CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
// firebaseCrashlytics {
// //Firebase Crashlytics控制上传混淆文件开关
// mappingFileUploadEnabled CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
// }
buildConfigField "String", "BASE_URL", server_url_release
2020-04-02 10:43:40 +08:00
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
2022-10-25 18:05:07 +08:00
buildConfigField "String", "BASE_URL_STAGING", "BASE_URL"
buildConfigField "String", "BASE_URL_RELEASE", "BASE_URL"
minifyEnabled true // 是否混淆
shrinkResources true // 开了混淆的时候才能开启 是否去除无效的资源文件
zipAlignEnabled true // 开了混淆的时候才能开启 是否进行压缩并重排列
crunchPngs true // 启用 PNG 压缩
2023-11-23 17:08:19 +08:00
signingConfig isolationMode ? signingConfigs.debug : signingConfigs.release
2020-05-12 17:58:42 +08:00
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2020-04-02 10:43:40 +08:00
}
}
compileOptions {
2023-01-31 17:01:56 +08:00
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
2020-04-02 10:43:40 +08:00
}
2021-06-03 18:36:12 +08:00
kotlinOptions {
2023-01-31 17:01:56 +08:00
jvmTarget = '11'
2021-06-03 18:36:12 +08:00
}
2021-12-20 10:27:23 +08:00
buildToolsVersion = '30.0.3'
2020-04-02 10:43:40 +08:00
}
2023-03-03 15:57:34 +08:00
def Lombok = "1.18.24"
2020-04-02 10:43:40 +08:00
dependencies {
2022-10-25 18:05:07 +08:00
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation fileTree(dir: 'aliyun-libs', include: ['*.jar', '*.aar'])
2023-10-13 19:37:38 +08:00
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
2021-01-05 11:51:57 +08:00
2020-07-24 14:05:51 +08:00
api 'androidx.multidex:multidex:2.0.1'
2020-04-02 10:43:40 +08:00
2022-09-14 16:22:48 +08:00
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1'
2020-04-02 10:43:40 +08:00
api "com.orhanobut:dialogplus:1.11@aar"
api "com.readystatesoftware.systembartint:systembartint:1.0.4"
api "com.rengwuxian.materialedittext:library:2.1.4"
api "com.github.flavienlaurent.datetimepicker:library:0.0.2"
api "com.darsh.multipleimageselect:multipleimageselect:1.0.4"
2020-04-24 15:14:59 +08:00
api "me.shaohui.advancedluban:library:1.3.5"
api "pl.droidsonroids.gif:android-gif-drawable:1.2.24"
2020-04-02 10:43:40 +08:00
api "com.makeramen:roundedimageview:2.3.0"
api "com.jzxiang.pickerview:TimePickerDialog:1.0.1"
api "com.github.zyyoona7:EasyPopup:1.0.2"
2021-10-15 15:22:13 +08:00
api "com.github.donkingliang:LabelsView:1.6.5"
2021-11-05 14:14:56 +08:00
api "com.github.yyued:SVGAPlayer-Android:2.6.1"
2020-04-02 10:43:40 +08:00
api "com.ms-square:expandableTextView:0.1.4"
2023-11-27 17:03:31 +08:00
annotationProcessor 'androidx.annotation:annotation:1.6.0'
2020-04-02 10:43:40 +08:00
2021-12-29 19:03:15 +08:00
implementation 'io.github.h07000223:flycoTabLayout:3.0.0'
2020-04-02 10:43:40 +08:00
api project(':core')
implementation 'com.github.qiujayen:sticky-layoutmanager:1.0.1'
implementation 'com.github.chenBingX:SuperTextView:v3.0.0'
//支付密码输入框
api 'com.jungly:gridPasswordView:0.3'
2021-11-12 17:11:32 +08:00
api 'com.google.android.flexbox:flexbox:3.0.0'
2020-04-02 10:43:40 +08:00
compileOnly "org.projectlombok:lombok:${Lombok}"
annotationProcessor "org.projectlombok:lombok:${Lombok}"
implementation 'nl.dionsegijn:konfetti:1.1.2'
//数字滚动效果
implementation 'com.github.YvesCheung:RollingText:1.2.3'
// 引入原有第三方裁图源码,方便修改
2023-11-23 20:52:35 +08:00
api project(':libs:lib_crop')
2020-04-02 10:43:40 +08:00
//rx权限请求框架
implementation('com.github.tbruyelle:rxpermissions:0.10.2') {
exclude group: 'io.reactivex.rxjava2'
}
//验证码控件 https://github.com/JingYeoh/VercodeEditText
implementation 'com.justkiddingbaby:vercodeedittext:1.1.0'
implementation 'it.sephiroth.android.library.imagezoom:library:1.0.4'
2020-04-10 16:48:04 +08:00
implementation 'com.github.fodroid:XRadioGroup:v1.5'
2022-04-18 11:18:20 +08:00
2023-12-13 14:46:46 +08:00
api 'com.tencent.vasdolly:helper:3.0.6'
2022-03-10 18:39:54 +08:00
implementation "io.github.tencent:vap:2.0.24"
implementation 'com.github.mmin18:realtimeblurview:1.2.1'
2022-09-26 15:42:45 +08:00
// implementation 'com.appsflyer:af-android-sdk:6.8.2'
2022-10-17 09:21:12 +08:00
implementation 'com.github.zhpanvip:BannerViewPager:3.5.6'
2022-11-02 10:14:18 +08:00
2022-11-04 17:19:55 +08:00
//fireBase
// implementation platform('com.google.firebase:firebase-bom:31.1.1')
// implementation 'com.google.firebase:firebase-crashlytics-ktx'
// implementation 'com.google.firebase:firebase-analytics-ktx'
2022-11-02 10:14:18 +08:00
2022-11-04 17:19:55 +08:00
//Adjust接入
// implementation 'com.adjust.sdk:adjust-android:4.33.0'
// implementation 'com.android.installreferrer:installreferrer:2.2'
2022-11-04 17:19:55 +08:00
// Add the following if you are using the Adjust SDK inside web views on your app
// implementation 'com.adjust.sdk:adjust-android-webbridge:4.33.0'
2022-11-04 17:19:55 +08:00
implementation 'com.github.yalantis:ucrop:2.2.7'
2023-01-15 22:52:22 +08:00
implementation 'com.github.lihangleo2:ShadowLayout:3.3.2'
2023-02-20 15:35:15 +08:00
//wheelView
implementation 'com.contrarywind:wheelview:4.1.0'
// implementation 'tech.sud.mgp:SudMGP-static:1.3.3.1158'
2023-11-22 21:35:05 +08:00
2023-11-23 17:08:19 +08:00
implementation project(':modules:module_base')
if (!isolationMode && file("../modules/module_google/build.gradle").exists()) {
2023-11-23 17:08:19 +08:00
implementation project(':modules:module_google')
}
2020-04-02 10:43:40 +08:00
}
2021-12-20 11:10:25 +08:00
channel {
2021-12-20 10:27:23 +08:00
//多渠道包的输出目录默认为new File(project.buildDir,"channel")
2021-12-20 11:10:25 +08:00
outputDir = new File(project.buildDir, "channelapk")
2021-12-20 10:27:23 +08:00
//多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}-${buildTime}
apkNameFormat = 'hiyoo-${buildType}-${flavorName}-v${versionName}-${buildTime}'
2021-12-20 10:27:23 +08:00
//快速模式生成渠道包时不进行校验速度可以提升10倍以上默认为false
fastMode = false
//buildTime的时间格式默认格式yyyyMMdd-HHmmss
buildTimeDateFormat = 'MMddHHmm'
//低内存模式仅针对V2签名默认为false只把签名块、中央目录和EOCD读取到内存不把最大头的内容块读取到内存在手机上合成APK时可以使用该模式
lowMemory = false
}
2023-11-28 16:21:56 +08:00
2023-11-29 10:02:54 +08:00
aabResGuard {
mappingFile = file("aab-res-guard-mapping.txt").toPath() // Mapping file used for incremental obfuscation
whiteList = [ // White list rules
"*.R.raw.*",
"*.R.drawable.icon"
]
obfuscatedBundleFileName = "duplicated-app.aab" // Obfuscated file name, must end with '.aab'
mergeDuplicatedRes = true // Whether to allow the merge of duplicate resources
enableFilterFiles = false // Whether to allow filter files
2023-11-29 10:02:54 +08:00
filterList = [ // file filter rules
// "*/arm64-v8a/*",
// "META-INF/*"
2023-11-29 10:02:54 +08:00
]
enableFilterStrings = false // switch of filter strings
unusedStringPath = file("unused.txt").toPath() // strings will be filtered in this file
languageWhiteList = ["en", "zh"] // keep en,en-xx,zh,zh-xx etc. remove others.
}
2023-11-28 16:21:56 +08:00
//以下均为非必须
xmlClassGuard {
2023-11-29 10:02:54 +08:00
findAabConstraintReferencedIds = true
2023-11-28 16:21:56 +08:00
//用于增量混淆的 mapping 文件
mappingFile = file("xml-class-mapping.txt")
//更改manifest文件的package属性即包名
2024-02-23 15:17:24 +08:00
packageChange = ["com.chwl.app": "com.xxx.ms"]
2023-11-28 16:21:56 +08:00
}