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
- Richten Sie zunächst die Entwicklungsumgebung ein.
- 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
- Android Studio:
import android project and run module flavor `android.OsmAnd`
- 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.
Flavor | Paket | Beschreibung |
---|---|---|
nightlyFree | net.osmand.dev | Nightly Free Build, der neben beiden GPlay-Versionen für Test- und Erkundungszwecke installiert werden kann |
androidFull | net.osmand.plus | Die vollständige OsmAnd~-Version kann für F-Droid-Builds verwendet werden. Verwendet keine Google Play-Dienste. |
gplayFree | net.osmand | Google Play OsmAnd-Version - verwendet Google Play-Dienste. |
gplayFull | net.osmand.plus | Google Play OsmAnd+-Version - verwendet Google Play-Dienste. |
huawei | net.osmand | Spezial-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.
- Richten Sie zunächst die Entwicklungsumgebung ein, siehe Entwicklungsumgebung.
- 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 ...
- 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 Gradle-Build-Aufgabe
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 & 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)
- OsmAnd-api-sample - die einfachste Beispielanwendung, die über die AIDL-Schnittstelle und Intents mit dem bereits installierten OsmAnd interagiert.
- OsmAnd-map-sample - eine Beispielanwendung, die OsmAnd vollständig als SDK integriert hat. Ermöglicht die Verwendung aller internen APIs.