Il s'agit du client Android pour Delta Chat. Il est disponible sur F-Droid et sur le Google Play Store. L’APK peut également être téléchargé depuis get.delta.chat.
Pour la bibliothèque principale et d'autres informations courantes, veuillez vous référer à la bibliothèque principale de Delta Chat.
Pour des conseils généraux de contribution, veuillez vous référer à CONTRIBUTING.md.
Lors de la vérification deltachat-android , assurez-vous également de consulter le sous-projet deltachat-core-rust :
$ git clone --recursive https://github.com/deltachat/deltachat-android
ou plus tard par git submodule update --init --recursive
. Si vous faites cela dans votre répertoire personnel, cela donne le dossier ~/deltachat-android
ce qui est très bien. Le référentiel contient l'environnement de développement Nix décrit dans le fichier flake.nix
. Si Nix n'est pas installé, le moyen le plus simple est d'utiliser le programme d'installation Determinate Nix qui installe Nix avec la fonctionnalité Flakes activée par défaut et peut être désinstallé proprement avec /nix/nix-installer uninstall
une fois que vous n'en avez plus besoin. plus.
Une fois que vous avez configuré la fonctionnalité Nix with Flakes, démarrez le shell de l'environnement de développement :
nix develop
L'environnement de développement Nix contient Rust avec des chaînes d'outils de compilation croisée et le SDK Android.
Pour créer un APK, exécutez les 2 étapes suivantes. Notez que la première étape peut prendre un certain temps pour être construite pour toutes les architectures. Vous pouvez éventuellement lire le premier bloc de commentaires dans le script ndk-make.sh
pour obtenir des indications sur la manière de créer une architecture spécifique.
$ scripts/ndk-make.sh
$ ./gradlew assembleDebug
Les fichiers APK résultants peuvent être trouvés dans build/outputs/apk/gplay/debug/
et build/outputs/apk/fat/debug/
.
Une autre façon de créer un APK consiste à utiliser Dockerfile
fourni avec Docker ou Podman. Podman est un remplacement immédiat de Docker qui ne nécessite pas de privilèges root.
Si vous n'avez pas encore configuré Docker ou Podman, lisez comment configurer Podman ci-dessous. Si vous ne souhaitez pas utiliser Docker ou Podman, lisez comment installer manuellement l'environnement de construction.
Tout d’abord, construisez l’image deltachat-android
en exécutant
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
Ensuite, exécutez l'image :
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
Vous pouvez quitter le conteneur avec Ctrl+D ou en tapant exit
et y rentrer à nouveau avec docker start -ia deltachat
ou podman start -ia deltachat
.
Dans le conteneur, installez les chaînes d'outils et créez la bibliothèque native :
deltachat@6012dcb974fe:/home/app$ scripts/install-toolchains.sh
deltachat@6012dcb974fe:/home/app$ scripts/ndk-make.sh
Ensuite, créez un APK :
deltachat@6012dcb974fe:/home/app$ ./gradlew assembleDebug
L'exécution de ./gradlew assembleDebug
à l'intérieur du conteneur échoue avec The SDK directory '/home/user/Android/Sdk' does not exist.
:
Le problème est qu'Android Studio (en dehors du conteneur) crée automatiquement un fichier local.properties
avec un contenu tel que sdk.dir=/home/username/Android/Sdk
, donc Gradle-inside-the-container recherche le Sdk dans /home/username/Android/Sdk
, où il ne le trouve pas. Vous pourriez :
sdk.dir
./gradlew assembleDebug
depuis l'extérieur du conteneur (cependant, il peut y avoir des problèmes d'incompatibilité si différentes versions sont installées à l'intérieur et à l'extérieur du conteneur) L'exécution de l'image échoue avec ERRO[0000] The storage 'driver' option must be set in /etc/containers/storage.conf, guarantee proper operation.
:
Dans /etc/containers/storage.conf, remplacez la ligne : driver = ""
par : driver = "overlay"
. Vous pouvez également définir l'option driver
sur autre chose, il vous suffit de la définir sur quelque chose . Découvrez les options possibles ici.
Jusqu'à présent, ces instructions n'ont été testées que sur une machine Manjaro. Si quelque chose ne fonctionne pas, veuillez ouvrir un problème.
Tout d’abord, installez Podman.
Ensuite, si vous souhaitez exécuter Podman sans root, exécutez :
sudo touch /etc/subgid
sudo touch /etc/subuid
sudo usermod --add-subuids 165536-231072 --add-subgids 165536-231072 yourusername
(remplacez yourusername
par votre nom d'utilisateur). Voir https://wiki.archlinux.org/index.php/Podman#Rootless_Podman pour plus d'informations.
Pour configurer manuellement l'environnement de build :
Ensuite, dans les deux cas, installez Rust à l'aide de rustup et des chaînes d'outils Rust pour la compilation croisée en exécutant scripts/install-toolchains.sh
.
Ensuite, configurez la variable d'environnement ANDROID_NDK_ROOT
pour qu'elle pointe vers le répertoire d'installation d'Android NDK, par exemple en ajoutant ceci à votre .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}
Après cela, appelez scripts/ndk-make.sh
dans le répertoire racine pour créer core-rust. Exécutez ensuite le projet dans Android Studio. Le projet nécessite l'API 25.
Avec un peu de chance, c'est tout :) - sinon, lisez comment mettre en place un environnement de développement approprié.
Certaines bibliothèques requises par Android Studio peuvent manquer sur les machines Linux 64 bits Source], donc pour Ubuntu, exécutez $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
et pour Fedora, exécutez $ sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686
.
Téléchargez Android Studio depuis https://developer.android.com (android-studio-ide-...-linux.zip) et décompressez l'archive qui contient un seul dossier appelé android-studio
; déplacez ce dossier, par exemple, vers ~/android-studio
.
Pour lancer Android Studio pour la première fois, ouvrez un terminal, accédez à ~/android-studio/bin
, exécutez ./studio.sh
et utilisez toutes les valeurs standard de l'assistant.
Android Studio vous demande maintenant si vous souhaitez ouvrir un projet existant ; choisissez ~/deltachat-android
tel que créé dans le chapitre "Build" (Android Studio commence à construire le projet, cependant, il manque quelques étapes avant que cela réussisse).
Si des composants sont manquants, cliquez sur le message d'erreur correspondant et installez par exemple. les SDK requis et les "Build-Tools" (vous devriez également trouver l'option dans "Outils / Android / SDK Manager / SDK Platforms"). La construction devrait maintenant réussir, mais l'application manque toujours de la partie native.
Téléchargez Android NDK à partir des archives NDK et extrayez l'archive contenant un seul dossier appelé quelque chose comme android-ndk-r23b-linux
; déplacez ce dossier, par exemple vers ~/android-ndk
.
Exportez le chemin du dossier vers votre environnement sous ANDROID_NDK_ROOT
et ajoutez-le à PATH
. Vous pouvez y parvenir par exemple en l'ajoutant à votre .bashrc
export ANDROID_NDK_ROOT= ${HOME} /android-ndk
export PATH= ${PATH} : ${ANDROID_NDK_ROOT} /toolchains/llvm/prebuilt/linux-x86_64/bin/: ${ANDROID_NDK_ROOT}
Vous n'avez pas nécessairement besoin d'un appareil de test dédié. Sauvegardez d'abord votre compte actuel, il y a peut-être des bugs lors du changement de compte.
Vous pouvez exécuter des tests de performance sur un appareil émulé ou sur un appareil réel. Vous avez besoin d'au moins Android 9. Pour de meilleurs résultats de benchmark, vous devez exécuter le benchmark sur un appareil réel et vous assurer que le noyau est compilé en mode release.
Désactivez les animations sur votre appareil, sinon le test risque d'échouer : dans "Options pour les développeurs", définissez toutes les "Échelle d'animation de la fenêtre", "Échelle d'animation de transition" et "Échelle de durée de l'animateur" sur 0x.
Dans Android Studio : "Fichier" / "Synchroniser le projet avec les fichiers Gradle"
Sous Android Studio : "Exécuter" / "Modifier les configurations" / "+" / "Test instrumenté Android" : Soit sélectionnez une classe spécifique, soit sélectionnez "Tout dans le module" / "OK" / Sélectionnez votre configuration dans la barre d'outils / Cliquez sur l'icône bouton vert "exécuter" dans la barre d'outils pour exécuter les tests
Une fois le benchmark terminé, vous obtiendrez un résultat tel que MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
. Vous pouvez coller 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
dans une cellule d'une feuille de calcul LibreOffice, faites "Données" / "Texte dans les colonnes", choisissez ,
comme séparateur, appuyez sur "OK". ", et créez un diagramme.
Pour certains tests, vous devez fournir les informations d'identification d'un compte de messagerie réel. Vous avez 2 façons de procéder :
(Recommandé) : Mettez-les dans le fichier ~/.gradle/gradle.properties (créez-le s'il n'existe pas) :
[email protected]
TEST_MAIL_PW=youpassword
Ou définissez-les via des variables d'environnement.
Les métadonnées et les journaux de modifications Android sont traduits à l'aide de Weblate.
De nombreuses classes d'interface utilisateur étaient basées sur le messager Android Signal lorsque nous l'avons porté de l'ancienne base Telegram-UI en 2019. Entre-temps, le développement a divergé dans de nombreux domaines.
Sous licence GPLv3+, voir le fichier LICENSE pour plus de détails.
Copyright © 2022 Contributeurs de Delta Chat.