Ncrust

网易云音乐 Android 第三方客户端
Metro / Groove Music · GPU 零重组动画 · 无缝播放 · 14 种语言 · 无损音质
纯 Kotlin / Jetpack Compose 构建 · Kanesumi 直角 UI · Sokuou 动画 · Media3 播放引擎
Kotlin Compose Kanesumi Sokuou eapi ExoPlayer R8 Minify
App 截图

重新定义移动音乐体验

Ncrust 是一款纯 Kotlin + Jetpack Compose 构建的网易云音乐 Android 第三方客户端,UI 基于自研 Kanesumi 直角组件库(零 material3 依赖)。拒绝社交层,聚焦音乐本身。

▶ 三层图层架构

主页面 → 播放卡片层 → 导航栏,视觉与触摸事件完全独立,互不干扰。

⚙ GPU 零重组

所有动画由单一 Animatable 驱动,graphicsLayer 执行,组件常驻不销毁,无运行时重组开销。

▪ Kanesumi 直角 UI

抛弃 material3,改用自研 Kanesumi 组件库——直角、无边框、信息优先的 Groove 风 Metro UI。

♫ 无社交层

无评论、无动态、无直播入口。音乐流媒体播放器的本质回归。

🌐 14 种语言

运行时切换,不依赖系统 locale。简体中文 / 繁体中文 / EN / English (UK) / 日本語 / 조선어 / Deutsch / Русский 等。

🏁 分网络音质

Wi-Fi 与移动数据独立偏好设置,无损 / 较好 / 标准按需切换,实时显示当前音质标签。

🔒 进程恢复

播放状态 + 队列全量持久化,进程被杀后自动恢复歌曲、歌词、封面与播放位置。

全屏播放器卡片

参考 Apple Music 的卡片式交互设计。迷你栏常驻底部,点击或上滑触发全屏展开,拖拽超过 25% 自动吸附。所有视觉元素 —— 位置、大小、透明度 —— 均为 progress(0→1)的纯函数,由 graphicsLayer 在 GPU 端执行,不触发 Compose 重组。动画统一走 Sokuou 系统(UWP 缓动族 + Apple 风格弹簧预设)。

播放器截图

歌词系统

LRC 逐行解析,已播放白色、当前句绿色(#1DB954)、未播放灰色。自动定位至视图上黄金分割点(0.45),每句仅定位一次。手动滚动后 5 秒无操作恢复自动定位。歌词区域上下渐变融入,营造沉浸阅读体验。

歌词截图

无缝播放

gapless 模式下提前预加载下一首 URL,切歌即播,零等待。TTL 5 分钟缓存 + 双重去重机制,手动切歌命中缓存时直接复用已取回的 URL,避免重复网络请求。250ms 轮询间隔确保进度同步。

无缝播放示意图

界面预览

白茶哲学

我做 Ncrust 的时候,脑子里想的不是代码,不是架构,不是用户增长。

我想的是白茶。

清水什么也没有,太淡。糖水太热烈,甜得发腻。

白茶不一样。它有味道,但温和。它不吵,你需要安静下来,才能品到它的回甘。

Ncrust 就是白茶。直角是白茶,原生是白茶,无下载是白茶。不讨好,但有立场。不炫耀,但有质感。

如果你习惯了糖水,Ncrust 可能不适合你。
但如果你想试试白茶——我泡好了。

技术规格

Language Kotlin 1.9+
UI Kanesumi (Compose, zero M3)
Engine Media3 ExoPlayer
Network Retrofit + OkHttp + eapi 加密
Images Coil
Min API Android 7.0 (API 24)
Storage SharedPreferences + Gson
Animation Sokuou + graphicsLayer (GPU)
Theme 6 preset colors
Languages 14 languages
APK Size 4 MB (R8 minified)
License MIT

开始使用 Ncrust

v1.2.2 · Groove 化收官 · Kanesumi 直角 UI · Sokuou 动画 · R8 minify 4 MB

▽ 下载 APK

GitHub  ·  所有版本