安卓三方库

Telegram Android源码编译

2018-09-01  本文已影响1256人  流浪四海

一. 源码下载

编译Telegram Android之前,需要从GitHub下载 GitHub Telegram Android 源码;同时还需要下载语音/视频通话模块:GitHub libtgvoip  ; Telegram团队每个负责一端,所有源码挂载在不同负责人名下。

二. 编译准备

1. 编译工具

本文是基于Android Studio 3.1.4

2. 支持NDK编译

最新NDK编译需要NDK和CMake插件,通过CMake解析来CMakeList.txt文件,进行NDK编译。

3. 翻墙准备

项目依赖的firebase包是需要翻墙的。

三. 编译过程

1. Android Studio导入Telegram 源码

在导入之前,可以开启全局的VPN代理,进行翻墙下载相关依赖包。

2.导入 libtgvoip 模块

在Android Studio 项目 终端输入:git submodule update --init --recursive  命令,导入 libtgvoip 模块。libtgvoip 模块 是 Telegram 大模块的子模块,通过相关命令进行初始化,导入子模块。

3.  google-services.json

Telegram Android添加了 firebase 依赖,用于应用性能监控。 Firebase 会依赖 google-service.json。在Telegram Android 中不存在google-services.json,所以需要根据【firebase注册及使用流程】生成并导入google-services.json。

4.  包名问题

根本原因:Firebase 配置的 ApplicationID 为: org.telegram.messenger,跟当前的: org.telegram.messenger.beta 不同,导致错误。

解决方案:在build.gradle中注释buildTypes相关语句。

5.  ffmpeg 编译错误

根本原因:编译ffmpeg的ndk版本较低,导致posix_memalign编译错误。

解决方案:修改build.gradle中的externalNativeBuild,把Android NDK版本变为:android-17

buld.gradle

6. 签名证书

根本原因:TMessagesProj/config/中不存在release.keystore

解决方案:按照【Android 签名证书生成】生成签名证书,然后修改 build.gradle 和 gradle.properties 

build.gradle gradle.properties 

7. 应用一启动就崩溃

根本原因:没有填写在Telegram申请的AppID等相关信息。

解决方案:在在BuildVars中填写相关信息。按照后续的【Telegram APP注册流程】【HOCKEY APP注册流程】注册,产生APP_ID、APP_HASH、HOCKEY_APP_HASH,然后填写到BuildVars中。

8. 启动注册/登陆 Telegram

根本原因:Telegram的服务端在国外,国内用户无法连接。

解决方案:需要给手机配置VPN代理,才能连上Telegram的相关服务

四. 其它

1. git submodule 

git submodule add 仓库地址 路径                  //给当前工程添加submodule

git submodule update --init --recursive         //使用git clone下来的工程中带有submodule

2. LOCAL_SHORT_COMMANDS

在Windows或Linux中,因为命令行长度的限制,可能会导致编译失败。

通过在Android.mk中添加"LOCAL_SHORT_COMMANDS=true"命令,来编译指定跳过编译错误;通过在Application.mk中添加"APP_SHORT_COMMANDS=true"可以顺利编译、链接。

3. Firebase注册及使用流程

Firebase的版本不同,导致firebase 页面流程可能有细微差别。

1) 翻墙打开Firebase

2) 选择一种方案

3) google邮箱登陆

4) 添加项目

图3

注意:项目名称最好和你的android project Name保持一致;地区按照你所在地区选择就可以。

5) 添加应用

在项目概述界面,选择Android,关联项目的ApplicationId,根据需要配置别名和证书指纹。参考文章[5]

6) 下载“google-services.json"

点击下载“google-services.json",放到对应的位置。

ba

4. Telegram APP注册流程

可以到 Telegram API 选择 https://my.telegram.org ,在Telegram中注册 APP。

注意

1) 注册的时候,填写的手机号,带国家区号。如:中国,则:+8614555555555

2) 验证码发送,如果已经在Telegram注册过,验证码则通过Telegram发送。

5. HOCKEY APP注册流程

HockeyApp 是一个最佳的方法用来分发你的程序并收集应用的崩溃报告,可以去:HockyApp

注册App并产生证书,填写到 :HOCKEY_APP_HASH中。

HOCKEY_APP_HASH ="your-hockeyapp-api-key-here";

6. Android 签名证书生成

1) 在Android Studio 的 生成签名包中,有生成签名证书的界面。

2) 获取签名证书的指纹命令

keytool -list -v -keystore donkor.jks

五. 参考

1. Telegram源码之android客户端配置

2. Telegram(电报)编译

3. google-services.json 配置

4. git submodule

5. android studio生成签名文件,以及SHA1和MD5值

6. 'posix_memalign'错误

上一篇下一篇

猜你喜欢

热点阅读