# 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
[](https://www.android.com/)
[](https://openjdk.java.net/)
[](https://m3.material.io/)
[](https://gradle.org/)
[](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)