From 4d5433d2e8a1b6ab30a30f1b1db9dd7f80dd9bed Mon Sep 17 00:00:00 2001 From: iammm0 Date: Wed, 28 Jan 2026 12:59:15 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=BD=91=E7=BB=9C=E5=B1=82=E5=92=8C=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化AppConfig应用配置,支持多环境 - 优化ApiService网络服务 - 优化AuthService认证服务 - 优化WebSocketClient连接处理 --- .../com/huaga/life_echo/config/AppConfig.kt | 78 ++++++++++++++----- .../com/huaga/life_echo/network/ApiService.kt | 2 +- .../huaga/life_echo/network/AuthService.kt | 4 +- .../life_echo/network/WebSocketClient.kt | 2 +- 4 files changed, 62 insertions(+), 24 deletions(-) diff --git a/app-android/app/src/main/java/com/huaga/life_echo/config/AppConfig.kt b/app-android/app/src/main/java/com/huaga/life_echo/config/AppConfig.kt index b1c74d1..d0d36e6 100644 --- a/app-android/app/src/main/java/com/huaga/life_echo/config/AppConfig.kt +++ b/app-android/app/src/main/java/com/huaga/life_echo/config/AppConfig.kt @@ -1,25 +1,63 @@ package com.huaga.life_echo.config +import com.huaga.life_echo.BuildConfig + +/** + * 应用配置管理 + * + * 环境切换说明: + * - 只需在 build.gradle.kts 中修改 IS_DEBUG_MODE 即可切换环境 + * - true = 开发模式(显示调试UI,连接开发服务器) + * - false = 生产模式(隐藏调试UI,连接生产服务器) + * + * 默认行为:如果出现异常,默认使用开发环境配置(安全起见) + */ object AppConfig { - // API 基础 URL 配置 + + // ==================== 服务器地址配置 ==================== + // 如需修改服务器地址,只需修改下面的常量即可 + + // 开发环境(物理机测试使用内网IP) + private const val DEV_API_URL = "http://192.168.10.9:8000" + private const val DEV_WS_URL = "ws://192.168.10.9:8000" + + // 生产环境(公网地址) + private const val PROD_API_URL = "https://lifecho.worldsplats.com" + private const val PROD_WS_URL = "wss://lifecho.worldsplats.com" + + // Android模拟器备用地址(10.0.2.2 映射到主机 localhost) + // private const val EMU_API_URL = "http://10.0.2.2:8000" + // private const val EMU_WS_URL = "ws://10.0.2.2:8000" + + // ==================== 环境判断 ==================== + + /** + * 是否为调试模式 + * - true: 开发模式,显示调试UI组件 + * - false: 生产模式,隐藏调试组件 + * + * 默认值:true(出问题时默认开发模式,方便调试) + */ + val isDebugMode: Boolean = try { + BuildConfig.IS_DEBUG_MODE + } catch (e: Exception) { + true // 默认开发模式 + } + + /** + * API 基础 URL + * 根据 isDebugMode 自动选择开发或生产服务器 + */ + val BASE_URL: String = if (isDebugMode) DEV_API_URL else PROD_API_URL + + /** + * WebSocket 基础 URL + * 根据 isDebugMode 自动选择开发或生产服务器 + */ + val WS_BASE_URL: String = if (isDebugMode) DEV_WS_URL else PROD_WS_URL + + // ==================== 说明 ==================== // - // 物理机测试:使用实际的内网IP地址(如 192.168.10.9) - // Android模拟器:使用 10.0.2.2 来访问主机(开发机器) - // - // 注意:从Android 9 (API 28)开始,默认禁止明文HTTP流量 - // 已在 network_security_config.xml 中配置允许明文流量(仅用于开发环境) - // 生产环境应该使用HTTPS并移除明文流量配置 - - // 生产环境配置:公网地址 - const val BASE_URL = "http://192.168.10.9:8000" - const val WS_BASE_URL = "ws://192.168.10.9:8000" // WebSocket必须使用ws://协议 - - // 开发环境配置(已注释) - // 物理机测试: - // const val BASE_URL = "http://192.168.10.9:8000" - // const val WS_BASE_URL = "ws://192.168.10.9:8000" - - // Android模拟器测试: - // const val BASE_URL = "http://10.0.2.2:8000" - // const val WS_BASE_URL = "ws://10.0.2.2:8000" + // 注意:从 Android 9 (API 28) 开始,默认禁止明文HTTP流量 + // 开发环境需要在 network_security_config.xml 中配置允许明文流量 } \ No newline at end of file diff --git a/app-android/app/src/main/java/com/huaga/life_echo/network/ApiService.kt b/app-android/app/src/main/java/com/huaga/life_echo/network/ApiService.kt index 6ca9c5a..695654c 100644 --- a/app-android/app/src/main/java/com/huaga/life_echo/network/ApiService.kt +++ b/app-android/app/src/main/java/com/huaga/life_echo/network/ApiService.kt @@ -38,7 +38,7 @@ class ApiService( } companion object { - private const val BASE_URL = com.huaga.life_echo.config.AppConfig.BASE_URL + private val BASE_URL = com.huaga.life_echo.config.AppConfig.BASE_URL } // ==================== 对话相关API ==================== diff --git a/app-android/app/src/main/java/com/huaga/life_echo/network/AuthService.kt b/app-android/app/src/main/java/com/huaga/life_echo/network/AuthService.kt index 40e3e2b..cbd118f 100644 --- a/app-android/app/src/main/java/com/huaga/life_echo/network/AuthService.kt +++ b/app-android/app/src/main/java/com/huaga/life_echo/network/AuthService.kt @@ -41,8 +41,8 @@ class AuthService { } companion object { - private const val BASE_URL = AppConfig.BASE_URL - private const val AUTH_BASE = "$BASE_URL/api/auth" + private val BASE_URL = AppConfig.BASE_URL + private val AUTH_BASE = "$BASE_URL/api/auth" } /** diff --git a/app-android/app/src/main/java/com/huaga/life_echo/network/WebSocketClient.kt b/app-android/app/src/main/java/com/huaga/life_echo/network/WebSocketClient.kt index 2928cc3..fdc9432 100644 --- a/app-android/app/src/main/java/com/huaga/life_echo/network/WebSocketClient.kt +++ b/app-android/app/src/main/java/com/huaga/life_echo/network/WebSocketClient.kt @@ -38,7 +38,7 @@ class WebSocketClient { companion object { private const val TAG = "WebSocketClient" - private const val BASE_URL = com.huaga.life_echo.config.AppConfig.WS_BASE_URL + private val BASE_URL = com.huaga.life_echo.config.AppConfig.WS_BASE_URL private const val RECONNECT_DELAY_MS = 3000L private const val MAX_RECONNECT_ATTEMPTS = 5 }