Files
Abbidot_Android/app/build.gradle

335 lines
14 KiB
Groovy
Raw Normal View History

2025-09-30 10:01:20 +08:00
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'kotlin-parcelize'
id 'dagger.hilt.android.plugin'
//极光推送start
// id 'com.google.gms.google-services'
// id 'com.huawei.agconnect'
//极光推送end
}
// Read values from gradle.properties or system environment variable(从gradle.properties里读取值)
def getStripeReleaseKey() {
return findProperty('STRIPE_RELEASE_KEY') ?: ""
}
def getKey(def key) {
return findProperty(key) ?: ""
}
android {
compileSdkVersion 35
// buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.abbidot.tracker"
minSdkVersion 23
targetSdkVersion 35
versionCode 2020
// versionName "2.0.20"
2025-10-15 09:39:31 +08:00
versionName "2.0.20-Beta4"
2025-09-30 10:01:20 +08:00
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
GOOGLE_MAP_KEY : getKey("GOOGLE_MAP_KEY"),
BAIDU_MAP_KEY : getKey("BAIDU_MAP_KEY"),
STRIPE_RELEASE_KEY : getStripeReleaseKey(),
STRIPE_TEST_KEY : getKey("STRIPE_TEST_KEY"),
BUGLY_KEY : getKey("BUGLY_KEY"),
MAPBOX_ACCESS_TOKEN: getKey("MAPBOX_ACCESS_TOKEN"),
HTTP_REQUEST_KEY : getKey("HTTP_REQUEST_KEY"),
JPUSH_PKGNAME : "${applicationId}",
JPUSH_APPKEY : "c968a96f76fc4f52e0f764ee", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
// MEIZU_APPKEY : "MZ-魅族的APPKEY",
// MEIZU_APPID : "MZ-魅族的APPID",
// XIAOMI_APPID : "MI-小米的APPID",
// XIAOMI_APPKEY : "MI-小米的APPKEY",
// OPPO_APPKEY : "OP-oppo的APPKEY",
// OPPO_APPID : "OP-oppo的APPID",
// OPPO_APPSECRET: "OP-oppo的APPSECRET",
// VIVO_APPKEY : "vivo的APPKEY",
// VIVO_APPID : "vivo的APPID"
]
}
// 读取local.properties文件
Properties properties = new Properties()
InputStream inputStream = project.rootProject.file('local.properties').newDataInputStream()
properties.load(inputStream)
// 读取签名文件
def keyKeyStoreFile = file(properties.getProperty('keyStoreFile'))
// 读取签名文件别名、密码等信息
def keyKeyStorePassword = properties.getProperty('keyStorePassword')
def keyKeyAlias = properties.getProperty('keyAlias')
def keyKeyAliasPassword = properties.getProperty('keyAliasPassword')
signingConfigs {
release {
storeFile keyKeyStoreFile
storePassword keyKeyStorePassword
keyAlias keyKeyAlias
keyPassword keyKeyAliasPassword
}
debug {
storeFile keyKeyStoreFile
storePassword keyKeyStorePassword
keyAlias keyKeyAlias
keyPassword keyKeyAliasPassword
}
}
buildTypes {
// release {
// minifyEnabled false
// proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
// }
debug {
// multiDexKeepProguard file('multidex-config.pro')
debuggable true
jniDebuggable true
// 移除无用的资源文件
shrinkResources false
// ZipAlign 优化
zipAlignEnabled false
// 设置混淆
minifyEnabled false
signingConfig signingConfigs.debug
}
release {
// multiDexKeepProguard file('multidex-config.pro')
debuggable false
jniDebuggable false
// 移除无用的资源文件
shrinkResources false
// ZipAlign 优化
zipAlignEnabled true
// 设置混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
applicationVariants.all { variant ->
// Apk 输出文件名配置
variant.outputs.all { output ->
outputFileName = 'Tracker_V' + variant.versionName + '_' + new Date().format('yyyyMMddhhmmss') + '_' + variant.buildType.name
// if (variant.buildType.name == buildTypes.release.getName()) {
// outputFileName += '_' + new Date().format('yyyyMMddhhmmss') + '_' + variant.buildType.name
// }
outputFileName += '.apk'
}
}
viewBinding {
enabled = true
}
lint {
abortOnError false
checkReleaseBuilds false
}
namespace 'com.abbidot.tracker'
buildFeatures {
viewBinding true
buildConfig = true
}
//减少apk包的体积
packagingOptions {
//压缩动态库(对应iniLibs的配置)
jniLibs {
useLegacyPackaging = true
}
//压缩dex(对应dex的配置)
dex {
useLegacyPackaging = true
}
}
}
dependencies {
// 基类库
implementation project(':baselibrary')
implementation project(':easyPhotos')
//蓝牙架包https://github.com/Jasonchenlijian/FastBle
// implementation 'com.github.Jasonchenlijian:FastBle:2.4.0'
implementation project(':FastBleLib')
//轻量级的Android端Socket框架https://github.com/jiusetian/EasySocket
implementation project(':easysocket')
// implementation 'androidx.legacy:legacy-support-v4:1.0.0'
// implementation 'androidx.appcompat:appcompat:1.7.0'
// implementation 'com.google.android.material:material:1.10.0'
// implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
// Android官方库
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.arch.core:core-common:2.2.0'
implementation 'androidx.arch.core:core-runtime:2.2.0'
implementation 'androidx.activity:activity-ktx:1.9.3'
implementation 'androidx.fragment:fragment-ktx:1.5.6'
implementation 'androidx.annotation:annotation:1.9.1'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7'
implementation 'androidx.room:room-runtime:2.5.2'
// implementation 'androidx.room:room-rxjava2:2.3.0'
implementation 'androidx.room:room-ktx:2.5.2'
kapt 'androidx.room:room-compiler:2.5.2'
//hilt依赖注入https://mvnrepository.com/artifact/com.google.dagger/hilt-android-gradle-plugin
implementation "com.google.dagger:hilt-android:2.57"
kapt "com.google.dagger:hilt-android-compiler:2.57"
//Android UI 开发效率的 UI 库https://github.com/Tencent/QMUI_Android
implementation 'com.qmuiteam:qmui:2.1.0'
implementation 'com.qmuiteam:arch:2.1.0'
kapt 'com.qmuiteam:arch-compiler:2.1.0'
// 协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2'
// 图片框架 https://github.com/coil-kt/coil/blob/main/README-zh.md
implementation "io.coil-kt:coil:1.4.0"
//选择添加
implementation "io.coil-kt:coil-gif:1.4.0"//支持GIF
//lottie动画https://github.com/airbnb/lottie-android
implementation 'com.airbnb.android:lottie:6.6.7'
//https://github.com/CymChad/BaseRecyclerViewAdapterHelper
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.11'
//升级recyclerview因BaseRecyclerViewAdapterHelper item点击事件是使用1.2.0
implementation 'androidx.recyclerview:recyclerview:1.3.1'
//谷歌地图
implementation 'com.google.android.gms:play-services-maps:19.2.0'
//地图操作工具类添加标记等https://github.com/googlemaps/android-maps-utils
// implementation 'com.google.maps.android:android-maps-utils:2.3.0'
// implementation 'com.google.maps.android:maps-utils-ktx:3.2.1'
//谷歌地图places
// implementation 'com.google.android.libraries.places:places:2.5.0'
//连接谷歌服务定位,登录谷歌
// implementation 'com.google.android.gms:play-services-auth:19.2.0'
//定位
implementation 'com.google.android.gms:play-services-location:21.3.0'
//动画https://github.com/daimajia/AndroidViewAnimations
implementation 'com.daimajia.androidanimations:library:2.4@aar'
//mapbox地图https://github.com/mapbox/mapbox-maps-android
// implementation 'com.mapbox.maps:android:10.2.0'
//https://github.com/mapbox/mapbox-search-android
//用mapbox搜索SDK,地理编码 有搜索ui组件已包括mapbox-search-android架包
implementation "com.mapbox.search:mapbox-search-android-ui:2.5.1"
// mapbox搜索SDK,地理编码 没有搜索ui组件
// implementation "com.mapbox.search:mapbox-search-android:1.0.0-beta.25"
//用于计算距离https://docs.mapbox.com/android/java/guides/turf/#available-methods
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:6.15.0'
//用于计算路线规划信息https://docs.mapbox.com/android/java/examples/dashed-directions-line/
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-services:6.3.0'
// 权限请求框架https://github.com/getActivity/XXPermissions
implementation 'com.github.getActivity:XXPermissions:25.2'
// 吐司框架https://github.com/getActivity/ToastUtils
implementation 'com.github.getActivity:Toaster:13.2'
// 日志调试框架https://github.com/getActivity/Logcat ,在debug模式下集成
debugImplementation 'com.github.getActivity:Logcat:12.3'
// PictureSelector图片选择器,需要compileSdkVersion=31 https://github.com/LuckSiege/PictureSelector
// implementation 'io.github.lucksiege:pictureselector:v3.0.3'
//拍照相册选择器、相册编辑添加水印 https://github.com/HuanTanSheng/EasyPhotos(没有适配Android13 相册)
// implementation 'com.github.HuanTanSheng:EasyPhotos:3.1.5'
//压缩图片 https://github.com/zetbaitsu/Compressor
implementation 'id.zelory:compressor:3.0.1'
//图片裁剪功能https://github.com/CanHub/Android-Image-Cropper
implementation 'com.vanniktech:android-image-cropper:4.6.0'
//******************************************极光推送start*****************************************************
// https://docs.jiguang.cn/jpush/client/Android/android_guide
// implementation 'cn.jiguang.sdk:jcore:3.1.2' // 此处以JCore 2.7.2 版本为例。
// implementation 'cn.jiguang.sdk:jpush:4.6.0' // 此处以JPush 4.0.0 版本为例
implementation 'cn.jiguang.sdk:jcore-google:5.1.0' // 此处以JCore 2.7.2 版本为例。
implementation 'cn.jiguang.sdk:jpush-google:5.8.0' // 此处以JPush 4.0.0 版本为例
// 接入华为厂商
// implementation 'com.huawei.hms:push:6.1.0.300'
// implementation 'cn.jiguang.sdk.plugin:huawei:4.0.0'// 极光厂商插件版本与接入 JPush 版本保持一致,下同
// 接入 FCM 厂商
// implementation 'com.google.firebase:firebase-messaging:23.0.0'
// implementation 'cn.jiguang.sdk.plugin:fcm:4.6.6'
// 接入魅族厂商
// implementation 'cn.jiguang.sdk.plugin:meizu:4.6.0'
// 接入 VIVO 厂商
// implementation 'cn.jiguang.sdk.plugin:vivo:4.6.0'
// 接入 OPPO 厂商
// implementation 'cn.jiguang.sdk.plugin:oppo:4.6.0'
// 接入小米厂商
// implementation 'cn.jiguang.sdk.plugin:xiaomi:4.6.0'
//******************************************极光推送end*******************************************************
//其中指代最新Bugly SDK版本号也可以指定明确的版本号例如4.0.0
implementation 'com.tencent.bugly:crashreport:4.1.9.3'
//其中latest.release指代最新Bugly NDK版本号也可以指定明确的版本号例如3.9.2
// implementation 'com.tencent.bugly:nativecrashreport:3.9.2'
//braintree 信用卡支付https://github.com/braintree/braintree_android
implementation 'com.braintreepayments.api:card:4.31.0'
//braintree PayPal支付https://developer.paypal.com/braintree/docs/guides/client-sdk/migration/android/v4
implementation 'com.braintreepayments.api:paypal:4.31.0'
//Stripe 支付https://github.com/stripe/stripe-android
implementation 'com.stripe:stripe-android:20.27.0'
//百度地图基础定位组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.6.5.1'
//地图组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.5.2'
//检索组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.5.2'
//工具组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Util:7.5.2'
//微信登录、支付
implementation 'com.tencent.mm.opensdk:wechat-sdk-android:+'
//支付宝支付
implementation 'com.alipay.sdk:alipaysdk-android:+@aar'
//dfu升级https://github.com/NordicSemiconductor/Android-DFU-Library
implementation 'no.nordicsemi.android:dfu:2.9.0'
//适配Android 12以下SplashScreen启动动画闪屏图片
implementation 'androidx.core:core-splashscreen:1.0.1'
//优雅、万能自定义日历https://github.com/huanghaibin-dev/CalendarView
// implementation 'com.haibin:calendarview:3.7.1'
//https://github.com/angcyo/CalendarView
implementation 'com.github.angcyo:CalendarView:3.7.1.43'
//Google出品的流式布局 flexbox-layout 支持RecyclerView https://gitcode.com/google/flexbox-layout?utm_source=csdn_github_accelerator
implementation 'com.google.android.flexbox:flexbox:3.0.0'
//facebook分享sdk
// implementation 'com.facebook.android:facebook-android-sdk:latest.release'
}