build.gradle 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. plugins {
  2. alias(libs.plugins.android.application)
  3. alias(libs.plugins.kotlin.android)
  4. alias(libs.plugins.kotlin.compose)
  5. }
  6. android {
  7. namespace 'com.narutohuo.xindazhou'
  8. compileSdk {
  9. version = release(36)
  10. }
  11. defaultConfig {
  12. applicationId "com.narutohuo.xindazhou"
  13. minSdk 26
  14. targetSdk 36
  15. versionCode 1
  16. versionName "1.0"
  17. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  18. // 注意:所有配置都在各自的模块的 strings.xml 中管理
  19. // app 模块:只管理 app 模块自己的配置
  20. // capability-push 模块:极光推送和厂商通道配置都在 capability-push/src/main/res/values/strings.xml
  21. // capability-share 模块:分享配置在 capability-share/src/main/res/values/strings.xml
  22. // 所有配置都在各自模块的 AndroidManifest.xml 中使用 @string/ 引用,完全不需要 manifestPlaceholders
  23. }
  24. buildTypes {
  25. release {
  26. minifyEnabled false
  27. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  28. }
  29. }
  30. compileOptions {
  31. sourceCompatibility JavaVersion.VERSION_17
  32. targetCompatibility JavaVersion.VERSION_17
  33. }
  34. kotlinOptions {
  35. jvmTarget = '17'
  36. }
  37. buildFeatures {
  38. compose true
  39. viewBinding true
  40. buildConfig true // 启用 BuildConfig 生成
  41. }
  42. }
  43. dependencies {
  44. // 基础模块
  45. implementation project(':base-core')
  46. implementation project(':base-common')
  47. // ============================================================================
  48. // ⚠️⚠️⚠️ 严禁直接依赖能力层里面的具体库 ⚠️⚠️⚠️
  49. // ============================================================================
  50. //
  51. // ❌ 禁止在 app 模块中直接依赖能力层使用的第三方 SDK,例如:
  52. // ❌ implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.24' // 微信 SDK
  53. // ❌ implementation 'cn.jiguang.sdk:jpush:5.9.0' // 极光推送 SDK
  54. // ❌ implementation 'com.umeng.umsdk:share-core:7.3.2' // 友盟分享 SDK
  55. // ❌ implementation files('libs/xxx.jar') // 能力层的 JAR/AAR 文件
  56. //
  57. // ✅ 正确做法:只依赖能力模块本身,能力模块会通过 api 传递必要的依赖
  58. // ✅ implementation project(':capability-share') // 只依赖模块
  59. // ✅ implementation project(':capability-push') // 只依赖模块
  60. //
  61. // 📋 原因:
  62. // 1. 每个能力模块管理自己的依赖,app 模块只负责组装
  63. // 2. 能力模块通过 api 传递必要的依赖,app 模块会自动获得
  64. // 3. 直接依赖会导致版本冲突、重复依赖等问题
  65. // 4. 违反模块化原则,增加维护成本
  66. //
  67. // ============================================================================
  68. // SDK模块(能力层)- 只依赖模块本身,不要依赖模块内部的库!
  69. implementation project(':capability-ble')
  70. implementation project(':capability-socketio')
  71. implementation project(':capability-push')
  72. implementation project(':capability-qrcode')
  73. implementation project(':capability-share')
  74. implementation project(':capability-nfc')
  75. // 业务模块代码已迁移到 app 模块内,不再需要独立的 module-* 依赖
  76. // AndroidX Core
  77. implementation libs.androidx.core.ktx
  78. implementation 'androidx.appcompat:appcompat:1.6.1'
  79. implementation 'com.google.android.material:material:1.11.0'
  80. implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
  81. implementation 'androidx.cardview:cardview:1.0.0'
  82. // ViewModel & LiveData & StateFlow
  83. implementation libs.androidx.lifecycle.runtime.ktx
  84. implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'
  85. implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'
  86. // Kotlin Coroutines
  87. implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3'
  88. implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3'
  89. // Navigation
  90. implementation 'androidx.navigation:navigation-fragment-ktx:2.7.6'
  91. implementation 'androidx.navigation:navigation-ui-ktx:2.7.6'
  92. // Timber (日志库,用于Hyperion)
  93. implementation 'com.jakewharton.timber:timber:5.0.1'
  94. // Retrofit & OkHttp
  95. implementation 'com.squareup.retrofit2:retrofit:2.9.0'
  96. implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
  97. implementation 'com.squareup.okhttp3:okhttp:4.12.0'
  98. implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
  99. // Glide
  100. implementation 'com.github.bumptech.glide:glide:4.16.0'
  101. // Room
  102. implementation 'androidx.room:room-runtime:2.6.1'
  103. implementation 'androidx.room:room-ktx:2.6.1'
  104. annotationProcessor 'androidx.room:room-compiler:2.6.1'
  105. // Compose
  106. implementation libs.androidx.activity.compose
  107. implementation platform(libs.androidx.compose.bom)
  108. implementation libs.androidx.compose.ui
  109. implementation libs.androidx.compose.ui.graphics
  110. implementation libs.androidx.compose.ui.tooling.preview
  111. implementation libs.androidx.compose.material3
  112. // 调试工具(只在Debug版本使用)
  113. debugImplementation 'com.willowtreeapps.hyperion:hyperion-core:0.9.34'
  114. debugImplementation 'com.willowtreeapps.hyperion:hyperion-attr:0.9.34'
  115. debugImplementation 'com.willowtreeapps.hyperion:hyperion-measurement:0.9.34'
  116. debugImplementation 'com.willowtreeapps.hyperion:hyperion-disk:0.9.34'
  117. debugImplementation 'com.willowtreeapps.hyperion:hyperion-recorder:0.9.34'
  118. debugImplementation 'com.willowtreeapps.hyperion:hyperion-phoenix:0.9.34'
  119. debugImplementation 'com.willowtreeapps.hyperion:hyperion-crash:0.9.34'
  120. debugImplementation 'com.willowtreeapps.hyperion:hyperion-shared-preferences:0.9.34'
  121. debugImplementation 'com.willowtreeapps.hyperion:hyperion-geiger-counter:0.9.34'
  122. debugImplementation 'com.willowtreeapps.hyperion:hyperion-timber:0.9.34' // 日志查看
  123. // Chuck - 网络请求调试(只在Debug版本使用)
  124. debugImplementation 'com.github.chuckerteam.chucker:library:4.0.0'
  125. releaseImplementation 'com.github.chuckerteam.chucker:library-no-op:4.0.0'
  126. // Testing
  127. testImplementation libs.junit
  128. androidTestImplementation libs.androidx.junit
  129. androidTestImplementation libs.androidx.espresso.core
  130. androidTestImplementation platform(libs.androidx.compose.bom)
  131. androidTestImplementation libs.androidx.compose.ui.test.junit4
  132. debugImplementation libs.androidx.compose.ui.tooling
  133. debugImplementation libs.androidx.compose.ui.test.manifest
  134. }