Repository navigation
v2.2 - 极致二进制瘦身、64位单架构与构建接缝守门
WebDavPlayer v2.2 发布说明
WebDavPlayer v2.2 迎来重大构建工程与打包接缝(Packaging Seam)革新,专注于极致二进制瘦身、64 位现代架构精简与构建质量自动化门禁。发布安装包体积从上一版本的 56.8 MB 断崖式锐减至 6.57 MB(缩减达 88%),为移动网络下载与低端设备运行带来飞跃式的轻量化体验!
🚀 核心更新与工程优化
1. 彻底根除 DEX 死代码膨胀(-40+ MB 字节码)
- 局部化
AppIcons资产接缝:全面剔除体积庞大的androidx.compose.material:material-icons-extended依赖,建立局部显式管理的AppIcons目录,从源头杜绝未引用的数万个矢量图标类编译入包。 - classes.dex 结构缩减:DEX 文件数量从 3 个缩减为单一
classes.dex,未压缩字节码由 44.56 MB 降至 3.91 MB,极大地减少了系统 ART 虚拟机的类加载耗时,冷启动响应显著加快。
2. 全面开启 R8 混淆、资源缩减与精准保护
- 深度代码混淆与资源剔除:在 Release 构建中全面启用
isMinifyEnabled = true与isShrinkResources = true。 - 纵深保护规则(ProGuard Keep Rules):针对 Room 实体/DAO、Media3 Session 回调、Native JNI 桥接接口(
FfmpegAudioDecoder、AsfExtractor、ExtractorInput)、OkHttpInterceptor/Authenticator及 WebSocket 回调建立严格防御规则,确保混淆后网络流媒体回放与本地数据库零异常。
3. 专注 64 位单架构 Native 过滤(-50% Native 体积)
- 剥离过时的 32 位
armeabi-v7a:基于项目minSdk = 29(Android 10) 基线,全面拥抱现役 64 位 ARMv8 架构,在 Release 打包中仅保留arm64-v8a,剥离全部 32 位冗余.so文件,原生动态库体积直降 50%。
4. 优化独立分发 APK 字节码压缩
- 显式配置
dex.useLegacyPackaging = true:针对 GitHub Releases 独立 APK 直装分发场景,强制使用 DEFLATE 算法压缩classes.dex(压缩比达 0.49,由 4.09 MB 压缩至 1.90 MB),直接消除 AGP 默认未压缩模式带来的 2.19 MB 传输体积膨胀,为蜂窝网络下载提供极致轻量体验。
5. 发布体积预算硬性守门门禁
- 自动化门禁闭环:在构建流中引入
verifyReleasePackaging任务与PackagingSeamVerificationTest单元测试,强制约束 Release APK 硬性指标:总包体 <= 7.5 MB(实测 6.57 MB)、单一classes.dex<= 4.0 MB、Native 动态库仅包含arm64-v8a。
📦 安装包文件
- WebDavPlayer-v2.2.apk (6.57 MB) - 专注 arm64-v8a 64 位架构,内置完整 FFmpeg WMA/FLAC 原生软解引擎与深层流媒体管道。