以2.2.5版本为例
一、下载FongMi版仓库
仓库地址:https://github.com/FongMi/TV
首先修改gradle/wrapper/gradle-wrapper.properties,用于加速gradle的下载:
将
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
改成
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.4.2-bin.zip
二、修改部分代码
用Andirod Studio打开,需要配置两处地方。
1、file--setting-- --Android SDK,安装Android14.0(api34),SDK tool如图所示:
2、file--setting-- --Gradle。Gradle指定好具体位置,安装Gradle JDK为JDK17(或者JDK17,打包apk必须17)
建议下载amazon-corretto版本:https://corretto.aws/downloads/resources/17.0.9.8.1/amazon-corretto-17.0.9.8.1-windows-x64-jdk.zip
3、解决加速及依赖问题
在同步的过程中,会出现下载依赖慢,某些包下载不了等问题,解决方法如下:
项目根目录下setting.gradle文件中,添加aliyun的镜像,放在前面,
maven { setUrl("https://maven.aliyun.com/repository/central") }
maven { setUrl("https://maven.aliyun.com/repository/jcenter") }
maven { setUrl("https://maven.aliyun.com/repository/google") }
maven { setUrl("https://maven.aliyun.com/repository/gradle-plugin") }
maven { setUrl("https://maven.aliyun.com/repository/public") }
4、内置播放源
4.1,找到点播源的加载位置,TV\app\src\main\java\com\fongmi\android\tv\api\config\LiveConfig.java 文件
修改hasUrl
方法。
public static boolean hasUrl() {
// 由于直播按钮依赖config里的url参数,内置后判断未空不现实直播按钮,这里改成不判断。
return true; // getUrl() != null && getUrl().length() > 0;
}
修改loadConfig
方法。
String url = config.getUrl();
if (TextUtils.isEmpty(url)) {
url = "https://www.mylucas.com.cn/static/tvbox/videoSourceTrial.json";
// 添加以下代码,解决内置源时,投屏播放问题,给定一个配置,写入本地数据库,标记一个name(名字“源已内置”可以随便取,但一定要有,type为1,表示直播)
Config.find(url, 1).name("源已内置").update();
}
parseConfig(Decoder.getJson(url), callback);
4.2、找到直播源的加载位置,TV\app\src\main\java\com\fongmi\android\tv\api\config\VodConfig.java文件修改loadConfig
方法。
String url = config.getUrl();
if (TextUtils.isEmpty(url)) {
url = "https://www.mylucas.com.cn/static/tvbox/videoSourceTrial.json";
// 添加以下代码,解决内置源时,投屏播放问题,给定一个配置,写入本地数据库,标记一个name(名字“源已内置”可以随便取,但一定要有,type为0,表示点播)
Config.find(url, 0).name("源已内置").update();
}
checkJson(Json.parse(Decoder.getJson(url)).getAsJsonObject(), callback);
4.3,修改设置弹框里的初始化逻辑,避免暴露内置源的地址到设置框。修改代码TV\app\src\mobile\java\com\fongmi\android\tv\ui\dialog\ConfigDialog文件里的initView
方法
private void initView() {
binding.name.setText(getConfig().getName());
// 这里判断有名字就不回写到设置框里,例如名字是:源已内置
if (TextUtils.isEmpty(getConfig().getName())) {
binding.url.setText(ori = getConfig().getUrl());
}
binding.input.setVisibility(edit ? View.VISIBLE : View.GONE);
binding.url.setSelection(TextUtils.isEmpty(ori) ? 0 : ori.length());
}
5、打包,选择build-generate signed apk,创建一个签名文件,选择版本类型,手机版选择mobileJavaArm64_v8aRelease版本。
三、参数设置
1、TV\app\src\main\res\values-zh-rCN\strings.xml设置app_name,或者在编辑器里面直接搜索关键词name="app_name"
<!-- App -->
<string name="app_name">Lucas2.2.4</string>
<string name="app_exit">再按一次返回键退出</string>
2、TV\app\src\main\java\com\fongmi\android\tv\Setting.java取消自动更新功能
public static boolean getUpdate() {
// return Prefers.getBoolean("update", true);
return false;
}
3、TV\app\build.gradle设置打包的apk名字,如下,打包名字mobile-java-arm64_v8a_lucas_2.2.5.apk
android.applicationVariants.configureEach { variant ->
variant.outputs.configureEach { output ->
outputFileName = "${variant.productFlavors[0].name}-${variant.productFlavors[1].name}-${variant.productFlavors[2].name}_lucas_2.2.4.apk"
}
}