AndroidX: ما هي، المكتبات الأساسية والترحيل

المؤلف: IT Sectr نُشر: 2026-05-01 وقت القراءة: 8 دق

AndroidX هي مجموعة من مكتبات Jetpack من Google والتي حلت محل Support Library القديمة. وفقاً لـ Google Developer Documentation, 2024، توفر AndroidX مكونات متوافقة مع الإصدارات السابقة لجميع إصدارات Android وهي معيار تطوير Android الحديث. تشمل مكتبات AndroidX أدوات لواجهة المستخدم والتنقل ومعالجة البيانات والكاميرا والمهام الخلفية.

الملخص

  • AndroidX هي خليفة Support Library، تم إصدارها في 2018 كجزء من Jetpack
  • مكتبات AndroidX مستقلة عن إصدار API وتعمل على أجهزة Android 4.0+
  • الترحيل من Support Library يتم تلقائياً عبر Android Studio
  • الوحدات الأساسية: Activity وFragment وRecyclerView وNavigation وRoom وWorkManager
  • الإصدار الدلالي يسمح بتحديث المكتبات بشكل مستقل عن بعضها البعض

ما هي AndroidX

AndroidX هي مكتبة مفتوحة المصدر تشكل جزءاً من Android Jetpack. أصدرت Google AndroidX في 2018 كبديل لـ Support Library، التي كانت توفر مكونات متوافقة مع الإصدارات السابقة منذ 2011.

قبل AndroidX، كان لكل مكون من Support Library إصداره الخاص المرتبط بـ targetSdkVersion. كان على المطورين تضمين إصدارات متعددة من نفس المكتبة في وقت واحد، مما أدى إلى تعارض في التبعيات وزيادة حجم ملف APK.

AndroidX حلت هذه المشكلة من خلال الإصدار الدلالي (SemVer). الآن كل مكتبة هي قطعة Gradle مستقلة بإصدار بتنسيق MAJOR.MINOR.PATCH. يمكن للمطورين تحديث Room من 2.4.0 إلى 2.6.0 دون لمس Activity أو Fragment أو الوحدات الأخرى.

تاريخ AndroidX

صدر الإصدار المستقر الأول من AndroidX 1.0.0 في ديسمبر 2018 بالتزامن مع Android 9 Pie. أعلنت Google أن Support Library تدخل وضع الصيانة وأن جميع المكونات الجديدة — Navigation وWorkManager وCompose — ستصدر فقط كجزء من AndroidX. آخر إصدار من Support Library — 28.0.0 — صدر في 2019.

وفقاً لـ Google I/O 2019، كان السبب الرئيسي للانتقال هو الحاجة لتسريع إصدار التحديثات. في النموذج القديم، كانت مكتبة تنتظر أخرى بسبب إصدار حزمة واحد. أزالت AndroidX هذا الاختناق، وبدأ Jetpack في تلقي إصدارات رئيسية وثانوية كل 2–3 أشهر.

الفرق بين AndroidX وSupport Library

الفرق الرئيسي هو مساحة الاسم. استخدمت Support Library الحزمة android.support.*، بينما انتقلت AndroidX إلى androidx.*. هذا التغيير سمح بتقسيم المكتبات إلى وحدات وظيفية. على سبيل المثال، كان Fragment في Support Library يسمى android.support.v4.app.Fragment، بينما في AndroidX هو androidx.fragment.app.Fragment.

الفرق الثاني المهم هو الهندسة. تأتي AndroidX مع Jetpack — مجموعة من توصيات هندسة التطبيقات. يشمل Jetpack ViewModel وLiveData وRoom وNavigation وWorkManager، والتي صُممت كنظام متكامل وليس أدوات متناثرة.

التوافق مع الإصدارات السابقة تحسن أيضاً. بينما دعمت Support Library Android 2.3+، تضمن AndroidX العمل على الأجهزة التي تعمل بنظام Android 4.0 (API 14) وما فوق — وهو ما يغطي أكثر من 99% من الأجهزة النشطة وفقاً لـ Google Play Console 2024.

مكونات مكتبات AndroidX

