Skip to content

smartphone-android/AndroidCommunity

Repository files navigation

WanAndroid 项目说明文档

项目架构概述

WanAndroid是一款基于MVVM架构的Android学习资源应用,提供了Android开发相关的文章、知识体系、热门网站等内容。项目采用模块化设计,结构清晰,使用了现代Android开发技术栈。

项目模块划分

项目分为三个主要模块:

├── app/         # 主应用模块,包含UI界面和业务逻辑
├── base/        # 基础功能模块,提供通用组件和基类
└── http/        # 网络请求模块,处理API调用和数据交互

文件结构及功能说明

app 模块

app/
├── activity/                 # Activity类
│   ├── about/                # 关于我们页面
│   ├── collect/              # 收藏文章页面
│   ├── home/                 # 主页(TabActivity)
│   ├── login/                # 登录和注册页面
│   ├── search/               # 搜索页面
│   └── web/                  # 网页浏览页面
├── adapter/                  # 各种RecyclerView适配器
├── common/                   # 常量定义
├── fragment/                 # Fragment类
│   ├── common/               # 常用网站和热点搜索Fragment
│   ├── home/                 # 首页文章列表Fragment
│   └── mine/                 # 我的页面Fragment
├── repository/               # 数据仓库和模型
│   └── data/                 # 数据模型类
└── WanApp.kt                 # 应用入口类

base 模块

base/
├── adapter/                  # 基础适配器类
│   ├── AdapterItemListener.kt  # 列表项点击监听器
│   ├── BaseRecyclerAdapterPlus.kt # 增强型RecyclerView适配器
│   └── PageDiffUtil.kt       # 列表差异化更新工具
├── BaseActivity.kt           # Activity基类
├── BaseFragment.kt           # Fragment基类
├── BaseViewModel.kt          # ViewModel基类
├── SingleLiveEvent.kt        # 单次事件LiveData
├── tab/                      # 底部导航组件
└── view/                     # 自定义视图组件

http 模块

http/
├── ApiAddress.kt             # API地址常量
├── ApiException.kt           # API异常处理
├── BaseResponse.kt           # 响应基类
├── BaseUrlConstants.kt       # 基础URL常量
├── ExceptionUtil.kt          # 异常处理工具
├── PersistentCookieJar.kt    # Cookie持久化
├── RetrofitClient.kt         # Retrofit客户端
└── TrustAllCerts.kt          # 证书相关工具

主要调用和逻辑关系

1. 应用基础架构

  • 基类设计

    • BaseActivity:所有Activity的基类,处理ViewModel绑定和基础生命周期
    • BaseFragment:所有Fragment的基类,提供相似的功能
    • BaseViewModel:所有ViewModel的基类
    • BaseRecyclerAdapter:RecyclerView适配器基类
  • 数据绑定

    • 使用DataBinding自动绑定视图和数据
    • 通过BR标识符关联ViewModel和视图

2. 应用启动流程

  1. WanApp启动应用
  2. 进入TabActivity,它是应用的主界面容器
  3. TabActivity通过NavigationBottomBarViewPager2管理三个主要Fragment

3. 网络请求流程

  1. Repository单例作为数据源,封装所有网络请求
  2. 通过RetrofitClient单例创建API调用接口
  3. ApiService接口定义了所有网络接口
  4. 使用Kotlin协程执行异步请求
  5. ViewModel通过LiveData将结果通知UI

4. 主要功能流程

首页模块

  • FragHome 展示文章列表和轮播图
  • HomeViewModel 负责获取首页数据
  • HomeListAdapter 处理列表展示和Banner显示

搜索模块

  • FragCommon 显示热门搜索词和常用网站
  • 点击搜索词进入 SearchActivity
  • 搜索结果通过 Repository.search() 获取

用户模块

  • FragMine 显示用户信息和功能入口
  • LoginActivity 处理登录/注册
  • 用户信息存储在SharedPreferences中
  • MyCollectActivity 显示收藏的文章

文章浏览

  • WebActivity 使用WebView加载文章内容
  • 支持收藏、分享等操作

技术栈

  • 语言:Kotlin
  • 架构:MVVM
  • UI框架
    • 传统XML视图 + DataBinding
    • ViewPager2
    • RecyclerView
  • 网络请求
    • Retrofit2
    • OkHttp3
    • Kotlin协程
  • 数据管理
    • LiveData
    • ViewModel
  • 其他工具
    • Banner轮播图组件
    • Glide图片加载
    • SharedPreferences数据存储
    • UtilcodeX工具库

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published