# novel-reader **Repository Path**: Jackzhou1/novel-reader ## Basic Information - **Project Name**: novel-reader - **Description**: 📱 Android 在线小说阅读应用,配备 TCP 后端。支持自定义字体大小、文本颜色和背景主题。简洁的 Material Design 3 UI。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-04 - **Last Updated**: 2026-04-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📖 Novel Reader
[![Android](https://img.shields.io/badge/Android-26+-3DDC84?style=for-the-badge&logo=android&logoColor=white)](https://www.android.com/) [![Java](https://img.shields.io/badge/Java-17+-007396?style=for-the-badge&logo=openjdk&logoColor=white)](https://openjdk.java.net/) [![Material Design 3](https://img.shields.io/badge/Material_Design_3-FF6F00?style=for-the-badge&logo=material-design&logoColor=white)](https://m3.material.io/) [![Gradle](https://img.shields.io/badge/Gradle-8.7+-02303A?style=for-the-badge&logo=gradle&logoColor=white)](https://gradle.org/) [![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](LICENSE) > 🚀 一个极简主义的 Android 在线小说阅读应用 [English](#english) · [简体中文](#简体中文)
--- ## 🎨 特性一览
| 📱 小说列表 | 📖 在线阅读 | 🎨 个性化阅读 | |:---:|:---:|:---:| | 在线获取小说列表 | 实时加载小说内容 | 字体大小调节 | | 简洁列表展示 | 流畅滚动体验 | 8 种文本颜色 | | 快速响应 | 无广告干扰 | 多种背景主题 |
--- ## 📸 界面预览
> 💡 提示:实际界面展示待添加截图 **小说列表页** · **阅读页面** · **设置面板**
--- ## 🛠️ 技术栈 ### Android 客户端 ```kotlin ├── Language: Java ├── Min SDK: 26 (Android 8.0) ├── Target SDK: 34 (Android 14) ├── UI: Material Design 3 ├── Layout: ConstraintLayout ├── Storage: SharedPreferences └── Network: TCP Socket ``` ### TCP 服务器 ```java ├── Language: Java ├── Protocol: 自定义文本协议 ├── Port: 8888 ├── Encoding: UTF-8 ├── Concurrency: 线程池 └── Storage: 文件系统 ``` --- ## 📦 项目结构 ``` novel-reader/ ├── app/ # Android 应用源码 │ ├── src/main/ │ │ ├── java/com/why/novel/ │ │ │ ├── MainActivity.java # 小说列表页 │ │ │ ├── ReadActivity.java # 阅读页面 │ │ │ ├── TextSizeDialogFragment.java # 字体大小对话框 │ │ │ ├── TextColorDialogFragment.java # 文本颜色对话框 │ │ │ └── BackgroundDialogFragment.java # 背景设置对话框 │ │ ├── res/ │ │ │ ├── layout/ # 布局文件 │ │ │ ├── menu/ # 菜单资源 │ │ │ ├── drawable/ # 背景纹理 │ │ │ └── values/ # 字符串、颜色、主题 │ │ └── AndroidManifest.xml │ └── build.gradle.kts ├── backend/ # TCP 服务器 │ ├── src/ │ │ ├── NovelTcpServer.java # 服务器主类 │ │ ├── NovelService.java # 数据服务 │ │ └── ClientHandler.java # 请求处理器 │ ├── data/ # 小说数据 │ └── start-server.bat # 启动脚本 ├── gradle/ # Gradle 配置 └── README.md ``` --- ## 🚀 快速开始 ### 环境要求 - **JDK**: 17+ - **Android Studio**: Hedgehog (2023.1.1) 或更高版本 - **Gradle**: 8.7+ - **Android SDK**: API 26-35 ### 克隆项目 ```bash git clone https://github.com/JackZho/novel-reader.git cd novel-reader ``` ### 配置服务器 IP 在 Android 项目中修改服务器 IP 地址: 1. 编辑 [`app/src/main/java/com/why/novel/MainActivity.java`](app/src/main/java/com/why/novel/MainActivity.java#L32) 2. 编辑 [`app/src/main/java/com/why/novel/ReadActivity.java`](app/src/main/java/com/why/novel/ReadActivity.java#L41) ```java private static final String SERVER_IP = "192.168.1.100"; // 修改为你的电脑 IP ``` ### 启动后端服务 ```bash # Windows cd backend start-server.bat # 或手动启动 javac -d bin -encoding UTF-8 src/*.java java -cp bin com.why.novel.backend.NovelTcpServer ``` ### 构建应用 ```bash # Debug 版本 ./gradlew assembleDebug # 或通过 Android Studio 直接运行 ``` APK 输出路径:`app/build/outputs/apk/debug/app-debug.apk` --- ## 📡 通信协议 ### 请求命令 | 命令 | 说明 | |------|------| | `GET_NOVEL_LIST` | 获取小说列表 | | `GET_NOVEL_CONTENT:标题` | 获取小说内容 | ### 响应格式 ``` # 小说列表 斗破苍穹,斗罗大陆,完美世界 ##EOT## # 小说内容 第一章 开始... (正文内容) ##EOT## ``` --- ## 🎯 使用说明 ### 1. 启动服务器 确保你的电脑和 Android 设备在同一局域网(同一 WiFi)。 ```bash cd backend ./start-server.bat ``` ### 2. 获取电脑 IP ```bash # Windows ipconfig # Mac/Linux ifconfig ``` ### 3. 修改客户端配置 修改 Android 代码中的 `SERVER_IP` 为你的电脑 IP。 ### 4. 安装并运行 安装 APK,即可开始阅读小说。 --- ## ⚙️ 自定义配置 ### 修改服务器端口 编辑 `backend/src/NovelTcpServer.java`: ```java private static final int PORT = 8888; // 修改端口号 ``` ### 添加小说数据 1. 在 `backend/data/contents/` 创建 TXT 文件(UTF-8 编码) 2. 在 `backend/data/novel_list.txt` 添加小说标题 ### 修改主题颜色 编辑 `app/src/main/res/values/colors.xml` 和 `themes.xml`。 --- ## 🔥 功能特性 ### 📖 阅读体验 - [x] 流畅的滚动体验 - [x] 无广告干扰 - [x] 简洁的 UI 设计 ### 🎨 个性化设置 - [x] 字体大小:12-32sp 无级调节 - [x] 文本颜色:8 种预设颜色 - [x] 背景主题:纯色/纹理/自定义图片 ### 💾 数据存储 - [x] 阅读偏好持久化 - [x] SharedPreferences 本地存储 --- ## 📝 常见问题 ### Q: 无法连接服务器? **A:** 检查以下事项: 1. 服务器已启动且无报错 2. 设备在同一局域网 3. IP 地址正确 4. 防火墙已开放 8888 端口 ```bash # Windows 防火墙开放端口 netsh advfirewall firewall add rule name="Novel Server" dir=in action=allow protocol=TCP localport=8888 ``` ### Q: 中文乱码? **A:** 确保小说文件使用 UTF-8 编码保存。 ### Q: 如何添加更多小说? **A:** 在 `backend/data/contents/` 添加 TXT 文件,并在 `novel_list.txt` 注册。 --- ## 🗺️ 开发计划 - [ ] 搜索功能 - [ ] 章节列表 - [ ] 阅读进度保存 - [ ] 本地导入小说 - [ ] 夜间模式 - [ ] 书签功能 - [ ] 历史记录 --- ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request --- ## 📄 开源协议 本项目采用 MIT 协议开源 - 查看 [LICENSE](LICENSE) 文件了解详情。 --- ## 👨‍💻 作者 **Jack Zhou** - GitHub: [@JackZho](https://github.com/JackZho) - Gitee: [@Jackzhou1](https://gitee.com/Jackzhou1) ---
⭐ 如果本项目对你有帮助,请给一个 Star!⭐ Made with ❤️ by Jack Zhou
--- # 简体中文 ## 📖 项目简介 Novel Reader 是一个极简主义的 Android 在线小说阅读应用,采用客户端 - 服务器架构,支持自定义阅读样式。 ## 🎯 核心功能 - **在线小说列表**: 从服务器获取小说列表 - **实时阅读**: 即点即读,无需等待下载 - **字体调节**: 12-32sp 无级调节 - **颜色切换**: 8 种文本颜色可选 - **背景主题**: 纯色、纹理、自定义图片 ## 🏃 快速开始 ```bash # 1. 克隆项目 git clone https://github.com/JackZho/novel-reader.git # 2. 启动服务器 cd backend ./start-server.bat # 3. 修改服务器 IP # 编辑 MainActivity.java 和 ReadActivity.java 中的 SERVER_IP # 4. 构建应用 ./gradlew assembleDebug ``` 详细文档请查看上方的完整 README。 ---
[⬆ 返回顶部](#-novel-reader)