AndroidX تضم أكثر من 100 مكتبة مقسمة حسب الفئة. كل مجموعة تغطي مجالاً محدداً: واجهة المستخدم، البيانات، التنقل، المهام الخلفية، الوسائط المتعددة والاختبار. فيما يلي نظرة عامة على الوحدات الرئيسية.

المكتبات الأساسية والنواة

androidx.core:core هي المكتبة الأساسية التي تحتوي على إصدارات متوافقة مع الإصدارات السابقة من واجهات برمجة التطبيقات النظامية: NotificationCompat وActivityCompat وContextCompat. توفر وحدة core-ktx امتدادات Kotlin للعمل مع الملفات وSharedPreferences وعناصر العرض.

مكتبة androidx.activity:activity قدمت واجهة برمجة تطبيقات Activity Result (registerForActivityResult)، لتحل محل startActivityForResult القديم. تدير وحدة fragment:fragment دورة حياة الأجزاء وتدعم FragmentManager للمعاملات والمكدس الرجعي.

androidx.lifecycle هي أساس بنية Jetpack. يسمح LifecycleOwner وLifecycleObserver للمكونات بالتفاعل مع تغييرات دورة حياة Activity أو Fragment. يحتفظ ViewModel بالبيانات أثناء تدوير الشاشة، بينما يقوم LiveData بإعلام واجهة المستخدم بتغييرات البيانات.

kotlin
class MainViewModel : ViewModel() {
    private val _users = MutableLiveData<List<User>>()
    val users: LiveData<List<User>> = _users

    fun loadUsers() {
        viewModelScope.launch {
            val result = repository.getUsers()
            _users.value = result
        }
    }
}

مكتبات واجهة المستخدم

androidx.recyclerview:recyclerview هو مكون قوي لعرض القوائم والشبكات. يدعم RecyclerView LayoutManager (LinearLayoutManager، GridLayoutManager) وItemDecoration والرسوم المتحركة عبر ItemAnimator. تعمل مكتبة ListAdapter مع AsyncListDiffer على تبسيط تحديث القائمة مع حساب الفروقات التلقائي.

androidx.navigation:navigation هي مكتبة للتنقل بين الشاشات. يعمل مكون التنقل مع NavHostFragment وNavController، ويدعم Safe Args لتمرير المعاملات المقيدة وDeep Links للروابط الخارجية. يصف NavGraph جميع المسارات في ملف XML.

androidx.compose.ui هو إطار عمل واجهة مستخدم تعريفي، Jetpack Compose، المبني على Kotlin. على عكس نظام View، يعيد Compose رسم العناصر المتغيرة فقط من خلال إعادة التركيب. مكونات Material Design 3 (Button وTextField وScaffold) متاحة في وحدة material3.

المكتبةالقطعةالغرض
Fragmentandroidx.fragmentإدارة الأجزاء والمعاملات
RecyclerViewandroidx.recyclerviewقوائم وشبكات محسنة
Navigationandroidx.navigationالتنقل بين الشاشات
Compose UIandroidx.compose.uiواجهة مستخدم تعريفية في Kotlin

مكتبات البيانات

androidx.room:room هو ORM للتخزين المحلي للبيانات. يقوم Room بإنشاء فئات DAO من استعلامات SQLite المشروحة، ويتحقق من صحة بناء جملة SQL في وقت الترجمة، ويدعم RxJava وKotlin Flow. يتضمن الإصدار 2.6 دعم KSP لتوليد كود أسرع.

androidx.work:workmanager هي مكتبة للمهام الخلفية مع تنفيذ مضمون. يدعم WorkManager المهام الدورية وسلاسل العمل (beginWith، then) ومعايير التشغيل (Constraints: الشبكة، الشحن، التخزين). حتى إذا كان التطبيق مغلقاً، يقوم WorkManager بتسليم المهمة بعد إعادة تشغيل الجهاز.

androidx.datastore:datastore هو بديل حديث لـ SharedPreferences. يستخدم DataStore Kotlin Coroutines وFlow، ويعمل بشكل متزامن وغير متزامن، مما يمنع حظر مؤشر ترابط واجهة المستخدم. يخزن Preferences DataStore أزواج مفتاح-قيمة بسيطة، بينما يتعامل Proto DataStore مع الكائنات المقيدة عبر Protocol Buffers.

