美文网首页安卓三方库
Telegram Android源码编译

Telegram Android源码编译

作者: 流浪四海 | 来源:发表于2018-09-01 16:35 被阅读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'错误

    相关文章

      网友评论

        本文标题:Telegram Android源码编译

        本文链接:https://www.haomeiwen.com/subject/wukswftx.html