
如何从零构建NuvioTV源码full与Play Store双构建的完整开发者指南【免费下载链接】NuvioTVOfficial Nuvio Android TV Repository项目地址: https://gitcode.com/gh_mirrors/nu/NuvioTVNuvioTV 是一款免费开源的 Android TV 媒体库应用支持自带源BYOS把影视源自动变成带海报、评分、字幕和播放进度的媒体库。这篇指南带你从零完成 NuvioTV 源码构建了解双构建变体差异、配置环境并用一条 Gradle 命令产出你的第一个 APK。一、NuvioTV 技术栈速览构建前先认识它在动手之前先了解 NuvioTV 源码由什么构成这会直接决定你的构建环境要求技术说明Kotlin 2.3.0主力开发语言Jetpack Compose TV Material 3声明式 UI专为电视遥控器交互设计Media3 (ExoPlayer)播放引擎项目内置了 本地 AAR 引擎库AV1、MPEG-H、IAMF、FFmpeg 解码器Gradle 8.13 / AGP 8.13.2构建工具链详见 gradle/wrapper/gradle-wrapper.propertiesminSdk 24 / targetSdk 36覆盖 Android 7.0 至最新系统所有依赖版本统一维护在 gradle/libs.versions.toml 中工程结构由 settings.gradle.kts 定义共三个模块:app—— 主应用:baselineprofile—— Baseline Profile 性能基线生成器:ffmpeg-decoder-downmix—— 可选的本地 FFmpeg 解码器模块二、构建环境准备3 件事先做好 ✅安装 Android Studio含 Android SDK Platform 36、NDK 29.0.14206865、CMake 3.22.1JDK 11—— 项目 Java/Kotlin 编译目标均为 11Git—— 用于拉取源码 无需手动配置 NDK只要开启 DOVI 原生构建默认开启CMake 会自动编译 Dolby Vision 桥接库配置见 app/src/main/cpp/CMakeLists.txt。三、获取 NuvioTV 源码clone 仓库只需两行打开终端执行git clone https://gitcode.com/gh_mirrors/nu/NuvioTV cd NuvioTV进入项目后建议先复制一份本地配置模板cp local.example.properties local.propertieslocal.example.properties 是项目提供的配置模板包含 Supabase 后端地址、Trakt/SimKL/MDBList 客户端 ID 等。首次构建即使留空占位值也能正常编译相关字段只是注入到 BuildConfig 中可按需再填写。四、full 与 playstore双构建变体到底差在哪NuvioTV 采用产品风味Product Flavor实现一份源码、两种分发核心定义在 app/build.gradle.kts对比项full 变体playstore 变体包名com.nuvio.tvcom.nuvio.app插件系统QuickJS CloudStream✅ 开启❌ 关闭应用内自动更新✅ 开启❌ 关闭应用内预告片✅ 开启❌ 关闭外部播放保活服务✅ 开启❌ 关闭自定义服务器连接✅ 开启❌ 关闭Leanback 特性不强制强制要求两个变体在功能之外的差异同样讲究依赖差异full 变体额外引入 QuickJS 脚本引擎、CloudStream 插件库、Jackson、NiceHttp 等见 app/build.gradle.kts用于在设备端运行第三方扩展插件playstore 变体则全部剔除包体更小。权限差异playstore 变体通过 app/src/playstore/AndroidManifest.xml 移除了安装未知应用前台服务等权限并删除保活 Service以符合商店审核规范。代码差异每个变体有独立源集如 full 的 PluginManager.kt 是真正的插件管理器而 playstore 的 同名文件 是不含插件能力的桩实现。 新手建议本地开发选full 变体功能最全方便调试插件与更新逻辑面向商店分发时才选 playstore。五、最快构建方法一条 Gradle 命令搞定仓库自带 Gradle Wrapper无需本机安装 Gradle。常用构建命令如下# full 变体 Debug APK最常用本地开发首选 ./gradlew :app:assembleFullDebug # playstore 变体 Debug APK ./gradlew :app:assemblePlaystoreDebug # full 变体 Release APK需要签名配置 ./app:assembleFullRelease 2/dev/null || ./gradlew :app:assembleFullRelease # playstore 变体 AAB提交 Play Store 用 ./gradlew :app:bundlePlaystoreRelease产物在哪里构建完成后APK 位于app/build/outputs/apk/{full,playstore}/{debug,release}/几个值得注意的细节ABI 分包Release 构建默认按arm64-v8a、armeabi-v7a、x86、x86_64四种架构分包并额外生成一个 universal 全架构包见 app/build.gradle.kts而 AAB 构建则不做分包。签名Debug 构建复用 release 签名配置CI 环境可通过环境变量CI_USE_DEBUG_SIGNINGtrue切换为调试签名。Dolby VisionDOVI_NATIVE_ENABLEDtrue默认时构建过程会把 DV7/libdovi/ 中预编译的各架构静态库链接进dovi_bridge原生库实现杜比视界 Profile 7 → 8.1 转换。六、进阶两个可选构建开关在local.properties中按需修改USE_LOCAL_FFMPEG_DECODERfalse默认——使用预编译 FFmpeg 解码器 AAR设为true时改为构建 ffmpeg-decoder-downmix/ 本地模块需要额外指定 FFmpeg 源码与构建目录。DOVI_NATIVE_ENABLED/DOVI_ENABLE_REAL_LINK—— 控制杜比视界原生桥接是否编译及是否链接真实 libdovi找不到静态库时会自动降级为 stub 模式不会中断构建。七、项目结构导航源码都藏在哪NuvioTV/ ├── app/ │ ├── src/main/ # 公共主代码播放器、同步、Debrid、插件框架等 │ ├── src/full/ # full 变体专属代码插件、自动更新 │ ├── src/playstore/ # playstore 变体专属代码桩实现、清单裁剪 │ ├── src/main/cpp/ # DOVI 原生桥接CMake 构建 │ └── libs/ # Nuvio 引擎与解码器本地 AAR ├── baselineprofile/ # Baseline Profile 生成模块 ├── ffmpeg-decoder-downmix/# 可选本地 FFmpeg 解码器 ├── DV7/libdovi/ # 预编译 libdovi 静态库4 种架构 └── docs/ # 架构与设计文档如果你想深入理解某块功能架构文档 docs/architecture/mdblist-library.md 是不错的起点应用入口从 MainActivity.kt 开始读即可。八、总结你的第一个 NuvioTV APK 只需要 3 步 安装 Android Studio含 SDK 36 NDK CMake准备 JDK 11git clone https://gitcode.com/gh_mirrors/nu/NuvioTV cd NuvioTV./gradlew :app:assembleFullDebug构建成功后把app/build/outputs/apk/full/debug/下的 APK 传到你的 Android TV 或电视模拟器上安装NuvioTV 的完整源码之旅就从这里正式开始。祝你构建顺利【免费下载链接】NuvioTVOfficial Nuvio Android TV Repository项目地址: https://gitcode.com/gh_mirrors/nu/NuvioTV创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考