# ai-rewriter **Repository Path**: zhufred/ai-rewriter ## Basic Information - **Project Name**: ai-rewriter - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-11 - **Last Updated**: 2026-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 改写助手(AI Rewriter) 改写助手是一款 Android 原生应用,专注于**对照重写**功能。应用提供上下分屏界面:上屏显示 AI 生成的短故事原文,下屏供用户手动重写去除 AI 风格。具备实时保存、原文滚动位置记忆、断点续写和多任务管理等实用特性。 ## 核心功能 - **对照重写**:上下分屏设计,原文与改写稿同步对照 - **实时保存**:每次输入自动防抖保存,退出后无缝续写 - **位置记忆**:原文滚动位置自动记录,下次打开精准恢复 - **断点续写**:随时中断,随时继续,不丢失任何已写内容 - **多任务管理**:支持创建、打开、删除多个改写任务 - **灵活调整**:可设置上下屏占比(20%-80%) ## 技术栈 - **语言与框架**:Kotlin + Jetpack Compose + Material 3 - **构建工具**:AGP 9.3.1 / Gradle 9.6.1 / Kotlin 2.4.10 - **Compose BOM**:2026.06.00(Compose 编译器随 Kotlin 版本) - **Kotlin 插件**:org.jetbrains.kotlin.plugin.compose + org.jetbrains.kotlin.plugin.serialization(2.4.10) - **目标配置**:compileSdk 36、minSdk 23、targetSdk 36、Java 17 - **核心依赖**:core-ktx 1.18.0、coroutines 1.11.0 - **依赖管理**:gradle/libs.versions.toml(集中管理版本号) ## 环境要求 - **开发工具**:Android Studio Otter 3 Feature Drop 或更新版本(需支持 AGP 9.0+) - **运行设备**:Android 6.0(API 23)及以上版本设备 - **存储权限**:需要"所有文件访问权限"以读写 SD 卡 ## 快速开始 ### 方式一:Android Studio 1. 使用 Android Studio 打开 `ai-rewriter` 项目文件夹 2. Android Studio 会根据 `gradle/wrapper/gradle-wrapper.properties` 自动下载 Gradle 9.6.1 3. 连接手机或启动模拟器(建议使用真机以便访问 SD 卡读写) 4. 点击运行按钮安装并启动应用 ### 方式二:命令行 ```bash # 进入项目目录 cd ai-rewriter # 生成 Gradle Wrapper(如需手动) gradle wrapper # 编译调试版本 ./gradlew assembleDebug ``` ## 权限说明 应用需要 **MANAGE_EXTERNAL_STORAGE(所有文件访问权限)**,原因如下: - 直接读写 SD 卡,与原文保存在同一目录 - 方便连接电脑复制改写稿 - 改写稿自动保存为 `<原名>_v1.<扩展名>` 格式 > **注意**:Google Play 对该权限审核较严格,本应用主要面向个人使用和侧载场景,不受影响。 ## 使用流程 1. **创建任务**:在首页点击右下角「+」,通过文件浏览器选择 SD 卡中的 `.txt` 或 `.md` 原文文件 2. **对照重写**:进入上下分屏写作页面 - 上屏:原文显示区(只读,滚动位置自动记忆) - 下屏:改写输入区(实时自动保存) 3. **文件存储**:改写内容自动保存到 `<原名>_v1.<扩展名>` 文件 4. **恢复进度**:下次打开任务时自动恢复已写内容和原文滚动位置 5. **调整布局**:在「设置」中可调整上下屏占比(20%-80%) 6. **任务管理**:首页可删除任务(仅删除任务记录,保留源文件和改写稿) ## 项目结构 ``` ai-rewriter/ ├── 需求文档.md # 项目需求文档 ├── build.gradle.kts # 项目构建配置 ├── settings.gradle.kts # 项目设置 ├── gradle.properties # Gradle 属性配置 ├── gradle/wrapper/ │ └── gradle-wrapper.properties # Gradle Wrapper 配置 └── app/src/main/ ├── AndroidManifest.xml # 应用清单文件 ├── res/ │ ├── values/themes.xml # 主题样式 │ └── values/strings.xml # 字符串资源 └── java/com/fred/airewriter/ ├── MainActivity.kt # 应用入口 ├── model/ │ ├── Task.kt # 任务数据模型 │ └── AppSettings.kt # 应用设置模型 ├── data/ │ ├── TaskRepository.kt # 任务数据仓库 │ └── SettingsRepository.kt # 设置数据仓库 ├── util/ │ ├── FileUtil.kt # 文件操作工具 │ └── Permissions.kt # 权限工具 ├── viewmodel/ │ ├── TasksViewModel.kt # 任务列表视图模型 │ └── RewriteViewModel.kt # 重写页面视图模型 └── ui/ ├── theme/ # 主题配置 ├── AppNavHost.kt # 导航主机 └── screens/ # 界面屏幕 ├── FilePickerScreen.kt # 文件选择页面 ├── PermissionGate.kt # 权限门禁页面 ├── RewriteScreen.kt # 重写页面(核心) ├── SettingsScreen.kt # 设置页面 └── TaskListScreen.kt # 任务列表页面 ``` ## 关键实现 - **数据持久化**: - 任务列表、滚动位置、分屏比例等元信息保存在 App 私有目录(`filesDir`) - 改写稿内容直接保存在 SD 卡原文同目录 - **自动保存**: - 改写稿:每次输入后约 400ms 防抖保存 - 原文滚动比例:约 300ms 防抖保存 - **文件格式**:原文按纯文本读取,不解析 Markdown 格式 - **状态管理**:采用 Kotlin 协程和 Compose StateFlow 实现响应式状态 ## 开发规范 - 依赖版本统一在 `gradle/libs.versions.toml` 管理 - 构建文件使用 `libs.xxx` 引用依赖,避免写死版本号 - 采用 AGP 9 内置 Kotlin 机制(不再单独 apply `org.jetbrains.kotlin.android`) ## 许可证 本项目仅供个人学习和使用。