これは、Delta Chat 用の Android クライアントです。 F-Droid および Google Play ストアで入手できます。 APK は get.delta.chat からダウンロードすることもできます。
コア ライブラリおよびその他の共通情報については、Delta Chat Core Library を参照してください。
一般的な貢献に関するヒントについては、CONTRIBUTING.md を参照してください。
deltachat-androidをチェックアウトするときは、サブプロジェクトdeltachat-core-rustも必ずチェックアウトしてください。
$ git clone --recursive https://github.com/deltachat/deltachat-android
によってこれを実行でき、その後はgit submodule update --init --recursive
によって実行できます。これをホーム ディレクトリで実行すると、フォルダー~/deltachat-android
が作成されますが、これは問題ありません。リポジトリには、 flake.nix
ファイルに記述された Nix 開発環境が含まれています。 Nix がインストールされていない場合、最も簡単な方法は Determinate Nix インストーラーを使用することです。これは、すぐに使える Flakes 機能を有効にして Nix をインストールし、不要になったら/nix/nix-installer uninstall
できれいにアンインストールできます。もう。
Nix with Flakes 機能を設定したら、開発環境シェルを開始します。
nix develop
Nix 開発環境には、クロスコンパイル ツールチェーンと Android SDK を備えた Rust が含まれています。
APK をビルドするには、次の 2 つの手順を実行します。すべてのアーキテクチャで最初のステップをビルドするには時間がかかる場合があることに注意してください。必要に応じて、 ndk-make.sh
スクリプトの最初のコメント ブロックを読んで、特定のアーキテクチャ向けにビルドする方法のヒントを得ることができます。
$ scripts/ndk-make.sh
$ ./gradlew assembleDebug
結果の APK ファイルはbuild/outputs/apk/gplay/debug/
およびbuild/outputs/apk/fat/debug/
にあります。
APK をビルドするもう 1 つの方法は、提供されているDockerfile
Docker または Podman で使用することです。 Podman は、root 権限を必要としない Docker のドロップイン代替品です。
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 (コンテナの外) がsdk.dir=/home/username/Android/Sdk
のような内容を持つファイルlocal.properties
を自動的に作成するため、コンテナ内の Gradle は/home/username/Android/Sdk
で 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をインストールします。
次に、root なしで 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 を参照してください。
ビルド環境を手動でセットアップするには:
次に、どちらの場合も、 scripts/install-toolchains.sh
を実行して、クロスコンパイル用の Rustup と Rust ツールチェーンを使用して Rust をインストールします。
次に、Android NDK インストール ディレクトリを指すようにANDROID_NDK_ROOT
環境変数を構成します。たとえば、これを.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
を実行します。 $ sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686
。
https://developer.android.com (android-studio-ide-...-linux.zip) から Android Studio をダウンロードし、 android-studio
という単一のフォルダーを含むアーカイブを解凍します。このフォルダーを~/android-studio
などに移動します。
Android Studio を初めて起動するには、ターミナルを開き、 ~/android-studio/bin
に移動し、 ./studio.sh
実行して、ウィザードのすべての標準値を使用します。
Android Studio は、既存のプロジェクトを開くかどうかを尋ねるようになりました。 「ビルド」の章で作成した~/deltachat-android
を選択します (Android Studio はプロジェクトのビルドを開始しますが、これが成功するまでにいくつかの手順が欠けています)。
コンポーネントが欠落している場合は、対応するエラー メッセージをクリックしてインストールします。必要な SDK と「Build-Tools」(「Tools / Android / SDK Manager / SDK Platforms」にもオプションがあります)。これでビルドは成功するはずですが、アプリにはまだネイティブ部分がありません。
NDK アーカイブから Android 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 インストルメント化テスト」: 特定のクラスを選択するか、「モジュール内のすべて」/「OK」/ツールバーで構成を選択/テストを実行するには、ツールバーの緑色の「実行」ボタン
ベンチマークが完了すると、 MEASURED RESULTS (Benchmark) - Going thorough all 10 chats: 11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
のような結果が得られます。 LibreOffice スプレッドシートのセルに11635,11207,11363,11352,11279,11183,11137,11145,11032,11057
を貼り付け、「データ」/「列へのテキスト」を実行し、区切り文字として を選択し,
「OK」を押します。 」と図を作成します。
一部のテストでは、実際の電子メール アカウントに資格情報を提供する必要があります。これを行うには 2 つの方法があります。
(推奨): これらをファイル ~/.gradle/gradle.properties に入れます (存在しない場合は作成します)。
[email protected]
TEST_MAIL_PW=youpassword
または、環境変数を介して設定します。
Android メタデータと変更ログは Weblate を使用して翻訳されます。
2019 年に以前の Telegram-UI ベースから Android Signal メッセンジャーを移植したとき、ユーザー インターフェイス クラスの多くは Android Signal メッセンジャーに基づいていました。一方、開発は多くの分野で分岐しました。
ライセンス付き GPLv3+。詳細については、LICENSE ファイルを参照してください。
Copyright © 2022 Delta Chat の寄稿者。