BTTV安卓版开发者指南:从源码编译到自定义构建全攻略

📅 2026/7/4 6:14:32 👁️ 阅读次数 📝 编程学习
BTTV安卓版开发者指南:从源码编译到自定义构建全攻略

BTTV安卓版开发者指南:从源码编译到自定义构建全攻略

【免费下载链接】bttvA mod of the Twitch Android Mobile App adding BetterTTV, FrankerFaceZ and 7TV emotes项目地址: https://gitcode.com/gh_mirrors/bt/bttv

BTTV安卓版是一个为Twitch安卓移动应用添加BetterTTV、FrankerFaceZ和7TV表情的修改版本。这个开源项目让开发者可以自定义构建自己的Twitch客户端,添加更多有趣的功能和表情支持。本文将为你提供完整的开发者指南,帮助你从零开始编译和自定义构建BTTV安卓版应用。

🚀 项目架构与工作原理

BTTV安卓版的构建过程基于对官方Twitch应用的修改。整个项目采用模块化设计,主要分为两个核心部分:

核心架构解析

项目包含三个主要模块:

  1. app模块- 包含修改的核心逻辑,位于mod/app目录
  2. twitch模块- 包含Twitch类的存根,位于mod/twitch目录
  3. consumer模块- 用于恢复某些混淆方法,位于mod/consumer目录

构建流程详解

构建过程遵循以下步骤:

  1. 提取官方Twitch应用的APK文件
  2. 将.dex文件转换为可编辑的.smali代码
  3. 编译自定义Java类并添加到包中
  4. 修改现有的smali文件(通过patch文件)
  5. 重新构建并签名APK文件

🛠️ 环境准备与快速开始

必备工具清单

工具环境变量默认路径
Bash必须在/bin目录-
Git必须在PATH中-
Java JDKJAVA_PATH和JAVAC_PATHjava和javac
jq必须在PATH中-
Android SDKBUILDTOOLS_PATH~/Android/Sdk
ApkToolAPKTOOL_PATH/opt/apktool/apktool.jar
Uber APK SignerUBER_APK_SIGNER_PATH/opt/uber-apk-signer/uber-apk-signer-1.2.1.jar
BaksmaliBAKSMALI_PATH/opt/baksmali/baksmali-2.4.0.jar
build-companionBUILD_COMPANION/opt/build-companion

Docker快速构建方法(推荐新手)

如果你不熟悉Android逆向工程,推荐使用Docker方式进行构建:

  1. 克隆项目仓库

    git clone https://gitcode.com/gh_mirrors/bt/bttv cd bttv
  2. 获取官方Twitch应用APK

    • 从可靠来源下载Twitch 19.0.1版本的APK文件
    • 如果是单个.apk文件,重命名为twitch.apk
    • 如果是多个APK文件,放入ZIP压缩包并重命名为twitch.zip
  3. 运行Docker构建器

    docker run --rm -ti \ -v $(pwd)/twitch.apk:/usr/build/twitch.apk \ -v $(pwd)/.bttv-cache:/usr/build/.bttv-cache \ -v $(pwd)/dist:/usr/build/dist \ -v $(pwd)/patches:/usr/build/patches \ -v $(pwd)/mod:/usr/build/mod \ -v $(pwd)/.all-contributorsrc:/usr/build/.all-contributorsrc \ -v $(pwd)/bttv.manifest.json:/usr/build/bttv.manifest.json \ ghcr.io/bttv-android/builder
  4. 获取构建结果构建完成后,dist目录将包含修补后的APK文件,可以直接安装到Android设备上。

🔧 手动构建详细步骤

步骤1:初始化工作空间

  1. 下载并安装所有必备工具
  2. 获取Twitch应用的APK文件(建议使用adb方式)
  3. 运行初始化脚本:
    ./initworkspace

这个脚本会自动解压APK文件,反编译为smali代码,构建源码并应用monkey patches。

步骤2:构建Java源代码

使用以下命令构建Java源代码:

./buildsource disass

该命令会自动将类文件dex化并进行baksmali处理。建议先浏览脚本内容,以便设置正确的环境变量。

步骤3:构建修改后的应用

构建你的修改:

./build disass

步骤4:安装到设备

打开模拟器或连接Android设备,然后运行:

./install

