DrKLO/Telegram

效率与系统工具

Telegram 官方 Android 客户端源码,适合想基于它构建或研究聊天应用的人,不适合当作私有聊天工具。

30,161
10,340
Java
GPL-2.0
创建于 13 年前

只有真正要做 Android 聊天产品、或想研究成熟客户端实现的人值得投入。它不会让你的消息更快送达,也不是开箱即用的隐私聊天工具。

解决什么问题

假设你要做一个聊天产品,或者想弄清 Telegram Android 客户端是怎么组织的。目标是产出能以自己的名义发布、带自己的推送和构建标识的 APK。从零开始意味着要重做会话列表、多账号、媒体处理和一大片协议接口,而且很快就会撞上客户端对 Telegram 基础设施的依赖。这份源码改变的是起步方式:你申请自己的 api_id,用自有密钥和配置替换仓库里的占位内容,再编译出与官方版同源的 Android 客户端。得到的是一个能连上 Telegram 的可用客户端,而不是空项目。

有什么不同

这是 Telegram Android 客户端的官方源码,不是第三方套壳。正如 README 所说,你可以基于它编译并分发这个应用,并且能直接修改客户端代码。代价是你也要接管官方发布配置:仓库自带占位的 release.keystore、占位的 google-services.json,以及为可复现构建而填好的 BuildVars.java。要发布自己的 APK,就得换成自己的密钥和 Firebase 项目配置。

更重要的边界是:“修改这个应用”和“运营一个独立聊天服务”不是一回事。README 的开发者规则要求使用 Telegram 的 api_id 注册流程,禁止用 Telegram 作为应用名称、也不要用其标准图标,并请开发者公开自己的代码以遵守许可证。品牌、密钥、许可和自建用户群都由你承担,而连接 Telegram 仍要遵守 Telegram 的规则。仓库另附 API 与 MTProto 文档,帮助理解底层协议,但源码是客户端,不是可自托管的服务端。

谁值得试

适合:需要带自己标识、兼容 Telegram 的 Android 客户端团队,或想研究大型 Java 聊天应用如何组织的开发者。当你需要控制界面、功能或分发方式,并且能遵守 Telegram 的 API 与品牌规则时,fork 才有意义。不适合:想要私有自包含聊天系统的人,或把它当成周末就能克隆完的玩具项目的人;仅替换占位凭据和接入 Firebase 就已经意味着你有一套发布流程。只想读协议的人应直接看协议手册。

使用条件与边界

按编译指南,需要 Android Studio 2025.1.4、Android NDK 27.2.12479018 和 Android SDK 36,并拉取仓库的子模块。构建还要求你自己的发布 keystore,以及两个 Firebase Android 应用和对应的 google-services.json;各文件放哪里在项目设置说明里写得很细。在构建出反映自己应用而非占位配置的产物之前,预计要改 keystore、Gradle 属性、Firebase 配置和 BuildVars.java。

长期维护的负担更大。这是一个大型 Java Android 客户端,并与 Telegram API 绑定,你需要跟进上游变化,并按指南指定的工具链版本重新构建。本地化不在这个仓库进行,README 把翻译工作指向 Telegram 专门的翻译站点。如果你的目标是独立聊天服务,还要先确认应用如何满足项目说明中链接的 Telegram API 和安全要求。

HotRepo 点评

HotRepo 只有一条带日期的观察:2026-10-25 该项目有 30,157 星,当天 +10,并出现在当日 Trending 榜单上。仅此一天记录,无法据此判断关注度能否持续。项目本身创建于 2013 年。投入前先读 README 的开发者条件,确认你计划的应用名、图标和代码公开方式都符合要求。

项目源码与说明

Hacker News 讨论

Telegram source code for latest release
▲ 6 · 0 条评论 · 2014年12月23日
Telegram updated its Android source on GitHub (After a while)
▲ 4 · 0 条评论 · 2016年10月16日
Telegram Issue #384 – Backup or archive chat history
▲ 3 · 0 条评论 · 2014年12月13日

本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。