كيفية الترحيل إلى AndroidX

الترحيل التلقائي هو الطريقة الموصى بها من Google للانتقال من Support Library إلى AndroidX. يتضمن Android Studio منذ الإصدار 3.2 أداة مدمجة Refactor Migrate to AndroidX، والتي تستبدل مساحات الأسماء وتحدث التبعيات في build.gradle.

قبل الترحيل، يجب تحديث إصدار compileSdk إلى 28 أو أعلى. تأكد أيضاً من أن جميع المكتبات الخارجية تدعم AndroidX. إذا كان أحد التبعيات لم يهاجر بعد، استخدم العلم android.enableJetifier=true في gradle.properties — فهو يعيد كتابة البايت كود للمكتبات الخارجية تلقائياً.

الترحيل التلقائي في Android Studio

في Android Studio، اختر Refactor Migrate to AndroidX من القائمة. سيقوم البيئة المتكاملة بفحص المشروع بالكامل، والعثور على جميع الاستيرادات من الحزمة android.support.* واستبدالها بـ androidx.*. سيتم أيضاً تحديث التبعيات في app/build.gradle — سيتم استبدال قطع Support Library بإصدارات AndroidX المقابلة.

بعد الترحيل، قد يُظهر Gradle Sync أخطاء إذا لم يتم العثور على بعض التبعيات. تحقق من قائمة المكتبات المستخدمة في توثيق Google Maven — جميع قطع AndroidX منشورة على google(). إذا كانت المكتبة غير متوفرة، أضف mavenCentral() في repositories.

groovy
android {
    compileSdk 34
}

dependencies {
    // مكتبة الدعم (قديمة)
    // implementation 'com.android.support:appcompat-v7:28.0.0'
    
    // AndroidX
    implementation 'androidx.core:core-ktx:1.13.1'
    implementation 'androidx.appcompat:appcompat:1.7.0'
    implementation 'androidx.activity:activity-ktx:1.9.3'
    implementation 'androidx.fragment:fragment-ktx:1.8.5'
    implementation 'androidx.recyclerview:recyclerview:1.3.2'
    implementation 'androidx.room:room-runtime:2.6.1'
    ksp 'androidx.room:room-compiler:2.6.1'
}

الترحيل اليدوي

إذا كان المشروع كبيراً جداً أو يحتوي على عروض مخصصة من Support Library، قد يكون الاستبدال التلقائي غير كامل. استبدل يدوياً جميع السلاسل في الكود: غير الاستيرادات وسمات XML (app/src/main/res) والمراجع في البيان. لسمات Support Library، البادئة android: تتغير إلى app: (مثلاً، app:cardCornerRadius بدلاً من android:cardCornerRadius).

بعد الترحيل اليدوي، تحقق من مراجع R. كانت Support Library تصدر الموارد عبر android.support.v7.appcompat.R، بينما تستخدم AndroidX androidx.appcompat.R. ابحث في المشروع واستبدل جميع المراجع إلى مسارات R القديمة. يجب أن يكتمل بناء المشروع بدون أخطاء أو تحذيرات إهمال.

فوائد استخدام AndroidX

الميزة الأولى لـ AndroidX هي النمطية. أنت تضم فقط المكتبات التي تستخدمها فعلياً. إذا كان تطبيقك يحتاج فقط RecyclerView وNavigation، ليست هناك حاجة لجلب Support Library بأكملها مع جميع مكونات العرض. هذا يقلل من حجم APK ويسرع وقت البناء.

الميزة الثانية هي التحديثات المنتظمة. يصدر Jetpack إصدارات مستقرة كل 1–3 أشهر. Room 2.6.0، الذي صدر في 2024، أضاف دعم KSP والتوافق مع Kotlin 2.0. Navigation 2.8.0 قدم مسارات آمنة النوع تعتمد على Kotlinx Serialization. يحصل المطورون على ميزات جديدة دون انتظار الإصدار التالي من Android.

