oneAnime 是由开发者 Predidit 维护的开源项目,用 Flutter 开发,是 Anime1 的第三方客户端。代码基于 GPL-3.0 协议完全开源,任何人都可以自由使用、学习和修改。
- 维护者
- 开发者 Predidit 2024 年 3 月首个提交,累计 322 次提交
- 技术栈
- Flutter / Dart 为主 另含 C++、CMake、Swift、HTML
- 设计规范
- 遵循 Material You 界面支持多套配色方案
- 开源许可
- GPL-3.0 可自由使用、修改与再分发
项目背景
从 2024 年 3 月的第一个提交开始
oneAnime 始于 2024 年 3 月 12 日的第一个提交,最初目标很简单:给 Anime1 做一个原生客户端,不要广告、不要套壳、手机和电脑都能用。项目至今已累计 322 次提交,代码以 Dart 为主(约占 89%),另有 C++、CMake、Swift 与 HTML 部分分别用于媒体解码、构建脚本、iOS 适配与 web 目录。
与常见的聚合类追番 App 不同,oneAnime 没有广告、没有会员、也没有账号体系。它的核心取向是「把工具安静地做好分内的事」——不追求资源数量,而是把播放、界面和弹幕这几件事做扎实。
技术架构
数据从哪来,能力从哪来
三层数据来源
项目与 Anime1 的交互代码借用了 AnimeOne 的实现;番剧元数据(标题、简介、评分等)来自 Bangumi 开放 API;弹幕交互来自弹弹play 开放 API。三者各自独立,一方变动不会牵连其他两方。
播放链路
跨平台媒体播放能力来自 media-kit(项目使用自定义 fork),非标准视频流的处理使用了来自 avbuild 的树外补丁。本地持久化使用 hive。播放器层之上实现了硬件加速解码、从 v1.4.3 起在 Windows 与 Linux 实现的零拷贝视频解码,以及高刷新率屏幕满帧适配。
明确的技术前提
App 正常运行状态下不加载任何 webview 组件,界面与播放器均为原生实现。这是项目的技术选择,也是它与大量聚合 App 的根本区别。
开源仓库
代码、发行版本与全部历史记录都在 GitHub,协议 GPL-3.0。官网是项目的官方信息发布渠道,源码与安装包以 GitHub Releases 为准。
github.com/Predidit/oneAnime