Realm عبارة عن قاعدة بيانات متنقلة تعمل مباشرة داخل الهواتف أو الأجهزة اللوحية أو الأجهزة القابلة للارتداء. يحتوي هذا المستودع على الكود المصدري لإصدار Java من Realm، والذي يعمل حاليًا على نظام Android فقط.
أصبح Realm Kotlin SDK الآن GA ويمكن استخدامه لكل من Android وKotlin Multiplatform. بينما لا نزال نضيف الميزات، يرجى التفكير في استخدام Realm Kotlin لأي مشروع جديد، وأخبرنا إذا فاتك أي شيء هناك!
يرجى الاطلاع على التعليمات التفصيلية في مستنداتنا لإضافة المجال إلى مشروعك.
يمكن العثور على وثائق المجال على mongodb.com/docs/atlas/device-sdks/sdk/Java/. يوجد مرجع واجهة برمجة التطبيقات على mongodb.com/docs/atlas/device-sdks/sdk/Java/api/.
إذا كنت ترغب في اختبار إصلاحات الأخطاء أو الميزات الحديثة التي لم يتم تجميعها في إصدار رسمي بعد، فيمكنك استخدام إصدار -SNAPSHOT من إصدار التطوير الحالي لـ Realm via Gradle، المتوفر على Sonatype OSS
buildscript {
repositories {
mavenCentral()
google()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
jcenter()
}
dependencies {
classpath "io.realm:realm-gradle-plugin:<version>-SNAPSHOT"
}
}
allprojects {
repositories {
mavenCentral()
google()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
jcenter()
}
}
راجع version.txt للحصول على رقم الإصدار الأحدث.
في حالة عدم رغبتك في استخدام الإصدار المترجم مسبقًا، يمكنك إنشاء Realm بنفسك من المصدر.
قم بتنزيل JDK 8 من Oracle وقم بتثبيته.
أحدث إصدار مستقر من Android Studio. حاليا 4.1.1.
قم بتنزيل وتثبيت Android SDK Build-Tools 29.0.3 و Android Pie (API 29) (على سبيل المثال من خلال Android SDK Manager في Android Studio).
قم بتثبيت الإصدار 3.18.4 من CMake وقم ببناء Ninja.
قم بتثبيت NDK (جنبًا إلى جنب) 21.0.6113669 من مدير SDK في Android Studio. تذكر التحقق من ☑ Show package details
في المدير لعرض جميع الإصدارات المتاحة.
أضف متغير بيئة Android المنزلية إلى ملفك الشخصي:
export ANDROID_HOME=~/Library/Android/sdk
إذا كنت تقوم بتشغيل Android Studio من macOS Finder، فيجب عليك أيضًا تشغيل الأمر التالي:
launchctl setenv ANDROID_HOME "$ANDROID_HOME"
إذا كنت ترغب في تحديد الموقع الذي تريد تخزين أرشيفات Realm Core فيه، فحدد متغير البيئة REALM_CORE_DOWNLOAD_DIR
. إنه يتيح التخزين المؤقت لعناصر الإصدار الأساسية.
export REALM_CORE_DOWNLOAD_DIR=~/.realmCore
يجب على مستخدمي macOS أيضًا تشغيل الأمر التالي لـ Android Studio لرؤية متغير البيئة هذا.
launchctl setenv REALM_CORE_DOWNLOAD_DIR "$REALM_CORE_DOWNLOAD_DIR"
ستكون فكرة جيدة إضافة جميع تعريفات الرموز (وأوامر launchctl
المصاحبة لها، إذا كنت تستخدم macOS) إلى ~/.profile
الخاص بك (أو ~/.zprofile
إذا كان shell تسجيل الدخول هو zsh
)
إذا قمت بتطوير Realm Java باستخدام Android Studio، فنوصيك باستبعاد بعض الأدلة من فهرسة الهدف عن طريق تنفيذ الخطوات التالية على Android Studio. إنه يسرع حقًا مرحلة الفهرسة بعد الإنشاء.
/realm/realm-library/
، حدد مجلدات build
و .cxx
distribution
في عرض Project
.Command + Shift + A
لفتح مربع حوار Find action
. إذا كنت لا تستخدم خريطة المفاتيح الافتراضية أو تستخدم macOS، فيمكنك العثور على مفتاح الاختصار الخاص بك في تفضيلات Keymap
من خلال البحث Find action
.Excluded
(وليس Exclude
) وحدده. يجب أن تصبح أيقونات المجلدات المحددة باللون البرتقالي (في السمة الافتراضية). يمكنك تنزيل الكود المصدري لـ Realm Java باستخدام git. نظرًا لأن realm-Java يحتوي على وحدات git فرعية، فاستخدم --recursive
عند استنساخ المستودع.
git clone [email protected]:realm/realm-java.git --recursive
أو
git clone https://github.com/realm/realm-java.git --recursive
بمجرد الانتهاء من جميع المتطلبات المسبقة، يتم بناء العالم بأمر بسيط.
./gradlew assemble
سيؤدي هذا الأمر إلى إنشاء:
قد يستغرق البناء الكامل ساعة أو أكثر حتى يكتمل.
من الممكن إنشاء Realm Java باستخدام إصدار الوحدة الفرعية من Realm Core. يتم ذلك عن طريق توفير المعلمة التالية عند الإنشاء: -PbuildCore=true
.
./gradlew assembleBase -PbuildCore=true
يمكنك إيقاف تشغيل التحسينات بين الإجراءات باستخدام المعلمة التالية: -PenableLTO=false
.
./gradlew assembleBase -PenableLTO=false`
ملحوظة: بناء المتغير Base
سيؤدي دائمًا إلى إنشاء عالم أساسي.
ملاحظة: يتم تمكين التحسينات بين الإجراءات بشكل افتراضي.
ملاحظة: إذا كنت تريد البناء من المصدر داخل Android Studio، فستحتاج إلى تحديث معلمات Gradle بالانتقال إلى Settings > Build, Execution, Deployment > Compiler > Command-line options
وإضافة -PbuildCore=true
أو -PenableLTO=false
فيه. وبدلاً من ذلك يمكنك إضافته إلى gradle.properties
الخاص بك:
buildCore=true
enableLTO=false
ملاحظة: إذا كنت تعتمد على OSX، فقد ترغب في منع Gatekeeper من حظر كافة ملفات NDK التنفيذية عن طريق تعطيلها: sudo spctl --master-disable
. تذكر أن تقوم بتمكينه بعد ذلك: sudo spctl --master-enable
./gradlew tasks
جميع المهام المتاحة./gradlew javadoc
سيقوم بإنشاء Javadocs./gradlew monkeyExamples
سيقوم بإجراء اختبارات القرد على جميع الأمثلة./gradlew installRealmJava
سيقوم بتثبيت مكتبة Realm والمكون الإضافي لـ mavenLocal()./gradlew clean -PdontCleanJniFiles
سيزيل جميع الملفات التي تم إنشاؤها باستثناء الملفات ذات الصلة بـ JNI. وهذا يقلل من وقت إعادة الترجمة كثيرًا../gradlew connectedUnitTests -PbuildTargetABIs=$(adb shell getprop ro.product.cpu.abi)
سيقوم بإنشاء ملفات JNI فقط لـ ABI الذي يتوافق مع الجهاز المتصل. تتطلب هذه الاختبارات وجود خادم كائن قيد التشغيل (انظر أدناه)قد يؤدي إنشاء Javadoc باستخدام الأمر أعلاه إلى إنشاء تحذيرات. يتم إنشاء Javadoc بالرغم من التحذيرات.
تحتوي جميع مشاريع Gradle في هذا المستودع على مهمة wrapper
لإنشاء Gradle Wrappers. تشير هذه المهام إلى خاصية gradle
المحددة في /dependencies.list
لتحديد إصدار Gradle لإنشاء الأغلفة. لدينا برنامج نصي ./tools/update_gradle_wrapper.sh
لأتمتة هذه الخطوات. عند قيامك بتحديث Gradle Wrappers، يرجى اتباع الخطوات التالية.
gradle
المحددة في /dependencies.list
إلى إصدار Gradle Wrapper الجديد./tools/update_gradle_wrapper.sh
.يتم تنظيم المستودع في ستة مشاريع Gradle:
realm
: يحتوي على المكتبة الفعلية (بما في ذلك طبقة JNI) ومعالج التعليقات التوضيحية.realm-annotations
: تحتوي على التعليقات التوضيحية المحددة بواسطة المجال.realm-transformer
: يحتوي على محول البايت كود.gradle-plugin
: يحتوي على البرنامج المساعد Gradle.examples
: يحتوي على أمثلة المشاريع. يعتمد هذا المشروع بشكل مباشر على gradle-plugin
الذي يضيف تبعية إلى القطع الأثرية التي ينتجها realm
. هذا يعني أن ./gradlew clean
و ./gradlew cleanExamples
سيفشلان إذا لم يتم تنفيذ assembleExamples
أولاً. لاحظ أن IntelliJ لا يدعم مشاريع متعددة في نفس النافذة لذا يجب استيراد كل مشروع من مشاريع Gradle الستة كمشروع IntelliJ منفصل.
نظرًا لأن المستودع يحتوي على العديد من مشاريع Gradle المستقلة تمامًا، يتم تشغيل العديد من الإصدارات المستقلة لتجميعها. رؤية سطر مثل: :realm:realm-library:compileBaseDebugAndroidTestSources UP-TO-DATE
في سجل الإنشاء لا يعني أنه يمكنك تشغيل ./gradlew :realm:realm-library:compileBaseDebugAndroidTestSources
.
يحتوي المجلد ./examples
على العديد من نماذج المشاريع التي توضح كيفية استخدام Realm. إذا كانت هذه هي المرة الأولى التي تقوم فيها بالخروج أو سحب إصدار جديد من هذا المستودع لتجربة الأمثلة، فيجب عليك الاتصال بـ ./gradlew installRealmJava
من دليل المستوى الأعلى أولاً. بخلاف ذلك، لن يتم تجميع الأمثلة لأنها تعتمد على جميع عناصر Realm المثبتة في mavenLocal()
.
يمكن تنزيل الأمثلة المستقلة من موقع الويب.
لإجراء هذه الاختبارات، يجب أن يكون لديك جهاز متصل بالكمبيوتر المصمم، ويجب أن يكون أمر adb
موجودًا في PATH
الخاص بك
قم بتوصيل جهاز Android وتحقق من أن الأمر adb devices
يعرض جهازًا متصلاً:
adb devices
List of devices attached
004c03eb5615429f device
تشغيل اختبارات الأجهزة:
cd realm
./gradlew connectedBaseDebugAndroidTest
قد تستغرق هذه الاختبارات ما يصل إلى نصف ساعة حتى تكتمل.
تتطلب الاختبارات في realm/realm-library/src/syncIntegrationTest
خادم اختبار قيد التشغيل حتى تعمل. يمكن إنشاء صورة عامل الإرساء من tools/sync_test_server/Dockerfile
لتشغيل خادم الاختبار. ستقوم tools/sync_test_server/start_server.sh
بإنشاء صورة عامل الإرساء تلقائيًا.
لتشغيل خادم اختبار محليًا:
قم بتثبيت عامل الإرساء وتشغيله.
تشغيل tools/sync_test_server/start_server.sh
:
cd tools/sync_test_server
./start_server.sh
لن يكتمل هذا الأمر حتى يتوقف الخادم.
تشغيل اختبارات الأجهزة
في نافذة طرفية جديدة، قم بتشغيل:
cd realm
./gradlew connectedObjectServerDebugAndroidTest
لاحظ أنه في حالة استخدام VirtualBox (Genymotion)، يجب ربط الشبكة حتى تعمل الاختبارات. يتم ذلك في VirtualBox > Network
. اضبط "المحول 2" على "المحول الموصول".
قد تستغرق هذه الاختبارات ما يصل إلى نصف ساعة حتى تكتمل.
راجع CONTRIBUTING.md لمزيد من التفاصيل!
يلتزم هذا المشروع بمدونة قواعد سلوك MongoDB. من خلال المشاركة، يتوقع منك الحفاظ على هذا الرمز. يرجى الإبلاغ عن السلوك غير المقبول إلى [email protected].
يحتوي الدليل realm/config/studio
على ملفات الوبر والأنماط الموصى بها لرمز المشروع. قم باستيرادها من Android Studio باستخدام Android Studio > التفضيلات... > نمط الكود > إدارة... > استيراد، أو Android Studio > التفضيلات... > عمليات التفتيش > إدارة... > استيراد. بمجرد الاستيراد، حدد النمط/الوبر في القائمة المنسدلة الموجودة على يسار الزر "إدارة...".
يتم نشر Realm Java بموجب ترخيص Apache 2.0.
يتم أيضًا نشر Realm Core بموجب ترخيص Apache 2.0 وهو متاح هنا.
إذا كنت تستخدم Realm وكنت سعيدًا به، فكل ما نطلبه منك هو أن تفكر في إرسال تغريدة تشير إلى @realm لمشاركة أفكارك!
وإذا لم يعجبك ذلك، فيرجى إخبارنا بما تريد تحسينه، حتى نتمكن من إصلاحه!