AI时代人人都是开发者,给大家分享一套可直接使用的安卓TV应用商店开源源码,配套完整后台,适配所有安卓电视、机顶盒设备,开箱即用,二次开发也很轻松。
这套源码专门针对TV大屏和遥控器操作优化,不像手机端APP适配粗糙,操作流畅、界面整洁,1080P、4K屏幕都能完美兼容。源码无加密、无后门、无捆绑,代码结构清晰,不管是个人学习还是企业落地都很合适。

带后台
本教程分两步:先搭建服务端(后台 + API + 数据库),再编译 APK(TV 端应用)。
第一部分:搭建服务端
1.1 环境要求
| 项目 | 要求 |
| 操作系统 | Linux 服务器(CentOS 7+ / Ubuntu 18+)或 Windows Server |
| Node.js | v18.x ~ v20.x LTS(推荐 v20) |
| 内存 | ≥ 512MB |
| 端口 | 默认 3000(可改) |
| 存储 | ≥ 1GB(用于存放上传的 APK 和数据库) |
1.2 服务器安装 Node.js
方式 A:nvm(推荐,便于版本管理)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20
方式 B:系统包管理器(Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs
方式 C:系统包管理器(CentOS/RHEL)
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - sudo yum install -y nodejs
验证安装:
node -v # 应显示 v20.x.x npm -v # 应显示 10.x.x
1.3 上传项目文件
需要上传的文件清单:
tv-app-store/
├── server.js ← 后端核心(必传)
├── package.json ← 依赖声明(必传)
├── data/ ← 数据库目录(必传,可空,启动时自动初始化)
└── public/ ← 前端页面目录(必传,整个文件夹)
├── admin/index.html ← 管理后台
└── tv/index.html ← TV 商店页面
不需要上传:node_modules/、android/、www/、build-apk.js、capacitor.config.json。
上传命令示例(在本地电脑执行):
# 在服务器上创建目录 ssh root@你的服务器IP "mkdir -p /opt/tv-store/data /opt/tv-store/public/uploads" # 上传核心文件 scp server.js package.json root@你的服务器IP:/opt/tv-store/ scp -r public root@你的服务器IP:/opt/tv-store/
也可以用 FTP/SFTP 工具(FileZilla、WinSCP)直接拖文件。
1.4 安装依赖并启动
SSH 连上服务器:
ssh root@你的服务器IP cd /opt/tv-store npm install --omit=dev # 只装生产依赖 node server.js
看到以下输出说明成功:
✅ 数据库初始化完成 🚀 TV 应用商店服务已启动: http://0.0.0.0:3000
按 Ctrl+C 先停掉,下一步用 PM2 守护进程。
1.5 用 PM2 守护进程 + 开机自启
# 全局安装 PM2 npm install -g pm2 # 启动服务 pm2 start server.js --name tv-store # 保存进程列表(重启服务器后自动恢复) pm2 save # 生成开机自启脚本(按提示执行它输出的那条命令) pm2 startup
1.6 开放防火墙端口
CentOS(firewalld):
firewall-cmd --add-port=3000/tcp --permanent firewall-cmd --reload
Ubuntu(ufw):
ufw allow 3000/tcp
云服务器:还需在控制台安全组规则里放行 3000 端口。
1.7 验证服务端
在你本地电脑的浏览器打开:
| 入口 | 地址 |
| 管理后台 | http://服务器IP:3000/admin |
| TV 商店 | http://服务器IP:3000/tv |
| 接口测试 | http://服务器IP:3000/api/stats |
管理后台密码:000
密码在
server.js第 354 行:const ADMIN_PASSWORD = '000';
如果三个都能正常打开,服务端搭建完成。
如果宝塔安装,文件夹上传wwwroot目录,直接后台添加,服务商和安全里面放行3000端口即可

第二部分:编译 APK
2.1 环境要求
| 项目 | 要求 |
| 操作系统 | Windows 10/11、macOS 或 Linux |
| JDK | JDK 21(Capacitor 要求 source 21) |
| Android SDK | API 34+,Build-Tools 34.x |
| Gradle | 项目自带 wrapper(无需单独装) |
| 推荐工具 | Android Studio(Hedgehog 或更新版本) |
2.2 修改 TV 前端的服务器地址
打开 tv-app-store/www/index.html,找到第 524 行附近的 API_SERVER:
// ⚙️ API 服务器地址 — 部署后修改为你的后端 IP:端口 const API_SERVER = 'http://你的服务器IP:3000';
必须改成第一步搭建好的服务端地址,否则 APK 里调不到数据。
2.3 同步到 Android 项目
在项目根目录执行:
cd tv-app-store npx cap sync android
这会把 www/ 的最新内容复制到 android/app/src/main/assets/public/。
如果你直接用 Android Studio 打包,也可以手动把 www/index.html 复制到 android/app/src/main/assets/public/index.html。
2.4 方式 A:用 Android Studio 编译(推荐,最简单)
- 打开 Android Studio 官网 下载安装
- 启动 Android Studio → Open → 选择 tv-app-store/android/ 目录
- 等待 Gradle 自动同步完成(首次约 5-10 分钟,会下载依赖)
- 顶部菜单 → Build → Build Bundle(s)/APK(s) → Build APK(s)
- 编译完成后,点击右下角 locate 链接,或去以下路径找 APK:
tv-app-store/android/app/build/outputs/apk/debug/app-debug.apk
Windows(PowerShell 或 Git Bash):
# 设置环境变量 $env:JAVA_HOME = "C:\Program Files\Java\jdk-21" $env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" cd tv-app-store\android .\gradlew.bat assembleDebug
macOS / Linux:
export JAVA_HOME=/path/to/jdk-21 export ANDROID_HOME=/path/to/android-sdk cd tv-app-store/android ./gradlew assembleDebug
编译完成后 APK 在:
tv-app-store/android/app/build/outputs/apk/debug/app-debug.apk
2.6 安装 APK 到电视/机顶盒
方式 A:U 盘安装
- 把 app-debug.apk 拷到 U 盘根目录
- U 盘插到电视/机顶盒 USB 口
- 在电视上用文件管理器打开 U 盘 → 点击 APK → 安装
方式 B:adb 命令安装
adb connect 电视IP:5555 # 需电视开启 adb 调试 adb install -r app-debug.apk
方式 C:模拟器安装
- 雷电模拟器:直接拖 APK 到模拟器窗口
- 或:adb install -r app-debug.apk
2.7 Android TV 桌面图标
APK 安装后,在 Android TV 桌面(或机顶盒的"应用"列表)会出现"TV AppStore"图标,遥控器选中即可启动。
第三部分:常见问题
Q1 APK 打开后白屏 / 没数据
- 检查 www/index.html 里的 API_SERVER 地址是否改对
- 检查服务器防火墙是否放行 3000 端口
- 用电视内置浏览器访问 http://服务器IP:3000/api/home,能返回 JSON 才算通
Q2 点安装不弹出下载
- TV 系统需允许"安装未知来源应用"
- 路径:设置 → 安全 → 未知来源 → 允许 TV AppStore
- Android 8+ 首次安装会弹窗引导,点"设置"打开开关即可
Q3 图片不显示
- APK 内的相对路径已通过 resolveUrl() 拼成完整地址
- 如仍不显示,检查 API_SERVER 是否带 http:// 前缀
Q4 Gradle 编译失败 "无效的源发行版:21"
- JDK 版本不对,需 JDK 21(不是 17 也不是 8)
- Android Studio: File → Project Structure → SDK Location → JDK Location 改为 JDK 21
Q5 端口被占用
# 查看占用 3000 端口的进程 lsof -i:3000 # Linux/macOS netstat -ano | findstr :3000 # Windows # 杀掉后重启 PM2 pm2 restart tv-store
Q6 想改端口
编辑 server.js,找到 app.listen(3000 改成其他端口,同步改防火墙规则和 APK 里的 API_SERVER。
全部打勾,部署完成。
整套源码完全免费、无版权限制,大家可以随意修改、自用、无任何捆绑与加密限制。禁止私自倒卖售卖,尊重开源分享初衷!使用源码造成的一切风险跟作者无关。
本文作者为dwf135,转载请注明。



1