Este es el cliente de Android para Delta Chat. Está disponible en F-Droid y Google Play Store. El APK también se puede descargar desde get.delta.chat.
Para obtener la biblioteca principal y otra información común, consulte la biblioteca principal de Delta Chat.
Para obtener sugerencias generales sobre contribuciones, consulte CONTRIBUTING.md.
Al revisar deltachat-android , asegúrese de revisar también el subproyecto deltachat-core-rust :
$ git clone --recursive https://github.com/deltachat/deltachat-android
o más tarde mediante git submodule update --init --recursive
. Si hace esto en su directorio de inicio, el resultado será la carpeta ~/deltachat-android
que está bien. El repositorio contiene el entorno de desarrollo Nix descrito en el archivo flake.nix
. Si no tiene Nix instalado, la forma más sencilla es utilizar The Determinate Nix Installer, que instala Nix con la función Flakes habilitada de fábrica y se puede desinstalar limpiamente con /nix/nix-installer uninstall
una vez que no lo necesite. ya no.
Una vez que haya configurado la función Nix with Flakes, inicie el shell del entorno de desarrollo:
nix develop
El entorno de desarrollo Nix contiene Rust con cadenas de herramientas de compilación cruzada y SDK de Android.
Para crear un APK, ejecute los siguientes 2 pasos. Tenga en cuenta que el primer paso puede tardar algún tiempo en compilarse para todas las arquitecturas. Opcionalmente, puede leer el primer bloque de comentarios en el script ndk-make.sh
para obtener sugerencias sobre cómo construir para una arquitectura específica.
$ scripts/ndk-make.sh
$ ./gradlew assembleDebug
Los archivos APK resultantes se pueden encontrar en build/outputs/apk/gplay/debug/
y build/outputs/apk/fat/debug/
.
Otra forma de crear APK es utilizar Dockerfile
proporcionado con Docker o Podman. Podman es un reemplazo directo de Docker que no requiere privilegios de root.
Si aún no tienes configurado Docker o Podman, lee cómo configurar Podman a continuación. Si no desea utilizar Docker o Podman, lea cómo instalar manualmente el entorno de compilación.
Primero, cree la imagen deltachat-android
ejecutando
podman build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
o
docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
Luego, ejecuta la imagen:
podman run --userns=keep-id -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
o
docker run -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
Puede salir del contenedor con Ctrl+D o escribiendo exit
y volver a ingresar con docker start -ia deltachat
o podman start -ia deltachat
.
Dentro del contenedor, instale cadenas de herramientas y cree la biblioteca nativa:
deltachat@6012dcb974fe:/home/app$ scripts/install-toolchains.sh
deltachat@6012dcb974fe:/home/app$ scripts/ndk-make.sh
Luego, construye un APK:
deltachat@6012dcb974fe:/home/app$ ./gradlew assembleDebug
La ejecución de ./gradlew assembleDebug
dentro del contenedor falla y The SDK directory '/home/user/Android/Sdk' does not exist.
:
El problema es que Android Studio (fuera del contenedor) crea automáticamente un archivo local.properties
con un contenido como sdk.dir=/home/username/Android/Sdk
, por lo que Gradle-inside-the-container busca el Sdk en /home/username/Android/Sdk
, donde no puede encontrarlo. Tú podrías:
sdk.dir
./gradlew assembleDebug
desde fuera del contenedor (sin embargo, puede haber problemas de incompatibilidad si se instalan diferentes versiones dentro y fuera del contenedor) La ejecución de la imagen falla con ERRO[0000] The storage 'driver' option must be set in /etc/containers/storage.conf, guarantee proper operation.
:
En /etc/containers/storage.conf, reemplace la línea: driver = ""
con: driver = "overlay"
. También puede configurar la opción driver
en otra cosa, solo necesita configurarla en algo . Lea sobre las posibles opciones aquí.
Hasta ahora, estas instrucciones solo se probaron en una máquina Manjaro. Si algo no funciona, abra un problema.
Primero, instale Podman.
Luego, si desea ejecutar Podman sin root, ejecute:
sudo touch /etc/subgid
sudo touch /etc/subuid
sudo usermod --add-subuids 165536-231072 --add-subgids 165536-231072 yourusername
(reemplace yourusername
con su nombre de usuario). Consulte https://wiki.archlinux.org/index.php/Podman#Rootless_Podman para obtener más información.
Para configurar el entorno de compilación manualmente:
Luego, en ambos casos, instale Rust usando Rustup y las cadenas de herramientas de Rust para la compilación cruzada ejecutando scripts/install-toolchains.sh
.
Luego, configure la variable de entorno ANDROID_NDK_ROOT
para que apunte al directorio de instalación del NDK de Android, por ejemplo, agregando esto a su .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}
Después de eso, llame scripts/ndk-make.sh
en el directorio raíz para compilar core-rust. Luego ejecute el proyecto en Android Studio. El proyecto requiere API 25.
Con suerte, eso es todo :) - si no, lea cómo configurar un entorno de desarrollo adecuado.
Es posible que falten algunas bibliotecas requeridas por Android Studio en máquinas Linux de 64 bits Fuente], por lo que para Ubuntu ejecute $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
y para Fedora ejecute $ sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686
.
Descargue Android Studio desde https://developer.android.com (android-studio-ide-...-linux.zip) y descomprima el archivo que contiene una única carpeta llamada android-studio
; mueva esta carpeta, por ejemplo, a ~/android-studio
.
Para iniciar Android Studio por primera vez, abra una terminal, navegue hasta ~/android-studio/bin
, ejecute ./studio.sh
y use todos los valores estándar del asistente.
Android Studio ahora te pregunta si deseas abrir un proyecto existente; elija ~/deltachat-android
tal como se creó en el capítulo "Construir" (Android Studio comienza a construir el proyecto, sin embargo, faltan algunos pasos antes de que esto tenga éxito).
Si faltan componentes, haga clic en el mensaje de error correspondiente e instale, por ejemplo. SDK requeridos y las "Herramientas de compilación" (también debería encontrar la opción en "Herramientas/Android/Administrador de SDK/Plataformas SDK"). Ahora la compilación debería tener éxito, pero a la aplicación aún le falta la parte nativa.
Descargue Android NDK desde NDK Archives y extraiga el archivo que contiene una única carpeta llamada algo así como android-ndk-r23b-linux
; mueva esta carpeta, por ejemplo, a ~/android-ndk
.
Exporte la ruta de la carpeta a su entorno como ANDROID_NDK_ROOT
y agréguela a PATH
. Puedes lograr esto, por ejemplo, agregando esto a tu .bashrc
export ANDROID_NDK_ROOT= ${HOME} /android-ndk
export PATH= ${PATH} : ${ANDROID_NDK_ROOT} /toolchains/llvm/prebuilt/linux-x86_64/bin/: ${ANDROID_NDK_ROOT}
No necesariamente necesita un dispositivo de prueba dedicado. Primero haga una copia de seguridad de su cuenta actual, tal vez haya algunos errores al cambiar de cuenta.
Puede ejecutar pruebas comparativas en un dispositivo emulado o en un dispositivo real. Necesita al menos Android 9. Para obtener mejores resultados de evaluación comparativa, debe ejecutar la evaluación comparativa en un dispositivo real y asegurarse de que el núcleo esté compilado en modo de lanzamiento.
Deshabilite las animaciones en su dispositivo; de lo contrario, la prueba puede fallar: en "Opciones de desarrollador", establezca todas las "Escala de animación de ventana", "Escala de animación de transición" y "Escala de duración del animador" en 0x.
En Android Studio: "Archivo" / "Sincronizar proyecto con archivos gradle"
En Android Studio: "Ejecutar" / "Editar configuraciones" / "+" / "Prueba instrumentada de Android": seleccione una clase específica o seleccione "Todo en módulo" / "Aceptar" / Seleccione su configuración en la barra de herramientas / Haga clic en Botón verde "ejecutar" en la barra de herramientas para ejecutar las pruebas.
Cuando finalice la evaluación comparativa, obtendrá un resultado como MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
. Puede pegar 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
en una celda de una hoja de cálculo de LibreOffice, haga "Datos" / "Texto a columnas", elija ,
como separador, presione "Aceptar". ", y crea un diagrama.
Para algunas pruebas, debe proporcionar las credenciales de una cuenta de correo electrónico real. Tienes 2 formas de hacer esto:
(Recomendado): colóquelos en el archivo ~/.gradle/gradle.properties (créelo si no existe):
[email protected]
TEST_MAIL_PW=youpassword
O configúrelos mediante variables de entorno.
Los metadatos y registros de cambios de Android se traducen mediante Weblate.
Muchas de las clases de interfaz de usuario se basaron en Android Signal Messenger cuando lo portamos desde la antigua base Telegram-UI en 2019. Mientras tanto, el desarrollo ha divergido en muchas áreas.
Con licencia GPLv3+, consulte el archivo de LICENCIA para obtener más detalles.
Copyright © 2022 Colaboradores de Delta Chat.