Este é o cliente Android do Delta Chat. Está disponível no F-Droid e na Google Play Store. O APK também pode ser baixado em get.delta.chat.
Para a biblioteca principal e outras informações comuns, consulte a biblioteca principal do Delta Chat.
Para dicas gerais de contribuição, consulte CONTRIBUTING.md.
Ao verificar deltachat-android , certifique-se também de verificar o subprojeto deltachat-core-rust :
$ git clone --recursive https://github.com/deltachat/deltachat-android
ou posteriormente por git submodule update --init --recursive
. Se você fizer isso em seu diretório inicial, isso resultará na pasta ~/deltachat-android
o que é ótimo. O repositório contém o ambiente de desenvolvimento Nix descrito no arquivo flake.nix
. Se você não tiver o Nix instalado, a maneira mais fácil é usar o Determinate Nix Installer, que instala o recurso Nix com Flakes habilitado imediatamente e pode ser desinstalado de forma limpa com /nix/nix-installer uninstall
quando você não precisar dele não mais.
Depois de configurar o recurso Nix com Flakes, inicie o shell do ambiente de desenvolvimento:
nix develop
O ambiente de desenvolvimento Nix contém Rust com conjuntos de ferramentas de compilação cruzada e Android SDK.
Para construir um APK, execute as 2 etapas a seguir. Observe que a primeira etapa pode levar algum tempo para ser construída para todas as arquiteturas. Opcionalmente, você pode ler o primeiro bloco de comentários no script ndk-make.sh
para obter dicas sobre como construir para uma arquitetura específica.
$ scripts/ndk-make.sh
$ ./gradlew assembleDebug
Os arquivos APK resultantes podem ser encontrados em build/outputs/apk/gplay/debug/
e build/outputs/apk/fat/debug/
.
Outra maneira de construir APK é usar Dockerfile
fornecido com Docker ou Podman. Podman é um substituto imediato para Docker que não requer privilégios de root.
Se você ainda não configurou o Docker ou o Podman, leia como configurar o Podman abaixo. Se você não quiser usar Docker ou Podman, leia como instalar manualmente o ambiente de compilação.
Primeiro, construa a imagem deltachat-android
executando
podman build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
ou
docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
Em seguida, execute a imagem:
podman run --userns=keep-id -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
ou
docker run -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
Você pode sair do contêiner com Ctrl+D ou digitando exit
e entrando novamente com docker start -ia deltachat
ou podman start -ia deltachat
.
Dentro do contêiner, instale conjuntos de ferramentas e construa a biblioteca nativa:
deltachat@6012dcb974fe:/home/app$ scripts/install-toolchains.sh
deltachat@6012dcb974fe:/home/app$ scripts/ndk-make.sh
Em seguida, crie um APK:
deltachat@6012dcb974fe:/home/app$ ./gradlew assembleDebug
A execução de ./gradlew assembleDebug
dentro do contêiner falha com The SDK directory '/home/user/Android/Sdk' does not exist.
:
O problema é que o Android Studio (fora do contêiner) cria automaticamente um arquivo local.properties
com um conteúdo como sdk.dir=/home/username/Android/Sdk
, então, Gradle-inside-the-container procura o Sdk em /home/username/Android/Sdk
, onde não consegue encontrá-lo. Você poderia:
sdk.dir
./gradlew assembleDebug
de fora do contêiner (no entanto, pode haver problemas de incompatibilidade se versões diferentes forem instaladas dentro e fora do contêiner) A execução da imagem falha com ERRO[0000] The storage 'driver' option must be set in /etc/containers/storage.conf, guarantee proper operation.
:
Em /etc/containers/storage.conf, substitua a linha: driver = ""
por: driver = "overlay"
. Você também pode definir a opção driver
para outra coisa, basta configurá-la para algo . Leia sobre as opções possíveis aqui.
Estas instruções foram testadas apenas em uma máquina Manjaro até agora. Se algo não funcionar, abra um problema.
Primeiro, instale o Podman.
Então, se você deseja executar o Podman sem root, execute:
sudo touch /etc/subgid
sudo touch /etc/subuid
sudo usermod --add-subuids 165536-231072 --add-subgids 165536-231072 yourusername
(substitua yourusername
pelo seu nome de usuário). Consulte https://wiki.archlinux.org/index.php/Podman#Rootless_Podman para obter mais informações.
Para configurar o ambiente de compilação manualmente:
Em seguida, em ambos os casos, instale o Rust usando os conjuntos de ferramentas Rustup e Rust para compilação cruzada executando scripts/install-toolchains.sh
.
Em seguida, configure a variável de ambiente ANDROID_NDK_ROOT
para apontar para o diretório de instalação do Android NDK, por exemplo, adicionando-o ao seu .bashrc
:
export ANDROID_NDK_ROOT= ${HOME} /Android/Sdk/ndk/[version] # (or wherever your NDK is) Note that there is no `/` at the end!
export PATH= ${PATH} : ${ANDROID_NDK_ROOT} /toolchains/llvm/prebuilt/linux-x86_64/bin/: ${ANDROID_NDK_ROOT}
Depois disso, chame scripts/ndk-make.sh
no diretório raiz para construir core-rust. Depois execute o projeto no Android Studio. O projeto requer API 25.
Com sorte, é isso :) - se não, leia como configurar um ambiente de desenvolvimento adequado.
Algumas bibliotecas exigidas pelo Android Studio podem estar faltando em máquinas Linux de 64 bits Fonte], então para Ubuntu execute $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
e para Fedora execute $ sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686
.
Baixe o Android Studio em https://developer.android.com (android-studio-ide-...-linux.zip) e descompacte o arquivo que contém uma única pasta chamada android-studio
; mova esta pasta, por exemplo, para ~/android-studio
.
Para iniciar o Android Studio pela primeira vez, abra um terminal, navegue até ~/android-studio/bin
, execute ./studio.sh
e use todos os valores padrão do assistente.
O Android Studio agora pergunta se você deseja abrir um projeto existente; escolha ~/deltachat-android
conforme criado no capítulo "Build" (o Android Studio começa a compilar o projeto, no entanto, faltam algumas etapas antes que isso seja bem-sucedido).
Se faltarem componentes, clique na mensagem de erro correspondente e instale, por exemplo. SDKs necessários e as "Build-Tools" (você também deve encontrar a opção em "Tools / Android / SDK Manager / SDK Platforms"). Agora a compilação deve ser bem-sucedida – mas o aplicativo ainda sente falta da parte nativa.
Baixe o Android NDK dos arquivos NDK e extraia o arquivo contendo uma única pasta chamada algo como android-ndk-r23b-linux
; mova esta pasta, por exemplo, para ~/android-ndk
.
Exporte o caminho da pasta para o seu ambiente como ANDROID_NDK_ROOT
e adicione-o a PATH
. Você pode conseguir isso, por exemplo, adicionando isso ao seu .bashrc
export ANDROID_NDK_ROOT= ${HOME} /android-ndk
export PATH= ${PATH} : ${ANDROID_NDK_ROOT} /toolchains/llvm/prebuilt/linux-x86_64/bin/: ${ANDROID_NDK_ROOT}
Você não precisa necessariamente de um dispositivo de teste dedicado. Faça backup da sua conta atual primeiro, talvez haja alguns erros na troca de contas.
Você pode executar benchmarks em um dispositivo emulado ou em um dispositivo real. Você precisa de pelo menos Android 9. Para obter melhores resultados de benchmark, você deve executar o benchmark em um dispositivo real e certificar-se de que o núcleo seja compilado no modo de lançamento.
Desative as animações no seu dispositivo, caso contrário o teste poderá falhar: em "Opções do desenvolvedor" defina todas as "Escala de animação da janela", "Escala de animação de transição" e "Escala de duração do animador" para 0x
No Android Studio: "Arquivo"/"Sincronizar projeto com arquivos gradle"
No Android Studio: "Run" / "Edit settings" / "+" / "Android Instrumented test": Selecione uma classe específica ou selecione "All in Module" / "OK" / Selecione sua configuração na barra de ferramentas / Clique no botão botão verde "executar" na barra de ferramentas para executar os testes
Quando o benchmark for concluído, você obterá um resultado como MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
. Você pode colar 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
em uma célula de uma planilha do LibreOffice, fazer "Dados" / "Texto para colunas", escolher ,
como separador, clicar em "OK ", e crie um diagrama.
Para alguns testes, você precisa fornecer as credenciais de uma conta de e-mail real. Você tem 2 maneiras de fazer isso:
(Recomendado): Coloque-os no arquivo ~/.gradle/gradle.properties (crie-o se não existir):
[email protected]
TEST_MAIL_PW=youpassword
Ou defina-os por meio de variáveis de ambiente.
Os metadados e changelogs do Android são traduzidos usando o Weblate.
Muitas das classes de interface do usuário eram baseadas no Android Signal messenger quando o portamos da antiga base Telegram-UI em 2019. Enquanto isso, o desenvolvimento divergiu em muitas áreas.
Licenciado GPLv3+, consulte o arquivo LICENSE para obter detalhes.
Copyright © 2022 Colaboradores do Delta Chat.