Update README.md

This commit is contained in:
dlgt7
2025-04-19 07:34:59 +08:00
committed by GitHub
parent 0e2ab3f9ce
commit f43f8722ae
+91
View File
@@ -326,6 +326,97 @@ https://down.52pojie.cn/Tools/
缝包时的精简:使用Maven工具。
以下是针对合并并精简 TVBox 相关 JAR 包的详细步骤指南,工具和操作均以小白友好方式描述:
---
### **一、准备工作**
1. **工具下载**
- 压缩工具:[7-Zip](https://www.7-zip.org/)(用于解压/压缩 JAR
- 代码反编译工具:[JD-GUI](http://java-decompiler.github.io/)(查看类文件内容)
- 代码混淆工具:[ProGuard](https://github.com/Guardsquare/proguard)(精简和优化代码)
- 文件对比工具:[WinMerge](https://winmerge.org/)(对比重复文件)
- Java 环境:确保已安装 [JDK](https://www.oracle.com/java/technologies/downloads/)(需 `java``jar` 命令)
2. **备份原始 JAR**
- 复制原始 JAR 包到安全位置,避免操作失误导致文件损坏。
---
### **二、合并 JAR 包**
#### **步骤 1:解压 JAR 文件**
1. 创建两个空文件夹,如 `jar1``jar2`
2. 右键点击第一个 JAR 文件,选择 **7-Zip → Extract to "jar1\"**
3. 同理解压第二个 JAR 到 `jar2` 文件夹。
#### **步骤 2:合并文件夹**
1. 新建一个文件夹 `merged`,将 `jar1``jar2` 的内容全部复制进去。
2. **处理重复文件**
- 使用 **WinMerge** 打开 `merged` 文件夹,对比重复文件。
- 若发现同名但内容不同的类(如 `a.class``a.class`),用 JD-GUI 打开二者,判断功能差异,保留更新或更合理的版本。
- 若资源文件(如图片、配置)重复,直接保留一份即可。
#### **步骤 3:删除签名信息**
- 删除 `merged/META-INF` 文件夹内的所有 `.SF``.RSA``.DSA` 文件(避免签名冲突)。
#### **步骤 4:重新打包**
1. 打开命令行,进入 `merged` 目录:
```bash
cd path/to/merged
```
2. 执行打包命令:
```bash
jar cvf merged.jar *
```
- 生成的 `merged.jar` 即为合并后的文件。
---
### **三、精简 JAR 包**
#### **步骤 1:移除冗余依赖**
1. 用 **JD-GUI** 打开原始 JAR,检查是否存在第三方库(如 `com.google.gson`, `okhttp3`)。
2. 如果两个 JAR 包含相同库的不同版本,删除旧版本(如保留 `gson-2.8.9` 删除 `gson-2.6.2`)。
#### **步骤 2:使用 ProGuard 优化**
1. 下载 ProGuard,解压到本地目录(如 `C:\proguard`)。
2. 创建配置文件 `proguard.config`,内容如下:
```proguard
-injars merged.jar # 输入合并后的 JAR
-outjars final.jar # 输出精简后的 JAR
-dontwarn # 忽略所有警告
-keep public class * { # 保留所有公共类和方法
public protected *;
}
```
3. 运行 ProGuard
```bash
java -jar C:\proguard\lib\proguard.jar @proguard.config
```
- 这会移除未使用的类、方法和字段,并优化字节码。
#### **步骤 3:手动删除无用资源**
- 检查 `merged.jar` 中的资源文件(如图片、JSON),删除非必要文件(如多余语言包、测试数据)。
---
### **四、验证与测试**
1. **反编译检查**
- 用 JD-GUI 打开 `final.jar`,确认核心类(如 `MainActivity`)存在且未被混淆破坏逻辑。
2. **功能测试**
- 将 `final.jar` 替换到 TVBox 应用中,运行并测试所有功能是否正常。
---
### **五、常见问题**
1. **类冲突**
- 若运行时报 `ClassNotFoundException` 或 `NoSuchMethodError`,可能是误删了必要类。需在 ProGuard 配置中添加 `-keep` 规则保护相关类。
2. **资源丢失**
- 检查 `res/` 或 `assets/` 目录,确保关键资源(如图标、配置)未被删除。
---
通过以上步骤,你可以合并并精简 JAR 包,显著减小体积。如遇到复杂依赖问题,建议先用小规模测试 JAR 熟悉流程。
## 今天看到一个新的教程:
【教程】Pluto player影视软件新姿势_无密码挂载alist_免费观看原画