Skip to main content

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

  1. Najpierw skonfiguruj środowisko programistyczne.
  2. 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
  3. Android Studio:
importuj projekt Androida i uruchom moduł `android.OsmAnd`
  1. 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.

WariantPakietOpis
nightlyFreenet.osmand.devNocna darmowa kompilacja, którą można zainstalować obok obu wersji GPlay do celów testowych i eksploracyjnych
androidFullnet.osmand.plusPełna wersja OsmAnd~ może być używana do kompilacji F-Droid. Nie korzysta z usług GooglePlay.
gplayFreenet.osmandWersja OsmAnd z Google Play - korzysta z usług GooglePlay.
gplayFullnet.osmand.plusWersja OsmAnd+ z Google Play - korzysta z usług GooglePlay.
huaweinet.osmandSpecjalna 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.

  1. Najpierw skonfiguruj środowisko programistyczne, zobacz środowisko programistyczne.
  2. 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 ...
  3. 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
    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

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)

Czytaj więcej.