Jak skompilować wersję Androida
Android SDK: Minimalna wersja SDK: 21 Docelowa wersja SDK: 29 Docelowe narzędzia SDK: 29
Android NDK: 23.
Kompilacja pliku Android apk
- Najpierw skonfiguruj środowisko programistyczne.
- Gradle (wiersz poleceń):
- Określ zmienne środowiskowe. ANDROID_SDK i ANDROID_HOME to miejsca, w których Android Studio umieszcza pliki:
export ANDROID_SDK=/[twoja-ścieżka]/Android/sdk
export ANDROID_NDK=/[twoja-ścieżka]/android-ndk-23
export ANDROID_HOME=/[twoja-ścieżka]/Android/sdk- Kompiluj za pomocą wiersza poleceń
cd android/OsmAnd && ../gradlew assembleNightlyFreeLegacyFatDebug
- Android Studio:
importuj projekt Androida i uruchom moduł `android.OsmAnd`
- Możesz użyć naszego debug.keystore, aby kompilacje były kompatybilne z kompilacją nocną.
Zadania/warianty Gradle
Zadanie Gradle assembleNightlyFreeLegacyFatDebug wygeneruje plik apk w android/OsmAnd/build/outputs/apk/ nightlyFreeLegacyFat/debug/OsmAnd-nightlyFree-legacy-fat-debug.apk. Nazwa zadania assembleNightlyFreeLegacyFatDebug składa się z:
- assemble - standardowe zadanie do budowania apk
- nightlyFree - wariant kompilacji opisany poniżej
- legacy - legacy / opengl / opengldebug - określa, czy wygenerowany plik apk będzie zawierał natywne biblioteki do renderowania mapy opengl, czy nie. Więcej informacji w wtyczce programistycznej OsmAnd.
- fat - fat (wszystkie natywne cele) / armv7 / arm64 / x86 / armonly - wybierz, które natywne biblioteki znajdą się w pliku apk.
- debug - debug / release - standardowe zadanie
Aby zbudować pakiet, możesz użyć bundle${FLAVOR}LegacyFatRelease
.
Wariant | Pakiet | Opis |
---|---|---|
nightlyFree | net.osmand.dev | Nocna darmowa kompilacja, którą można zainstalować obok obu wersji GPlay do celów testowych i eksploracyjnych |
androidFull | net.osmand.plus | Pełna wersja OsmAnd~ może być używana do kompilacji F-Droid. Nie korzysta z usług GooglePlay. |
gplayFree | net.osmand | Wersja OsmAnd z Google Play - korzysta z usług GooglePlay. |
gplayFull | net.osmand.plus | Wersja OsmAnd+ z Google Play - korzysta z usług GooglePlay. |
huawei | net.osmand | Specjalna kompilacja dla rynku Huawei - korzysta z usług Huawei, ale nie z Google Play |
Debugowanie
Włącz debugowanie NDK dla starszej biblioteki natywnej (OsmAnd-core-legacy)
W OsmAnd/OsmAnd/jni/Application.mk odkomentuj wiersze
APP_OPTIM := debug
APP_DEBUG := true
Dodaj symbole debugowania w konfiguracji projektu Android Studio. W tym celu przejdź do Edytuj konfigurację / w lewym menu wybierz Aplikacja Android "OsmAnd" / po prawej stronie wybierz zakładkę "Debugger". I dodaj OsmAnd/obj/local, gdzie buduj biblioteki dla różnych konfiguracji (arm64-v8a, armeabi-v7a, x86, x86_64).
Kompilacja biblioteki OpenGL
Biblioteka Opengl jest potrzebna dla celów takich jak assembleNightlyFreeOpenglFatDebug i domyślnie pobierana z repozytorium OsmAnd ivy - zadanie gradle. Do lokalnego rozwoju może być konieczne skompilowanie tych bibliotek i opublikowanie ich w lokalnym repozytorium ivy.
- Najpierw skonfiguruj środowisko programistyczne, zobacz środowisko programistyczne.
- Zainstaluj narzędzia.
- Android SDK - 29.
- Android NDK - 23.
- CMake > 3.6 (cmake -version).
- SWIG - 4.1.1 (lub kompatybilny).
- Lokalny kompilator c++ (preferowany clang).
- Narzędzia Bash: wget, curl, python ...
- Gradle (wiersz poleceń):
- Określ zmienne środowiskowe. ANDROID_SDK i ANDROID_HOME to miejsca, w których Android Studio umieszcza pliki:
export ANDROID_SDK=/[twoja-ścieżka]/Android/sdk
export ANDROID_NDK=/[twoja-ścieżka]/android-ndk-23
export ANDROID_HOME=/[twoja-ścieżka]/Android/sdk- Kompiluj za pomocą zadania kompilacji gradle
cd core/wrappers/android && ../gradlew build
Wskazówka: Kompilacja może zająć dużo czasu i prawdopodobnie nie będziesz potrzebować wszystkich platform, więc możesz zakomentować niechciane architektury w skrypcie i kompilować tylko dla 1 platformy (x86, x86_64, arm, arm64) w trybie debugowania lub wydania.
Debugowanie
Do uzupełnienia: jak skonfigurować debugowanie Android NDK.
Kompilacja przykładów API
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
OsmAnd udostępnia 2 typy przykładowych aplikacji, wszystkie są reprezentowane w repozytorium GitHub osmand-api-demo i regularnie kompilowane w OsmAnd Builder.
Skrypt kompilacji:
(cd OsmAnd-api-sample && ./gradlew clean assembleRelease)
(cd OsmAnd-map-sample && ./gradlew clean assembleRelease)
- OsmAnd-api-sample - najprostsza przykładowa aplikacja, która współdziała z już zainstalowanym OsmAnd za pośrednictwem interfejsu AIDL i Intentów.
- OsmAnd-map-sample - przykładowa aplikacja ma w pełni zintegrowany OsmAnd jako SDK. Pozwala na korzystanie ze wszystkich wewnętrznych interfejsów API.