كيفية تجميع إصدار أندرويد
حزمة تطوير برامج أندرويد (Android SDK): الحد الأدنى لإصدار حزمة تطوير البرامج: 21 إصدار حزمة تطوير البرامج المستهدف: 29 أدوات حزمة تطوير البرامج المستهدفة: 29
حزمة تطوير برامج أندرويد الأصلية (Android NDK): 23.
تجميع ملف APK لأندرويد
- قم أولاً بإعداد بيئة التطوير.
- Gradle (سطر الأوامر):
- حدد متغيرات البيئة. حيث يقوم Android Studio بوضع الملفات: ANDROID_SDK و ANDROID_HOME:
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 | إصدار Google Play OsmAnd - يستخدم خدمات GooglePlay. |
gplayFull | net.osmand.plus | إصدار Google Play OsmAnd+ - يستخدم خدمات 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 Studio بوضع الملفات: ANDROID_SDK و ANDROID_HOME:
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
تلميح: قد يستغرق التجميع وقتًا طويلاً ومن المحتمل أنك لن تحتاج إلى جميع المنصات، لذلك يمكنك التعليق على البنية غير المرغوبة في السكربت وبناء منصة واحدة فقط (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، وكلها ممثلة في مستودع 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 و Intents.
- OsmAnd-map-sample - تطبيق عينة يحتوي على OsmAnd مدمج بالكامل بداخله كـ SDK. يسمح باستخدام جميع واجهات برمجة التطبيقات الداخلية.