📁 项目目录结构解析

了解项目结构对于开发者至关重要:

bttv/ ├─ initworkspace - 初始化工作空间 ├─ buildsource - 构建Java源代码 ├─ build - 重新组装disass目录 ├─ decompile - 使用JADX进行反编译 ├─ install - 在设备上安装构建结果 ├─ patches/ - 包含monkey patches ├─ genmonke - 基于disass生成patch的脚本 ├─ disass/ - 反编译目录 │ ├─ AndroidManifest.xml │ ├─ res/ - 资源文件 │ ├─ smali_classes0-10/ - 反编译的app + bttv代码 │ ├─ dist/ │ │ ├─ twitch.apk - 最终的应用 ├─ mod/ - patch的Java源代码 │ ├─ app/ - 修改的核心逻辑 │ ├─ twitch/ - Twitch类的存根

🔄 修改与贡献指南

仅修改源代码

如果你只需要修改Java源代码:

  1. mod/app目录下进行修改
  2. 提交你的代码
  3. 发起Pull Request

重要提示:请仅在bttv包内修改或添加Java文件!其他位置的修改不会被编译。

修改Monkey Patches

如果需要修改smali文件(不在bttv包中):

  1. extracted目录中直接编辑smali文件
  2. 运行以下命令生成patch:
    ./genmonke disass
  3. 提交修改前运行上述命令

Patch系统工作原理

初始化时,disass目录会初始化为一个空的git仓库。反编译完成后会创建第一个commit并标记为"base"。patch文件就是master和base之间的diff结果。

🎯 核心功能开发

表情系统集成

BTTV安卓版支持三种主要表情系统:

  • BetterTTV表情- 通过patches/emotes/目录下的patch文件实现
  • FrankerFaceZ表情- 集成在聊天消息处理逻辑中
  • 7TV表情- 通过自定义的Emote API实现

自动功能开发

项目包含多个实用功能:

  • 自动领取频道点数- 位于patches/autoredeem/目录
  • 睡眠定时器- 位于patches/sleeptimer/目录
  • 关键字高亮- 通过聊天消息处理逻辑实现
  • 匿名聊天- 位于patches/anonchat/目录

🐛 调试与问题排查

常见问题解决

  1. 构建失败:检查所有必备工具是否正确安装
  2. APK签名问题:确保Uber APK Signer配置正确
  3. 反编译错误:确认使用的是Twitch 19.0.1版本APK
  4. 运行时崩溃:检查日志中的具体错误信息

调试技巧

  • 使用adb logcat查看实时日志
  • mod/app/src/中添加调试日志
  • 使用Android Studio连接调试器

📈 最佳实践与贡献规范

代码组织建议

  1. 保持模块化:将相关功能组织在同一个包中
  2. 错误处理:所有API调用都应包含try-catch块
  3. 日志记录:重要操作添加适当的日志输出
  4. 代码复用:避免重复代码,创建工具类

贡献流程

  1. Fork项目仓库
  2. 创建功能分支
  3. 进行修改和测试
  4. 提交Pull Request
  5. 等待代码审查

法律与合规注意事项

⚠️重要提醒

  • 本项目与Twitch Interactive Inc、NightBot LLC、Dan Salvato LLC或SevenTV项目无关
  • 软件按"原样"提供,不提供任何担保
  • 请勿将disass目录提交到git仓库中(出于法律原因)

🔮 未来发展方向

BTTV安卓版项目持续发展,未来可能的方向包括:

  • 支持更多第三方表情平台
  • 增强自定义主题功能
  • 改进性能优化
  • 添加更多实用工具功能

🤝 加入社区

项目拥有活跃的开发者社区,你可以在Crowdin上贡献翻译,或在GitHub上提交Issue和Pull Request。

通过本文的指南,你应该已经掌握了BTTV安卓版的完整构建流程和开发方法。无论是想要自定义自己的Twitch客户端,还是为项目贡献代码,现在都可以自信地开始你的开发之旅了!记住,开源项目的成功离不开社区的贡献,期待看到你的创意和代码!🚀

【免费下载链接】bttvA mod of the Twitch Android Mobile App adding BetterTTV, FrankerFaceZ and 7TV emotes项目地址: https://gitcode.com/gh_mirrors/bt/bttv

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考