文档

港澳台直播 开发文档

这个项目是什么

港澳台直播是一个 Android TV 直播播放器(Kotlin + Media3/ExoPlayer),内置香港、澳门、台湾三个分组共 55 个频道,装上就能用遥控器换台。项目完全免费可用(每天 1 小时,可升级会员),无广告、无第三方 SDK,播放源在 App 内实时解析,不依赖任何中转服务——它只是一个播放器外壳,不存储、不转播任何视频内容。

面向二次开发者的定位:一个「遥控器优先」的电视直播壳工程,可以换频道源、改授权对接、调整交互模型。

技术栈与架构

仓库结构

路径 作用
app/build.gradle.kts 应用模块构建脚本:SDK 版本、签名配置、Media3 依赖
app/src/main/ Kotlin 源码与资源(唯一源码模块)
app/proguard-rules.pro 混淆规则(release 当前 isMinifyEnabled = false)
apk/ 各版本 APK 存档(当前为 gangao-tv-v9.3.0.apk)
assets/ banner.png、icon.png 等宣传与图标素材
build.gradle.kts / settings.gradle.kts / gradle.properties 根工程与 Gradle 配置(仓库未附带 gradlew wrapper)
CHANGELOG.md 逐版本更新日志(v1.x 起,当前记录到 v9.3.0)
LICENSE / README.md MIT 许可与项目说明

本地开发环境

仓库没有 gradlew wrapper,需要本机已装 Android SDK 与 Gradle:

git clone http://127.0.0.1:3200/jinghui/gangao-tv.git
cd gangao-tv
gradle assembleDebug        # 调试包,无需签名配置
gradle assembleRelease      # 正式包,读取 keystore.properties

app/build.gradle.kts 从仓库根目录的 keystore.properties 读取 storeFile、storePassword、keyAlias、keyPassword(该文件已 .gitignore,缺失时不影响 debug 构建,只是 release 拿不到签名)。versionCode / versionName 同样在这个文件的 defaultConfig 里(当前 versionCode 961、versionName 9.6.1)。

配置项说明

配置键 当前值 含义
applicationId / namespace com.iptv807.tv 包名
minSdk 21 Android 5.0 及以上
compileSdk / targetSdk 35 编译与目标 SDK
versionCode / versionName 961 / 9.6.1 应用版本(发版时必须与 CHANGELOG、apk/ 同步)
keystore.properties 仓库根目录、不入库 release 签名四项
media3-* 1.3.1 ExoPlayer 全家桶版本
接入服务端 https://auth.88531.cn 安装登记 / 心跳 / 版本检查 / 卡密校验,X-Api-Key 请求头

权限方面,v9.3.0 起新增 REQUEST_INSTALL_PACKAGES、POST_NOTIFICATIONS(应用内下载 APK 并拉起安装所需)。

构建与发布

gradle assembleRelease    # 产物在 app/build/outputs/apk/release/

发布一个新版本前依次完成三件事:versionCode +1 并更新 versionName;在 CHANGELOG.md 追加该版本条目;把新 APK 放入 apk/ 目录并同步更新 Releases 页。

签名链路:keystore.properties(存在时)→ signingConfigs.release → buildTypes.release;release 未开混淆(isMinifyEnabled = false),proguard-rules.pro 保留但未实际生效。

二次开发要点

相关链接