# WanAndroid **Repository Path**: ccxb/WanAndroid ## Basic Information - **Project Name**: WanAndroid - **Description**: 基于wanandroidapi开发的组件化demo - **Primary Language**: Kotlin - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-12 - **Last Updated**: 2026-01-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WanAndroid 项目架构解析 ## 项目概述 这是一个基于 Android 的 WanAndroid 客户端应用,采用模块化架构设计,使用 Kotlin 语言开发,集成了现代化的 Android 开发技术栈。 ## 核心功能模块 ### 1. 应用启动流程 - **初始化流程**:从 `App.kt` 开始,通过 `BaseApp` 进行基础初始化 - **系统服务配置**:包括网络状态管理器和生命周期观察者的注册 - **启动页处理**:`SplashActivity` 负责首次启动检查和隐私协议展示 - **导航控制**:启动完成后进入主界面 ### 2. 用户认证系统 - **登录注册**:提供 `LoginScreen` 和 `RegisterScreen` 界面 - **状态管理**:使用 `LoginViewModel` 处理登录状态 - **数据持久化**:通过 `HttpRepository` 和 `ApiService` 处理认证请求 - **用户信息管理**:登录成功后保存用户信息并跳转 ### 3. 主导航系统 - **底部导航**:`MainScreen` 包含四个主要模块 - 首页 (HomeService) - 热门 (HotService) - 分类 (CategoryService) - 我的 (MineService) - **模块化导航**:每个模块都有独立的 Service 接口和实现 ### 4. 网络请求架构 - **分层设计**: - UI层:Compose 组件 - ViewModel层:业务逻辑处理 - Repository层:数据访问封装 - ApiService层:网络接口定义 - **响应处理**:统一的成功/失败处理机制 ### 5. 模块交互模式 - **基础模块**:`BaseModule` 提供公共功能 - **服务接口**:定义各模块的 Service 接口 - **模块实现**: - ModuleHome → HomeService - ModuleHot → HotService - ModuleCategory → CategoryService - ModuleMine → MineService ## 技术特点 1. **现代化架构**: - 采用 Jetpack Compose 构建UI - 使用 Hilt 进行依赖注入 - MVVM 架构模式 2. **模块化设计**: - 清晰的模块边界 - 服务接口化 - 统一的模块交互方式 3. **网络处理**: - 统一的错误处理 - 响应式数据流 - 模块化的网络层 4. **生命周期管理**: - 应用级生命周期观察 - 网络状态监控 - 统一的状态管理 ## 数据流向 1. **启动流程**:App → BaseApp → SplashActivity → MainScreen 2. **用户交互**:UI → ViewModel → Repository → ApiService → 网络 3. **模块通信**:通过 Service 接口实现模块间解耦 4. **状态更新**:网络响应 → ViewModel → UI刷新 这个项目展示了一个结构清晰、可维护性强的 Android 应用架构,通过模块化和服务化的设计,实现了良好的代码组织和功能解耦。