Это Android-клиент для Delta Chat. Оно доступно на F-Droid и в магазине Google Play. APK-файл также можно загрузить с сайта get.delta.chat.
Базовую библиотеку и другую общую информацию можно найти в основной библиотеке Delta Chat.
Общие советы по вкладу можно найти на сайте CONTRIBUTING.md.
При проверке deltachat-android обязательно проверьте также подпроект deltachat-core-rust :
$ git clone --recursive https://github.com/deltachat/deltachat-android
или позже с помощью git submodule update --init --recursive
. Если вы сделаете это в своем домашнем каталоге, в результате появится папка ~/deltachat-android
, и это нормально. Репозиторий содержит среду разработки Nix, описанную в файле flake.nix
. Если у вас не установлен Nix, самый простой способ — использовать установщик Determinate Nix, который устанавливает Nix с включенной функцией Flakes из коробки и может быть полностью удален с помощью /nix/nix-installer uninstall
если он вам не нужен. больше.
После настройки функции Nix с Flakes запустите оболочку среды разработки:
nix develop
Среда разработки Nix содержит Rust с инструментами кросс-компиляции и Android SDK.
Чтобы создать APK, выполните следующие 2 шага. Обратите внимание, что сборка первого шага для всех архитектур может занять некоторое время. При желании вы можете прочитать первый блок комментариев в сценарии ndk-make.sh
, чтобы узнать, как выполнить сборку для конкретной архитектуры.
$ scripts/ndk-make.sh
$ ./gradlew assembleDebug
Полученные APK-файлы можно найти в build/outputs/apk/gplay/debug/
и build/outputs/apk/fat/debug/
.
Другой способ сборки APK — использовать предоставленный Dockerfile
с Docker или Podman. Podman — это замена Docker, не требующая привилегий root.
Если у вас еще нет установки Docker или Podman, прочитайте, как настроить Podman ниже. Если вы не хотите использовать Docker или Podman, прочитайте, как вручную установить среду сборки.
Сначала создайте образ deltachat-android
, запустив
podman build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
или
docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) . -t deltachat-android
Затем запустите образ:
podman run --userns=keep-id -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
или
docker run -it --name deltachat -v $(pwd):/home/app:z -w /home/app localhost/deltachat-android
Вы можете выйти из контейнера, нажав Ctrl+D или набрав exit
, и повторно войти в него с помощью docker start -ia deltachat
или podman start -ia deltachat
.
Внутри контейнера установите наборы инструментов и создайте собственную библиотеку:
deltachat@6012dcb974fe:/home/app$ scripts/install-toolchains.sh
deltachat@6012dcb974fe:/home/app$ scripts/ndk-make.sh
Затем создайте APK:
deltachat@6012dcb974fe:/home/app$ ./gradlew assembleDebug
Выполнение ./gradlew assembleDebug
внутри контейнера завершается сбоем: The SDK directory '/home/user/Android/Sdk' does not exist.
:
Проблема в том, что Android Studio (вне контейнера) автоматически создает файл local.properties
с содержимым типа sdk.dir=/home/username/Android/Sdk
, поэтому Gradle-in-the-container ищет Sdk по адресу /home/username/Android/Sdk
, где он не может его найти. Вы могли бы:
sdk.dir
./gradlew assembleDebug
снаружи контейнера (однако могут возникнуть проблемы несовместимости, если внутри и снаружи контейнера установлены разные версии) Запуск образа завершается с ошибкой ERRO[0000] The storage 'driver' option must be set in /etc/containers/storage.conf, guarantee proper operation.
:
В файле /etc/containers/storage.conf замените строку: driver = ""
на: driver = "overlay"
. Вы также можете установить для параметра driver
что-то другое, вам просто нужно установить его на что-нибудь другое . О возможных вариантах читайте здесь.
Эти инструкции пока были протестированы только на машине Manjaro. Если что-то не работает, пожалуйста, откройте проблему.
Сначала установите Podman.
Затем, если вы хотите запустить Podman без рута, запустите:
sudo touch /etc/subgid
sudo touch /etc/subuid
sudo usermod --add-subuids 165536-231072 --add-subgids 165536-231072 yourusername
(замените yourusername
на свое имя пользователя). См. https://wiki.archlinux.org/index.php/Podman#Rootless_Podman для получения дополнительной информации.
Чтобы настроить среду сборки вручную:
Затем в обоих случаях установите Rust, используя Rustup и наборы инструментов Rust для кросс-компиляции, выполнив scripts/install-toolchains.sh
.
Затем настройте переменную среды ANDROID_NDK_ROOT
, чтобы она указывала на каталог установки Android NDK, например, добавив это в ваш .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}
После этого вызовите scripts/ndk-make.sh
в корневом каталоге, чтобы собрать core-rust. После этого запустите проект в Android Studio. Для проекта требуется API 25.
Если вдруг, то самое :) - если нет, читайте, как настроить правильную среду разработки.
Некоторые библиотеки, необходимые для Android Studio, могут отсутствовать на 64-битных машинах Linux. Источник], поэтому для Ubuntu выполните $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
, а для Fedora выполните $ sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686
.
Загрузите Android Studio с https://developer.android.com (android-studio-ide-...-linux.zip) и распакуйте архив, содержащий одну папку с именем android-studio
; переместите эту папку, например, в ~/android-studio
.
Чтобы запустить Android Studio в первый раз, откройте терминал, перейдите к ~/android-studio/bin
, выполните ./studio.sh
и используйте все стандартные значения мастера.
Android Studio теперь спрашивает вас, хотите ли вы открыть существующий проект; выберите ~/deltachat-android
, как было создано в главе «Сборка» (Android Studio начинает сборку проекта, однако для успеха необходимо выполнить некоторые шаги).
Если компоненты отсутствуют, щелкните соответствующее сообщение об ошибке и установите, например. необходимые SDK и «Инструменты сборки» (вы также должны найти эту опцию в «Инструменты/Android/Менеджер SDK/Платформы SDK»). Теперь сборка должна пройти успешно, но в приложении по-прежнему отсутствует собственная часть.
Загрузите Android NDK из архивов NDK и извлеките архив, содержащий одну папку, которая называется примерно так: android-ndk-r23b-linux
; переместите эту папку, например, в ~/android-ndk
.
Экспортируйте путь к папке в свою среду как ANDROID_NDK_ROOT
и добавьте его в PATH
. Вы можете добиться этого, например, добавив это в свой .bashrc
export ANDROID_NDK_ROOT= ${HOME} /android-ndk
export PATH= ${PATH} : ${ANDROID_NDK_ROOT} /toolchains/llvm/prebuilt/linux-x86_64/bin/: ${ANDROID_NDK_ROOT}
Вам не обязательно нужно специальное устройство для тестирования. Сначала сделайте резервную копию вашей текущей учетной записи, возможно, есть какие-то ошибки при переключении учетных записей.
Вы можете запускать тесты как на эмулируемом, так и на реальном устройстве. Вам нужен как минимум Android 9. Для лучших результатов теста вам следует запустить тест на реальном устройстве и убедиться, что ядро скомпилировано в режиме выпуска.
Отключите анимацию на вашем устройстве, иначе тест может не пройти: в «Параметры разработчика» установите для всех «Масштаб анимации окна», «Масштаб анимации перехода» и «Масштаб продолжительности анимации» значение 0x.
В Android Studio: «Файл»/«Синхронизировать проект с файлами Gradle»
В Android Studio: «Выполнить» / «Редактировать конфигурации» / «+» / «Инструментированный тест Android»: либо выберите конкретный класс, либо выберите «Все в модуле» / «ОК» / Выберите свою конфигурацию на панели инструментов / Нажмите на значок зеленая кнопка «Выполнить» на панели инструментов для запуска тестов
Когда тест будет завершен, вы получите такой результат, как MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
. Вы можете вставить 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
в ячейку электронной таблицы LibreOffice, выполните «Данные» / «Текст в столбцы», ,
в качестве разделителя и нажмите «ОК». ", и создайте диаграмму.
Для некоторых тестов вам необходимо предоставить учетные данные реальной учетной записи электронной почты. У вас есть 2 способа сделать это:
(Рекомендуется): поместите их в файл ~/.gradle/gradle.properties (создайте его, если он не существует):
[email protected]
TEST_MAIL_PW=youpassword
Или установите их через переменные среды.
Метаданные и журналы изменений Android переводятся с помощью Weblate.
Многие классы пользовательского интерфейса были основаны на мессенджере Android Signal, когда мы портировали его из прежней базы Telegram-UI в 2019 году. Между тем, развитие во многих областях разошлось.
Лицензия GPLv3+, подробности см. в файле ЛИЦЕНЗИИ.
Авторские права © 2022 Авторы Delta Chat.