Delta Chat용 Android 클라이언트입니다. 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
폴더가 생성되며 이는 문제가 없습니다. 저장소에는 flake.nix
파일에 설명된 Nix 개발 환경이 포함되어 있습니다. Nix가 설치되어 있지 않은 경우 가장 쉬운 방법은 기본적으로 Flakes 기능이 활성화된 Nix를 설치하고 필요하지 않으면 /nix/nix-installer uninstall
사용하여 완전히 제거할 수 있는 Determinate Nix 설치 프로그램을 사용하는 것입니다. 더 이상.
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를 빌드하는 또 다른 방법은 제공된 Dockerfile
Docker 또는 Podman과 함께 사용하는 것입니다. Podman은 루트 권한이 필요하지 않은 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
The SDK directory '/home/user/Android/Sdk' does not exist.
컨테이너 내에서 ./gradlew assembleDebug
실행이 실패합니다. :
문제는 Android Studio(컨테이너 외부)가 sdk.dir=/home/username/Android/Sdk
와 같은 콘텐츠로 local.properties
파일을 자동으로 생성하므로 Gradle-inside-the-container가 /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을 설치합니다.
그런 다음 루트 없이 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에 필요한 일부 lib는 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 Instrumented test": 특정 클래스를 선택하거나 "All in Module" / "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
을 붙여넣고 "데이터" / "텍스트를 열로"를 선택한 다음 구분 기호로 ,
선택하고 "확인"을 누르세요. "를 선택하고 다이어그램을 만듭니다.
일부 테스트에서는 실제 이메일 계정에 자격 증명을 제공해야 합니다. 이를 수행하는 방법에는 두 가지가 있습니다.
(권장): ~/.gradle/gradle.properties 파일에 넣습니다(없는 경우 생성).
[email protected]
TEST_MAIL_PW=youpassword
또는 환경 변수를 통해 설정하세요.
Android 메타데이터 및 변경 로그는 Weblate를 사용하여 번역됩니다.
2019년에 이전 Telegram-UI 기반에서 포팅했을 때 많은 사용자 인터페이스 클래스가 Android Signal 메신저를 기반으로 했습니다. 한편 개발은 여러 영역에서 다양해졌습니다.
GPLv3+ 라이선스가 부여되었습니다. 자세한 내용은 LICENSE 파일을 참조하세요.
저작권 © 2022 Delta Chat 기여자.