Hoe de Android-versie te compileren
Android SDK: Min sdk-versie: 21 Doel sdk-versie: 29 Doel sdk-tools: 29
Android NDK: 23.
Android apk compileren
- Stel eerst de ontwikkelomgeving in.
- Gradle (opdrachtregel):
- Specificeer omgevingsvariabelen. ANDROID_SDK en ANDROID_HOME zijn waar Android Studio dingen plaatst:
export ANDROID_SDK=/[uw-pad]/Android/sdk
export ANDROID_NDK=/[uw-pad]/android-ndk-23
export ANDROID_HOME=/[uw-pad]/Android/sdk- Compileer met opdrachtregel
cd android/OsmAnd && ../gradlew assembleNightlyFreeLegacyFatDebug
- Android Studio:
import android project and run module flavor `android.OsmAnd`
- U kunt onze debug.keystore gebruiken om builds compatibel te maken met de nightly build.
Gradle-taken / -smaken
Gradle-taak assembleNightlyFreeLegacyFatDebug produceert apk op android/OsmAnd/build/outputs/apk/ nightlyFreeLegacyFat/debug/OsmAnd-nightlyFree-legacy-fat-debug.apk. Taaknaam assembleNightlyFreeLegacyFatDebug bestaat uit:
- assemble - standaardtaak om apk te bouwen
- nightlyFree - build-smaak hieronder beschreven
- legacy - legacy / opengl / opengldebug - definieert of de geproduceerde apk native bibliotheken zal hebben om opengl-kaartweergave te gebruiken of niet. Meer informatie in de OsmAnd-ontwikkelingsplug-in.
- fat - fat (alle native targets) / armv7 / arm64 / x86 / armonly - selecteer welke native bibliotheken in apk zullen zitten.
- debug - debug / release - standaardtaak
Om een bundel te bouwen, kunt u bundle${FLAVOR}LegacyFatRelease
gebruiken.
Smaak | Pakket | Beschrijving |
---|---|---|
nightlyFree | net.osmand.dev | Nightly free build die naast beide GPlay-versies kan worden geïnstalleerd voor test- en verkenningsdoeleinden |
androidFull | net.osmand.plus | Volledige OsmAnd~-versie kan worden gebruikt voor F-Droid-builds. Gebruikt geen GooglePlay-services. |
gplayFree | net.osmand | Google Play OsmAnd-versie - gebruikt GooglePlay-services. |
gplayFull | net.osmand.plus | Google Play OsmAnd+-versie - gebruikt GooglePlay-services. |
huawei | net.osmand | Speciale build voor Huawei-markt - gebruikt Huawei-services maar geen Google Play |
Debuggen
NDK-debuggen inschakelen voor legacy native bibliotheek (OsmAnd-core-legacy)
In OsmAnd/OsmAnd/jni/Application.mk de regels uncommenten
APP_OPTIM := debug
APP_DEBUG := true
Voeg debug-symbolen toe in de Android Studio-projectconfiguratie. Ga hiervoor naar Edit Configuration / selecteer in het linkermenu Android App "OsmAnd" / selecteer aan de rechterkant het tabblad "Debugger". En voeg OsmAnd/obj/local toe waar bibliotheken voor verschillende configuraties (arm64-v8a, armeabi-v7a, x86, x86_64) worden gebouwd.
OpenGL-bibliotheek compileren
De OpenGL-bibliotheek is nodig voor doelen zoals assembleNightlyFreeOpenglFatDebug en wordt standaard gedownload van OsmAnd ivy repository - gradle task. Voor lokale ontwikkeling moet u mogelijk die bibliotheek compileren en publiceren naar de lokale ivy-repo.
- Stel eerst de ontwikkelomgeving in, zie ontwikkelomgeving.
- Installeer tools.
- Android SDK - 29.
- Android NDK - 23.
- CMake > 3.6 (cmake -version).
- SWIG - 4.1.1 (of compatibel).
- Lokale c++ compiler (bij voorkeur clang).
- Bash-tools: wget, curl, python ...
- Gradle (opdrachtregel):
- Specificeer omgevingsvariabelen. ANDROID_SDK en ANDROID_HOME zijn waar Android Studio dingen plaatst:
export ANDROID_SDK=/[uw-pad]/Android/sdk
export ANDROID_NDK=/[uw-pad]/android-ndk-23
export ANDROID_HOME=/[uw-pad]/Android/sdk- Compileer met gradle build task
cd core/wrappers/android && ../gradlew build
Hint: Compilatie kan lang duren en u hebt waarschijnlijk niet alle platforms nodig, dus u kunt ongewenste architecturen in het script uitcommentariëren en alleen bouwen voor 1 platform (x86, x86_64, arm, arm64) debug of release.
Debuggen
Nog te voltooien: hoe Android NDK-debuggen in te stellen.
API-voorbeelden compileren
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
Er zijn 2 soorten voorbeeld-apps die door OsmAnd worden geleverd, ze zijn allemaal vertegenwoordigd in de osmand-api-demo Github-repo en worden regelmatig gecompileerd op OsmAnd Builder.
Compileerscript:
(cd OsmAnd-api-sample && ./gradlew clean assembleRelease)
(cd OsmAnd-map-sample && ./gradlew clean assembleRelease)
- OsmAnd-api-sample - de eenvoudigste voorbeeldtoepassing die communiceert met reeds geïnstalleerde OsmAnd via AIDL-interface en Intents.
- OsmAnd-map-sample - een voorbeeldtoepassing heeft OsmAnd volledig geïntegreerd als SDK. Maakt het mogelijk om alle interne API's te gebruiken.