Files
Abbidot_Android/app/build.gradle
2025-10-20 15:41:39 +08:00

335 lines
14 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"
// versionName "2.0.20-Beta5"
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'
}