Skip to main content

Kompilieren der Android-Version

Android SDK: Min. SDK-Version: 21 Ziel-SDK-Version: 29 Ziel-SDK-Tools: 29

Android NDK: 23.

Kompilieren der Android-APK

  1. Richten Sie zunächst die Entwicklungsumgebung ein.
  2. Gradle (Befehlszeile):
    • Geben Sie Umgebungsvariablen an. ANDROID_SDK und ANDROID_HOME sind die Speicherorte, an denen Android Studio die Dinge ablegt:
    export ANDROID_SDK=/[Ihr-Pfad]/Android/sdk
    export ANDROID_NDK=/[Ihr-Pfad]/android-ndk-23
    export ANDROID_HOME=/[Ihr-Pfad]/Android/sdk
    • Kompilieren Sie mit der Befehlszeile
    cd android/OsmAnd && ../gradlew assembleNightlyFreeLegacyFatDebug
  3. Android Studio:
import android project and run module flavor `android.OsmAnd`
  1. Sie können unseren debug.keystore verwenden, um Builds mit dem Nightly Build kompatibel zu machen.

Gradle-Aufgaben / Flavors

Die Gradle-Aufgabe assembleNightlyFreeLegacyFatDebug erstellt eine APK unter android/OsmAnd/build/outputs/apk/ nightlyFreeLegacyFat/debug/OsmAnd-nightlyFree-legacy-fat-debug.apk. Der Aufgabenname assembleNightlyFreeLegacyFatDebug besteht aus:

  • assemble - Standardaufgabe zur Erstellung der APK
  • nightlyFree - unten beschriebener Build-Flavor
  • legacy - legacy / opengl / opengldebug - definiert, ob die erzeugte APK native Bibliotheken zur Verwendung der OpenGL-Kartenrendering enthält oder nicht. Weitere Informationen im OsmAnd-Entwicklungs-Plugin.
  • fat - fat (alle nativen Ziele) / armv7 / arm64 / x86 / armonly - wählt aus, welche nativen Bibliotheken in der APK enthalten sein werden.
  • debug - debug / release - Standardaufgabe

Um ein Bundle zu erstellen, können Sie bundle${FLAVOR}LegacyFatRelease verwenden.

FlavorPaketBeschreibung
nightlyFreenet.osmand.devNightly Free Build, der neben beiden GPlay-Versionen für Test- und Erkundungszwecke installiert werden kann
androidFullnet.osmand.plusDie vollständige OsmAnd~-Version kann für F-Droid-Builds verwendet werden. Verwendet keine Google Play-Dienste.
gplayFreenet.osmandGoogle Play OsmAnd-Version - verwendet Google Play-Dienste.
gplayFullnet.osmand.plusGoogle Play OsmAnd+-Version - verwendet Google Play-Dienste.
huaweinet.osmandSpezial-Build für den Huawei-Markt - verwendet Huawei-Dienste, aber nicht Google Play

Debugging

NDK-Debugging für die native Legacy-Bibliothek (OsmAnd-core-legacy) aktivieren

Kommentieren Sie in OsmAnd/OsmAnd/jni/Application.mk die Zeilen aus

APP_OPTIM := debug
APP_DEBUG := true

Fügen Sie Debug-Symbole in der Android Studio Projektkonfiguration hinzu. Gehen Sie dazu zu Edit Configuration / wählen Sie im linken Menü Android App "OsmAnd" / wählen Sie auf der rechten Seite den Tab "Debugger". Fügen Sie OsmAnd/obj/local hinzu, wo die Build-Bibliotheken für verschiedene Konfigurationen (arm64-v8a, armeabi-v7a, x86, x86_64) gespeichert sind.

Kompilieren der OpenGL-Bibliothek

Die OpenGL-Bibliothek wird für Ziele wie assembleNightlyFreeOpenglFatDebug benötigt und standardmäßig aus dem OsmAnd Ivy Repository heruntergeladen - Gradle-Aufgabe. Für die lokale Entwicklung müssen Sie diese Bibliothek möglicherweise kompilieren und in einem lokalen Ivy-Repository veröffentlichen.

  1. Richten Sie zunächst die Entwicklungsumgebung ein, siehe Entwicklungsumgebung.
  2. Werkzeuge installieren.
    • Android SDK - 29.
    • Android NDK - 23.
    • CMake > 3.6 (cmake -version).
    • SWIG - 4.1.1 (oder kompatibel).
    • Lokaler C++-Compiler (vorzugsweise clang).
    • Bash-Tools: wget, curl, python ...
  3. Gradle (Befehlszeile):
    • Geben Sie Umgebungsvariablen an. ANDROID_SDK und ANDROID_HOME sind die Speicherorte, an denen Android Studio die Dinge ablegt:
    export ANDROID_SDK=/[Ihr-Pfad]/Android/sdk
    export ANDROID_NDK=/[Ihr-Pfad]/android-ndk-23
    export ANDROID_HOME=/[Ihr-Pfad]/Android/sdk
    cd core/wrappers/android && ../gradlew build

Hinweis: Die Kompilierung kann lange dauern und Sie benötigen wahrscheinlich nicht alle Plattformen. Sie können daher unerwünschte Architekturen im Skript auskommentieren und nur für eine Plattform (x86, x86_64, arm, arm64) debuggen oder releasen.

Debugging

Wird noch ergänzt: Wie man das Android NDK-Debugging einrichtet.

Kompilieren der API-Beispiele

🚧 This article is incomplete

This article is incomplete & needs to be reviewed. You can help by creating a pull request.

OsmAnd stellt 2 Arten von Beispiel-Apps zur Verfügung, die alle im Github-Repository osmand-api-demo enthalten sind und regelmäßig auf dem OsmAnd Builder kompiliert werden.

Kompilierungsskript:

(cd OsmAnd-api-sample && ./gradlew clean assembleRelease)
(cd OsmAnd-map-sample && ./gradlew clean assembleRelease)

Mehr lesen.