build.gradle 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. plugins {
  2. id 'com.android.application'
  3. id 'dagger.hilt.android.plugin'
  4. }
  5. def LOCAL = "local", TEST = "test", PROD = "prod"
  6. def getServerHost(String env) {
  7. switch (env) {
  8. case "local":
  9. return "$local_server_host";
  10. case "test":
  11. return "$test_server_host";
  12. case "prod":
  13. return "$prod_server_host";
  14. default:
  15. return "$prod_server_host";
  16. }
  17. }
  18. android {
  19. namespace 'com.atmob.watermarkcamera'
  20. compileSdk rootProject.compileSdkVersion
  21. defaultConfig {
  22. applicationId rootProject.applicationId
  23. minSdk rootProject.minSdkVersion
  24. targetSdk rootProject.targetSdkVersion
  25. versionCode rootProject.versionCode
  26. versionName rootProject.versionName
  27. ndk {
  28. //noinspection ChromeOsAbiSupport
  29. abiFilters "arm64-v8a"
  30. }
  31. }
  32. signingConfigs {
  33. debug {
  34. storeFile file("keystore/watermark.jks")
  35. storePassword "watermark888"
  36. keyAlias "watermark"
  37. keyPassword "watermark888"
  38. }
  39. release {
  40. storeFile file("keystore/watermark.jks")
  41. storePassword "watermark888"
  42. keyAlias "watermark"
  43. keyPassword "watermark888"
  44. }
  45. }
  46. def env_release = PROD
  47. def env_debug = PROD
  48. buildTypes {
  49. release {
  50. minifyEnabled true
  51. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  52. signingConfig signingConfigs.release
  53. buildConfigField "String", "ENV", "\"$env_release\""
  54. buildConfigField "String", "HOST", "\"${getServerHost(env_release)}\""
  55. buildConfigField "String", "LOCAL", "\"$LOCAL\""
  56. buildConfigField "String", "TEST", "\"$TEST\""
  57. buildConfigField "String", "PROD", "\"$PROD\""
  58. }
  59. debug {
  60. minifyEnabled false
  61. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  62. signingConfig signingConfigs.debug
  63. buildConfigField "String", "ENV", "\"$env_debug\""
  64. buildConfigField "String", "HOST", "\"${getServerHost(env_debug)}\""
  65. buildConfigField "String", "LOCAL", "\"$LOCAL\""
  66. buildConfigField "String", "TEST", "\"$TEST\""
  67. buildConfigField "String", "PROD", "\"$PROD\""
  68. }
  69. }
  70. compileOptions {
  71. sourceCompatibility JavaVersion.VERSION_1_8
  72. targetCompatibility JavaVersion.VERSION_1_8
  73. }
  74. buildFeatures {
  75. viewBinding true
  76. dataBinding true
  77. }
  78. applicationVariants.configureEach { variant ->
  79. def date = new Date().format("YYMMddHHmmss")
  80. def server = variant.buildType.name == "release" ? env_release : env_debug
  81. variant.outputs.configureEach {
  82. def fileName = "${defaultConfig.applicationId}" +
  83. "-v${defaultConfig.versionName}" +
  84. "-${variant.buildType.name}" +
  85. "-${server}" +
  86. "-${date}" +
  87. ".apk"
  88. outputFileName = fileName
  89. }
  90. }
  91. sourceSets {
  92. main { jniLibs.srcDirs = ['libs'] }
  93. }
  94. configurations.configureEach {
  95. resolutionStrategy {
  96. // don't cache changing modules at all
  97. cacheChangingModulesFor 10, 'seconds'
  98. }
  99. }
  100. }
  101. dependencies {
  102. //jar or aar
  103. implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
  104. //Atmob SDK
  105. implementation 'extra.common:base:1.0.0-SNAPSHOT'
  106. implementation "extra.pack:channel:1.1.0-SNAPSHOT"
  107. implementation "extra.common:core:2.0.3-SNAPSHOT" //base utils
  108. implementation "extra.common:network:1.1.0-SNAPSHOT"
  109. implementation "extra.common:rxjava:1.1.0-SNAPSHOT"
  110. implementation "extra.common:user:1.0.1-SNAPSHOT" //get user data(includes device info)
  111. implementation("plus.pay:pay:1.1.0-SNAPSHOT") {
  112. exclude group: 'third.pay', module: 'ali'
  113. }
  114. api 'com.alipay.sdk:alipaysdk-android:15.8.16@aar'
  115. implementation "extra.common:oaid:1.1.0-SNAPSHOT" //oaid
  116. //AppCompat
  117. implementation "androidx.appcompat:appcompat:$rootProject.appcompat_version"
  118. //Material
  119. implementation "com.google.android.material:material:$rootProject.material_version"
  120. //RecyclerView
  121. implementation "androidx.recyclerview:recyclerview:$rootProject.recyclerview_version"
  122. //ConstraintLayout
  123. implementation "androidx.constraintlayout:constraintlayout:$rootProject.constraintlayout_version"
  124. //Gson
  125. implementation "com.google.code.gson:gson:$rootProject.gson_version"
  126. //Lifecycle
  127. implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$rootProject.lifecycle_version"
  128. implementation "androidx.lifecycle:lifecycle-livedata:$rootProject.lifecycle_version"
  129. implementation "androidx.lifecycle:lifecycle-reactivestreams:$rootProject.lifecycle_version"
  130. implementation "androidx.lifecycle:lifecycle-process:$rootProject.lifecycle_version"
  131. //Hilt
  132. implementation "com.google.dagger:hilt-android:$rootProject.hilt_version"
  133. annotationProcessor "com.google.dagger:hilt-compiler:$rootProject.hilt_version"
  134. //Glide
  135. implementation "com.github.bumptech.glide:glide:$rootProject.glide_version"
  136. annotationProcessor "com.github.bumptech.glide:compiler:$rootProject.glide_version"
  137. //MMKV
  138. implementation "com.tencent:mmkv:$rootProject.mmkv_version"
  139. //immersionbar
  140. implementation "com.gyf.immersionbar:immersionbar:$rootProject.immersionbar_version"
  141. implementation "com.gyf.immersionbar:immersionbar-components:$rootProject.immersionbar_version"
  142. //RefreshLayout
  143. implementation "androidx.swiperefreshlayout:swiperefreshlayout:$rootProject.swiperefreshlayout_version"
  144. //字符串加密算法
  145. implementation "com.github.megatronking.stringfog:xor:$rootProject.stringfog_verstion"
  146. }