Як скомпілювати вер сію для Android
Android SDK: Мінімальна версія SDK: 21 Цільова версія SDK: 29 Інструменти цільового SDK: 29
Android NDK: 23.
Скомпілювати Android apk
- Спочатку налаштуйте середовище розробки.
- Gradle (командний рядок):
- Вкажіть змінні середовища. ANDROID_SDK та ANDROID_HOME – це місця, де Android Studio розміщує файли:
export ANDROID_SDK=/[your-path]/Android/sdk
export ANDROID_NDK=/[your-path]/android-ndk-23
export ANDROID_HOME=/[your-path]/Android/sdk- Скомпілюйте за допомогою командного рядка
cd android/OsmAnd && ../gradlew assembleNightlyFreeLegacyFatDebug
- Android Studio:
import android project and run module flavor `android.OsmAnd`
- Ви можете використовувати наш debug.keystore, щоб зробити збірки сумісними з нічною збіркою.
Завдання / варіанти Gradle
Завдання Gradle assembleNightlyFreeLegacyFatDebug створить apk у android/OsmAnd/build/outputs/apk/ nightlyFreeLegacyFat/debug/OsmAnd-nightlyFree-legacy-fat-debug.apk. Назва завдання assembleNightlyFreeLegacyFatDebug складається з:
- assemble - стандартне завдання для створення apk
- nightlyFree - варіант збірки, описаний нижче
- legacy - legacy / opengl / opengldebug - визначає, чи буде створений apk мати нативні бібліотеки для використання рендерингу карти opengl чи ні. Більше інформації в плагіні розробки OsmAnd.
- fat - fat (усі нативні цілі) / armv7 / arm64 / x86 / armonly - виберіть, які нативні бібліотеки будуть всередині apk.
- debug - debug / release - стандартне завдання
Щоб створити пакет, ви можете використовувати bundle${FLAVOR}LegacyFatRelease
.
Варіант | Пакет | Опис |
---|---|---|
nightlyFree | net.osmand.dev | Нічна безкоштовна збірка, яку можна встановити поруч з обома версіями GPlay для тестування та дослідження |
androidFull | net.osmand.plus | Повна версія OsmAnd~ може використовуватися для збірок F-Droid. Не використовує сервіси GooglePlay. |
gplayFree | net.osmand | Версія OsmAnd для Google Play - використовує сервіси GooglePlay. |
gplayFull | net.osmand.plus | Версія OsmAnd+ для Google Play - використовує сервіси GooglePlay. |
huawei | net.osmand | Спеціальна збірка для ринку Huawei - використовує сервіси Huawei, але не Google Play |
Налагодження
Увімкнути налагодження NDK для застарілої нативної бібліотеки (OsmAnd-core-legacy)
У OsmAnd/OsmAnd/jni/Application.mk розкоментуйте рядки
APP_OPTIM := debug
APP_DEBUG := true
Додайте символи налагодження в конфігурацію проекту Android Studio. Для цього перейдіть до Edit Configuration / у лівому меню виберіть Android App "OsmAnd" / у правій частині виберіть вкладку "Debugger". І додайте OsmAnd/obj/local, де створюються бібліотеки для різних конфігурацій (arm64-v8a, armeabi-v7a, x86, x86_64).
Скомпілювати бібліотеку OpenGL
Бібліотека Opengl потрібна для таких цілей, як assembleNightlyFreeOpenglFatDebug, і за замовчуванням завантажується з репозиторію OsmAnd ivy - завдання gradle. Для локальної розробки вам може знадобитися скомпілювати ці бібліотеки та опублікувати їх у локальному репозиторії ivy.
- Спочатку налаштуйте середовище розробки, див. середовище розробки.
- Встановіть інструменти.
- Android SDK - 29.
- Android NDK - 23.
- CMake > 3.6 (cmake -version).
- SWIG - 4.1.1 (або сумісний).
- Лока льний компілятор c++ (бажано clang).
- Інструменти Bash: wget, curl, python ...
- Gradle (командний рядок):
- Вкажіть змінні середовища. ANDROID_SDK та ANDROID_HOME – це місця, де Android Studio розміщує файли:
export ANDROID_SDK=/[your-path]/Android/sdk
export ANDROID_NDK=/[your-path]/android-ndk-23
export ANDROID_HOME=/[your-path]/Android/sdk- Скомпілюйте за допомогою завдання збірки gradle
cd core/wrappers/android && ../gradlew build
Підказка: Компіляція може зайняти багато часу, і вам, ймовірно, не потрібні всі платформи, тому ви можете закоментувати небажані архітектури в скрипті та зібрати лише для 1 платформи (x86, x86_64, arm, arm64) налагодження або випуску.
Налагодження
Буде доповнено: як налаштувати налагодження Android ndk.
Скомпілювати приклади API
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
OsmAnd надає 2 типи прикладів додатків, усі вони представлені в репозиторії Github osmand-api-demo та регулярно компілюються на OsmAnd Builder.
Скрипт компіляції:
(cd OsmAnd-api-sample && ./gradlew clean assembleRelease)
(cd OsmAnd-map-sample && ./gradlew clean assembleRelease)
- OsmAnd-api-sample - найпростіший приклад додатка, який взаємодіє з уже встановленим OsmAnd через інтерфейс AIDL та інтенти.
- OsmAnd-map-sample - приклад додатка, який повністю інтегрував OsmAnd всередину себе як SDK. Дозволяє використовувати всі внутрішні API.