一起读源码之TVBOX
一起读源码之TVBOX
Last edited 2023-11-23
password
type
Post
status
Published
date
Apr 15, 2022
slug
summary
tags
工具
category
碎片杂文
icon
notion image
 
notion image
notion image
一、时间轴
2022年6月23日,Github仓库TVBoxOSC 发布,源码基于TVMoive2021.4.10。以下附件为原仓库打包,便于分析解读
2022年7月18日,官仓归档,期间1.6kFork,1.4kStar。基于开源协议,已有多个优秀的衍生分支,如FongMillazyl等。
2022年7月30日,Tangsan99999基于官仓释放出最新爬虫源码,230Fork,47Star以下附件为原仓库打包,便于分析解读
二、源码结构
(一)目录结构
.github 存放Github Action的描述文件。用于指定编译环境及参数,利用Github Action在线编译生产APK文件
.idea AS运行时生成文件存放目录
app (module) Android项目中module相当于Eclipse中的Project,存放项目代码和资源文件、配置目录
build 编译时生成的文件,不需要进行修改
gradle 项目gradle的配置文件,配置文件可以配置gradle-wrapper.jar的网络路径,会自动根据本地缓存来决定是否需要联网下载gradle(Android Studio默认没有启动gradle wrapper的方式,File->Setting->Build,Execution,Deployment->Gradle进行配置)
.gitignore git对项目文件管理的配置文件,添加你不希望发布到git管理的文件;
build.gradle 项目自动编译环境配置文件,Gardle主要的配置文件,是对Project进行配置Gardle进行配置;每个Module中也有一个build.gradle文件对Module的Gradle进行配置,如果没有配置就会使用此Gradle配置文件
gradle.properties gradle运行环境配置文件,如配置gradle的运行模式、运行时jvm虚拟机大小
gradlew gradlew自动化构建的Linux脚本或Mac脚本
gradlew.bat gradlew自动化构建的Windows脚本
settings.gradle 声明当前项目中包含所有的module
(二)APP目录(项目源码)
libs 需用到第三方jar包(比如百度地图,极光推送等),则需要将这些jar包放到此目录下
schemas 初始化SQLite数据库结构
src/mian 功能源码均在此处
src/mian/assets/* 存放ua的数据库,一般存放一些大型的资源文件
src/mian/java/* 存放所有你的项目源代码
src/mian/res/* 存放资源文件,如布局、字符串、图片等,
layout:布局文件;values:字符串文件;drawable:图片;raw:原生文件;values:xml的配置信息;xml:说明本地化的存储路径和网络安全配置
src/mian/AndroidManifest.xml 注册四大组件、添加应用权限等。
 
graph TD Mermaid --> Diagram
TVBOX
EPG
 
七色花
TV_DIY
源自https://github.com/FongMi/TV/release分支
 
自定义内容
APP名
\app\src\main\res\values-zh-rCN\strings.xml
<string name="app_name">五彩田园</string>
 
APP图标
\app\src\main\res\mipmap-hdpi\ic_launcher.png
ic_launcher_foreground.png
 
版本号
\app\build.gradle
leanback { dimension "mode" versionCode 002 versionName "0.0.2"}mobile { dimension "mode" versionCode 002 versionName "0.0.2"}
 
更新路径
\catvod\src\main\java\com\github\catvod\utils\Github.java
public static final int TIMEOUT = 5 * 1000;
public static final String A = "https://raw.githubusercontent.com/";
public static final String B = "https://ghproxy.com/";
public static final String C = "https://gh.011223.xyz/";
public static final String M = "yk1n0rt/TV/release";
 
public static String getJson(boolean dev, String name) { return getUrl("release/dev/" , name + ".json");}
public static String getApk(boolean dev, String name) { return getUrl("release/dev/" , name + ".apk");}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
notion image
notion image
 
  • 工具
  • 小双拼W计划
    Catalog