الميزة الثالثة هي التكامل مع Kotlin. جميع مكتبات AndroidX لديها وحدات -ktx مع دوال امتداد. يقوم viewLifecycleOwner.lifecycleScope بتشغيل coroutines في سياق fragment، ويعالج collectLatest Flow، وSharedFlow وStateFlow متوافقان تماماً مع المكونات الواعية بدورة الحياة. هذا يجعل الكود أكثر إيجازاً وأماناً.

التوافق مع الإصدارات السابقة هو ميزة رئيسية لـ AndroidX مقارنة بواجهات برمجة التطبيقات الجديدة للمنصة. يمكنك استخدام AppCompatDelegate.setDefaultNightMode للسمة الداكنة على Android 4.0+ وNotificationCompat.setBubble للفقاعات على Android 5.0+ وLocationRequestCompat للموقع المدمج على Android 4.0+. تصل تغطية الأجهزة إلى 99% دون زيادة الحد الأدنى لإصدار SDK.

الميزة الرابعة هي الاختبار. تتضمن AndroidX مكتبة androidx.test لكتابة الاختبارات الآلية والوحدة. يتيح FragmentScenario وActivityScenario اختبار مكونات واجهة المستخدم بشكل معزول، بينما يتيح TestNavHostController التحقق من التنقل دون تشغيل جهاز حقيقي. يكمل MockK وRobolectric النظام البيئي.

الأسئلة الشائعة

ما الفرق بين AndroidX وSupport Library؟

AndroidX تستخدم مساحة الاسم androidx.* بدلاً من android.support.*، ولها إصدار مستقل (SemVer)، وتتضمن مكتبات Jetpack وتدعم امتدادات Kotlin -ktx. تم تجميد Support Library عند الإصدار 28.0.0 في 2019.

كيفية إضافة AndroidX لمشروع جديد؟

في Android Studio، فعّل العلم Use AndroidX في خطوة إنشاء المشروع. للمشاريع الحالية، أضف android.useAndroidX=true وandroid.enableJetifier=true في gradle.properties. ثم استبدل التبعيات في build.gradle بقطع من مجموعة androidx.

هل الترحيل إلى AndroidX إلزامي؟

Google Play يتطلب أن جميع التطبيقات والتحديثات تستخدم AndroidX. دعم Support Library متوقف ولم يعد يتلقى تصحيحات أمان. إذا كان تطبيقك لم يهاجر بعد، فقد يؤدي ذلك إلى رفض التحديث في Google Play Console.

ما هو Jetpack في Android؟

Jetpack هو مجموعة من المكتبات والأدوات والتوصيات من Google لتطوير تطبيقات Android. AndroidX هي أساس Jetpack. يشمل Jetpack Architecture Components (Lifecycle، ViewModel، Room) وUI (Compose، Fragment، RecyclerView) وBehavior (WorkManager، Navigation، CameraX).

هل يمكن استخدام AndroidX مع Jetpack Compose؟

نعم، Jetpack Compose نفسه جزء من AndroidX (androidx.compose.ui). مكتبات ViewModel وNavigation وRoom وWorkManager متوافقة تماماً مع Compose. توفر الدالتان collectAsState() وcollectAsStateWithLifecycle() تكامل Flow مع دوال Composable.

الخلاصة

  • AndroidX هي مجموعة حديثة من مكتبات Jetpack، خليفة Support Library مع إصدار دلالي
  • أكثر من 100 وحدة تغطي واجهة المستخدم والبيانات والتنقل والمهام الخلفية والوسائط والاختبار
  • الترحيل التلقائي في Android Studio يستبدل الاستيرادات والتبعيات بنقرات قليلة
  • امتدادات Kotlin -ktx تقلل الكود المتكرر وتتكامل مع coroutines وFlow
  • التوافق مع الإصدارات السابقة مع Android 4.0+ يغطي 99% من الأجهزة النشطة
  • Jetpack يوحد AndroidX مع التوصيات المعمارية — ViewModel وRoom وNavigation وWorkManager
  • استخدم AndroidX في جميع المشاريع الجديدة — إنه معيار الصناعة منذ 2019

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا