Dies ist der Android-Client für Delta Chat. Es ist auf F-Droid und im Google Play Store erhältlich. Die APK kann auch von get.delta.chat heruntergeladen werden.
Die Kernbibliothek und andere allgemeine Informationen finden Sie in der Delta Chat-Kernbibliothek.
Allgemeine Hinweise zu Beiträgen finden Sie unter CONTRIBUTING.md.
Achten Sie beim Auschecken von deltachat-android darauf, auch das Unterprojekt deltachat-core-rust auszuprobieren:
$ git clone --recursive https://github.com/deltachat/deltachat-android
oder später mit git submodule update --init --recursive
tun. Wenn Sie dies in Ihrem Home-Verzeichnis tun, entsteht der Ordner ~/deltachat-android
was völlig in Ordnung ist. Das Repository enthält die Nix-Entwicklungsumgebung, die in der Datei flake.nix
beschrieben ist. Wenn Sie Nix nicht installiert haben, ist es am einfachsten, den Determinate Nix Installer zu verwenden, der Nix mit sofort aktivierter Flakes-Funktion installiert und mit /nix/nix-installer uninstall
sauber deinstalliert werden kann, wenn Sie es nicht benötigen mehr.
Sobald Sie die Nix with Flakes-Funktion eingerichtet haben, starten Sie die Entwicklungsumgebungs-Shell:
nix develop
Die Nix-Entwicklungsumgebung enthält Rust mit Cross-Compilation-Toolchains und Android SDK.
Um ein APK zu erstellen, führen Sie die folgenden 2 Schritte aus. Beachten Sie, dass die Erstellung des ersten Schritts für alle Architekturen einige Zeit in Anspruch nehmen kann. Sie können optional den ersten Kommentarblock im Skript ndk-make.sh
lesen, um Hinweise zum Erstellen für eine bestimmte Architektur zu erhalten.
$ scripts/ndk-make.sh
$ ./gradlew assembleDebug
Die resultierenden APK-Dateien finden Sie in build/outputs/apk/gplay/debug/
und build/outputs/apk/fat/debug/
.
Eine andere Möglichkeit, APK zu erstellen, besteht darin, die bereitgestellte Dockerfile
mit Docker oder Podman zu verwenden. Podman ist ein Drop-in-Ersatz für Docker, der keine Root-Rechte erfordert.
Wenn Sie Docker oder Podman noch nicht eingerichtet haben, lesen Sie unten, wie Sie Podman einrichten. Wenn Sie Docker oder Podman nicht verwenden möchten, lesen Sie, wie Sie die Build-Umgebung manuell installieren.
Erstellen Sie zunächst das Image deltachat-android
indem Sie es ausführen
podman build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
oder
docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
Führen Sie dann das Bild aus:
podman run --userns=keep-id -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
oder
docker run -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
Sie können den Container mit Strg+D oder durch Eingabe von exit
verlassen und ihn mit docker start -ia deltachat
oder podman start -ia deltachat
erneut betreten.
Installieren Sie innerhalb des Containers Toolchains und erstellen Sie die native Bibliothek:
deltachat@6012dcb974fe:/home/app$ scripts/install-toolchains.sh
deltachat@6012dcb974fe:/home/app$ scripts/ndk-make.sh
Erstellen Sie dann eine APK:
deltachat@6012dcb974fe:/home/app$ ./gradlew assembleDebug
Das Ausführen von ./gradlew assembleDebug
innerhalb des Containers schlägt mit der Fehlermeldung The SDK directory '/home/user/Android/Sdk' does not exist.
:
Das Problem besteht darin, dass Android Studio (außerhalb des Containers) automatisch eine Datei local.properties
mit einem Inhalt wie sdk.dir=/home/username/Android/Sdk
erstellt, sodass Gradle-inside-the-container nach dem Sdk unter /home/username/Android/Sdk
sucht. /home/username/Android/Sdk
, wo es nicht gefunden werden kann. Sie könnten:
sdk.dir
beginnt./gradlew assembleDebug
von außerhalb des Containers aus (es kann jedoch zu Inkompatibilitätsproblemen kommen, wenn unterschiedliche Versionen innerhalb und außerhalb des Containers installiert sind) Das Ausführen des Images schlägt mit ERRO[0000] The storage 'driver' option must be set in /etc/containers/storage.conf, guarantee proper operation.
:
Ersetzen Sie in /etc/containers/storage.conf die Zeile: driver = ""
durch: driver = "overlay"
. Sie können die driver
auch auf etwas anderes setzen, Sie müssen sie nur auf etwas setzen. Lesen Sie hier über mögliche Optionen.
Diese Anleitung wurde bisher nur auf einer Manjaro-Maschine getestet. Wenn etwas nicht funktioniert, öffnen Sie bitte ein Problem.
Installieren Sie zunächst Podman.
Wenn Sie Podman dann ohne Root ausführen möchten, führen Sie Folgendes aus:
sudo touch /etc/subgid
sudo touch /etc/subuid
sudo usermod --add-subuids 165536-231072 --add-subgids 165536-231072 yourusername
(Ersetzen Sie yourusername
durch Ihren Benutzernamen.) Weitere Informationen finden Sie unter https://wiki.archlinux.org/index.php/Podman#Rootless_Podman.
So richten Sie die Build-Umgebung manuell ein:
Installieren Sie dann in beiden Fällen Rust mithilfe von Rustup und Rust-Toolchains für die Kreuzkompilierung, indem Sie scripts/install-toolchains.sh
ausführen.
Konfigurieren Sie dann die Umgebungsvariable ANDROID_NDK_ROOT
so, dass sie auf das Android NDK-Installationsverzeichnis verweist, indem Sie beispielsweise Folgendes zu Ihrer .bashrc
hinzufügen:
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}
Rufen Sie anschließend scripts/ndk-make.sh
im Stammverzeichnis auf, um core-rust zu erstellen. Führen Sie anschließend das Projekt in Android Studio aus. Das Projekt erfordert API 25.
Mit etwas Glück ist es das :) – wenn nicht, lesen Sie weiter, wie Sie eine geeignete Entwicklungsumgebung einrichten.
Einige von Android Studio benötigte Bibliotheken fehlen möglicherweise auf 64-Bit-Linux-Rechnern. Quelle], also führen Sie für Ubuntu $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
und für Fedora $ sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686
aus $ sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686
.
Laden Sie Android Studio von https://developer.android.com (android-studio-ide-...-linux.zip) herunter und entpacken Sie das Archiv, das einen einzelnen Ordner namens android-studio
enthält; Verschieben Sie diesen Ordner z. B. nach ~/android-studio
.
Um Android Studio zum ersten Mal zu starten, öffnen Sie ein Terminal, navigieren Sie zu ~/android-studio/bin
, führen Sie ./studio.sh
aus und verwenden Sie alle Standardwerte aus dem Assistenten.
Android Studio fragt Sie nun, ob Sie ein bestehendes Projekt öffnen möchten; Wählen Sie ~/deltachat-android
wie im Kapitel „Build“ erstellt (Android Studio beginnt mit der Erstellung des Projekts, es fehlen jedoch einige Schritte, bevor dies gelingt).
Sollten Komponenten fehlen, klicken Sie auf die entsprechende Fehlermeldung und installieren Sie z.B. benötigte SDKs und die „Build-Tools“ (Sie sollten die Option auch unter „Tools / Android / SDK Manager / SDK-Plattformen“ finden). Jetzt sollte der Build gelingen – allerdings fehlt der App immer noch der native Teil.
Laden Sie Android NDK aus den NDK-Archiven herunter und extrahieren Sie das Archiv, das einen einzelnen Ordner mit dem Namen android-ndk-r23b-linux
enthält. Verschieben Sie diesen Ordner z. B. nach ~/android-ndk
.
Exportieren Sie den Ordnerpfad als ANDROID_NDK_ROOT
in Ihre Umgebung und fügen Sie ihn zu PATH
hinzu. Sie können dies beispielsweise erreichen, indem Sie dies zu Ihrer .bashrc
hinzufügen
export ANDROID_NDK_ROOT= ${HOME} /android-ndk
export PATH= ${PATH} : ${ANDROID_NDK_ROOT} /toolchains/llvm/prebuilt/linux-x86_64/bin/: ${ANDROID_NDK_ROOT}
Sie benötigen nicht unbedingt ein spezielles Testgerät. Sichern Sie zunächst Ihr aktuelles Konto. Möglicherweise gibt es Fehler beim Kontowechsel.
Sie können Benchmarks entweder auf einem emulierten Gerät oder einem realen Gerät ausführen. Sie benötigen mindestens Android 9. Für bessere Benchmark-Ergebnisse sollten Sie den Benchmark auf einem echten Gerät ausführen und sicherstellen, dass der Kern im Release-Modus kompiliert ist.
Deaktivieren Sie Animationen auf Ihrem Gerät, da der Test sonst möglicherweise fehlschlägt: Stellen Sie unter „Entwickleroptionen“ alle „Fensteranimationsskala“, „Übergangsanimationsskala“ und „Animatordauerskala“ auf 0x ein
In Android Studio: „Datei“ / „Projekt mit Gradle-Dateien synchronisieren“
In Android Studio: „Ausführen“ / „Konfigurationen bearbeiten“ / „+“ / „Android Instrumented Test“: Wählen Sie entweder eine bestimmte Klasse aus oder wählen Sie „Alle im Modul“ / „OK“ / Wählen Sie Ihre Konfiguration in der Symbolleiste aus / Klicken Sie auf das Klicken Sie in der Symbolleiste auf die grüne Schaltfläche „Ausführen“, um die Tests auszuführen
Wenn der Benchmark abgeschlossen ist, erhalten Sie ein Ergebnis wie MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
. Sie können 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
in eine Zelle in einer LibreOffice-Tabelle einfügen, „Daten“ / „Text in Spalten“ ausführen ,
als Trennzeichen auswählen und auf „OK“ klicken ", und erstellen Sie ein Diagramm.
Für einige Tests müssen Sie die Anmeldeinformationen für ein tatsächliches E-Mail-Konto angeben. Sie haben zwei Möglichkeiten, dies zu tun:
(Empfohlen): Fügen Sie sie in die Datei ~/.gradle/gradle.properties ein (erstellen Sie sie, falls sie nicht existiert):
[email protected]
TEST_MAIL_PW=youpassword
Oder legen Sie sie über Umgebungsvariablen fest.
Android-Metadaten und Änderungsprotokolle werden mit Weblate übersetzt.
Viele der Benutzeroberflächenklassen basierten auf dem Android Signal Messenger, als wir ihn 2019 von der früheren Telegram-UI-Basis portierten. Mittlerweile ist die Entwicklung in vielen Bereichen auseinandergegangen.
Lizenziert GPLv3+, Einzelheiten finden Sie in der LICENSE-Datei.
Copyright © 2022 Delta Chat-Mitwirkende.