تبدأ رحلتنا في استكشاف موقع مجاني شامل يضم كنوز وهي : دورات مجانية ومنح دراسية ووظائف وتدريب ومقالات مفيدة ودليل كامل لكل مجال خاص بالتكنولوجيا حصريا وبعض من المجالات الاخري لمتابعة كل جديد علي التليجرام والفيسبوك | Telegram | Facebook

500+ Android Interview Questions with Answers 2026

دورة متاحة لفترة محدودة
free-palestine free-palestine

Responsive image
منذ 5 ساعات

أهلا بك عزيزي المتابع لموقع (journey for learn) نقدم دورات بكوبونات متاحة لاول 1000 تسجيل مجاني فقط وكوبونات اخري لفترة محدودة فاذا كنت تريد ان تحصل علي كل الكورسات علي موقعنا وان تكون اول المسجلين في الكورسات المجانية قم بتسجيل الدخول أوقم بالدخول علي وسائل التواصل الاجتماعي وخصوصا التليجرام نوضح الوصف المختصر والطويل للدورات لكي تعرف الدروس التي سوف تتعلمها بسهولة ويسر :

التغطية التفصيلية لمجال الاختبار يتم تعيين بنك أسئلة التدريب الشامل هذا بشكل منهجي عبر المجالات الهندسية الفعلية التي تم اختبارها أثناء المقابلات الفنية رفيعة المستوى وتقييمات بنية الهاتف المحمول:
  • مفاهيم Android الأساسية (20%)
    • الموضوعات التي يتم تناولها: أجهزة حالة دورة حياة النشاط والجزء، ومعالجة الارتباط العميق عبر النوايا، والخدمات الأمامية والخلفية، وتسجيل BroadcastReceiver، وعملية التقديم وضع الحماية.
  • Kotlin والبرمجة (15%)
    • المواضيع التي تمت تناولها: بنيات بناء جملة Kotlin المتقدمة، ونطاقات coroutine، والتزامن المنظم، وإدارة التدفق غير المتزامن، والرسوم البيانية المخصصة لحقن التبعية باستخدام Dagger/Hilt، وأنماط هيكلية MVVM الصارمة.
  • تصميم النظام وبنيته (25%)
    • المواضيع التي تمت تناولها: قابلية التوسع في التطبيقات متعددة الوحدات، ونماذج تقليل استهلاك البطارية المحلية، وتصميم مكتبة الشبكات دون الاتصال بالإنترنت لأول مرة، وأداء مجموعة أدوات واجهة المستخدم المخصصة، وإنفاذ البنية النظيفة القوية.
  • تخزين البيانات وإدارتها (10%)
    • الموضوعات التي تمت تناولها: تحسين مكتبة استمرارية الغرفة، وتصميم مخطط علائقي SQLite المعقد، وتشفير بيانات المعاملات أثناء الراحة، والنسخ الاحتياطي التلقائي التكوينات.
    مسح تسرب الذاكرة عبر LeakCanary، وتتبع ملفات تعريف وحدة المعالجة المركزية، وتحليل اختناقات الشبكة، وملفات تعريف التطبيقات النظامية.
  • Jetpack وتطوير Android الحديث (5%)
    • الموضوعات التي تمت تناولها: أشجار تخطيط Jetpack Compose، وتحسين إعادة التركيب، وإدارة الحالة التفاعلية باستخدام LiveData/StateFlow، وأنماط تصميم ViewModel، ومكونات التنقل الآمنة من النوع.
  • السلوكية وتعاون الفريق (10%)
    • المواضيع التي تمت تناولها: استراتيجيات التعاون المباشر بين فريق الهندسة، والتواصل الفني الواضح، وحل المشكلات متعددة الوظائف، وإدارة حلقات مراجعة التعليمات البرمجية القابلة للتطوير.
  • وصف الدورة يتطلب النجاح في المقابلات الفنية لشغل مناصب هندسية متنقلة رفيعة المستوى أكثر من مجرد حفظ واجهات برمجة تطبيقات النظام الأساسي أو دورات حياة خط الأساس. تقوم الشركات من الدرجة الأولى بتقييم حدسك المعماري، وفهمك لإدارة الذاكرة، وقدرتك على هندسة أنظمة متنقلة معيارية وقابلة للاختبار وعالية الأداء. لقد قمت ببناء مستودع الأسئلة الشامل هذا لمحاكاة التقييمات الدقيقة المستندة إلى السيناريوهات التي يستخدمها مديرو الهندسة والمهندسون المعماريون الفنيون أثناء المقابلات المتعمقة. مع 550 سؤالًا فنيًا مُعدًا بدقة، تستهدف منصة التدريب هذه مفاهيم الهندسة الإنشائية الأساسية لأدوار مثل مطور Android، ومهندس Android الأول، ومهندس برامج الهاتف المحمول، ومهندس نظام Android. يتضمن كل سؤال تحليلاً شاملاً يكشف الآليات الدقيقة لسبب تفوق نهج معين بينما تفشل تطبيقات النظام الأساسي البديلة في أنظمة الإنتاج. بدلاً من التوافه الضحلة، سوف تقوم بتقسيم سيناريوهات العالم الحقيقي التي تغطي كتل الخيوط غير المتزامنة، ودقة تسرب الذاكرة، ومزامنة الخلفية المستمرة، وأشجار العرض القابلة للتركيب. من خلال الدراسة المنهجية لاختبارات التدريب هذه، ستكتسب الحدس العميق للنظام الأساسي المطلوب لتوضيح اختياراتك الهندسية بثقة، وشرح مقايضات النظام، واجتياز المقابلات القادمة في محاولتك الأولى. عينة من أسئلة التدريب على المعاينة السؤال 1: سياق دورة حياة Android الأساسية وغير المتزامنة يقوم المطور بتنفيذ تطبيق يتميز بخدمة مزامنة خلفية مستمرة طويلة الاستقصاء والتي يجب تنفيذها بأمان دون تسريب سياق النظام الأساسي عندما تخضع مكونات واجهة المستخدم لتغييرات في التكوين مثل تدوير الشاشة. يبدأ التنفيذ الأولي Coroutine داخل جزء باستخدام lifecycleScope القياسي. ماذا يحدث أثناء تدوير الشاشة، وما هي ميكانيكية النظام الأساسي التي تعمل؟
    • الخيارات:
      • أ) يستمر الكوروتين في العمل منفصلاً في الخلفية لأن lifecycleScope يتحول تلقائيًا إلى سياق دورة الحياة على مستوى التطبيق أثناء تعديلات الأجهزة.
      • ب) يتم إلغاء الكوروتين تلقائيًا لأن lifecycleScope مرتبط بشكل صارم بدورة حياة الجزء، مما يعني أن عملية الخلفية النشطة تنتهي في منتصف التنفيذ عند العرض تم تدمير التسلسل الهرمي.
      • ج) يوقف الكوروتين التنفيذ مؤقتًا في منتصف النقل ويستأنف العمل تلقائيًا بمجرد إنشاء مثيل Fragment الجديد تمامًا بعد انتهاء تكوين التدوير.
      • د) يلقي الكوروتين ConcurrentModificationException غير معالج لأن مؤشر ترابط الخلفية يحاول الوصول إلى عناصر التخطيط التي لم تعد تشغل مساحة إحداثيات الشاشة الحالية.
      • هـ) ينجو الكوروتين من تغييرات التكوين ولكنه يتسبب في تسرب شديد للذاكرة لأنه يحتفظ مرجع جذر مجموعة البيانات المهملة الصلبة إلى عناصر العرض المدمرة.
      • F) يتم تنفيذ coroutine بأمان دون انقطاع إذا قام المطور بنقل كتلة نطاق التنفيذ إلى GlobalScope مع الاحتفاظ بتكوين مرسل مؤشر الترابط الرئيسي الفوري.
    • الإجابة الصحيحة:
      • ب
    • الشرح:
      • لماذا التصحيح (ب): ترتبط دورة حياة الجزء مباشرة بنطاقه. حالة دورة حياة محددة. عند حدوث تغيير في التكوين، يتم تدمير الجزء بالكامل وإعادة إنشائه. ونتيجة لذلك، تنتقل دورة حياتها إلى الحالة المدمرة، مما يؤدي تلقائيًا إلى إلغاء جميع الكورتينات الفرعية التي تعمل ضمن هذا النطاق. يؤدي هذا إلى منع تسرب الذاكرة ولكنه ينهي عمدًا تنفيذ عملية المزامنة قيد التشغيل في الخلفية.
      • لماذا غير صحيح (أ): لا يهاجر lifecycleScope نفسه أبدًا إلى سياق التطبيق. ويظل مقترنًا بمالك دورة الحياة الذي تم إنشاؤه فيه، مما يضمن تنظيف الموارد فورًا عند انتهاء المكون المضيف.
      • لماذا غير صحيح (C): لا يمتلك إطار عمل coroutine لنظام Android آلية تخزين مؤقت أو إيقاف مؤقت تلقائي عبر دورات حياة الأجزاء المميزة؛ يفرض التدمير إلغاء الوظيفة بالكامل بدلاً من الإيقاف المؤقت.
      • لماذا غير صحيح (D): آلية الإلغاء تعاونية ويتم التحكم فيها من خلال CancellationException داخل إطار عمل coroutine، والذي لا يعطل التطبيق مع استثناء تعديل متزامن متعلق بالتخطيط.
      • لماذا غير صحيح (E): نظرًا لأن lifecycleScope يلغي نفسه بشكل صحيح، فإن المهمة لا تنجو من مرحلة التدمير، مما يعني أنها لا تحتفظ بجذر مجموعة البيانات المهملة أو تسرب عناصر العرض المدمرة.
      • لماذا غير صحيح (F): أثناء استخدام GlobalScope يمنع المهمة من التوقف أثناء التدوير، فإنه يقدم نمطًا معماريًا خطيرًا مضادًا. إذا كانت المهمة تشير إلى أي متغيرات أو مكونات محلية، فقد تتسبب في حدوث تسرب للذاكرة لأن GlobalScope يعمل عالميًا خارج حدود التزامن المنظم.
    السؤال 2: تحسين أداء Jetpack Compose & Recomposition يقوم المهندس بإنشاء ملف تعريف لتطبيق موجز معقد يجلب البيانات المشفرة غير المتصلة بالإنترنت من قاعدة بيانات الغرفة ويعرضها عبر LazyColumn. أثناء التمرير العمودي السريع، تقوم شاشة ملفات التعريف بوضع علامة على الإطارات المسقطة بشكل مستمر (غير المرغوب فيها) ونشاط تجميع البيانات المهملة (GC) الثقيل. يكشف تحليل الكود أن عناصر القائمة تقبل كائن نموذج مجال خام وغير مستقر يحتوي على مجموعات غير مشروحة. ما التعديل الذي يحل اختناق العرض هذا؟
    • الخيارات:
      • أ) استبدل مكون LazyColumn الحديث ببنية عمود تقليدية ملفوفة داخل معدّل تمرير رأسي لفرض التخصيص المسبق لشجرة عرض التخطيط بالكامل.
      • ب) أضف تعليقًا توضيحيًا لنموذج غلاف حالة واجهة المستخدم المخصص باستخدام @Stable أو @Immutable، وقم بتعيين معلمة مفتاح هيكلية فريدة لكل تخطيط عنصر داخل حلقة LazyColumn البنية.
      • ج) زيادة الحد الأقصى لحجم كومة وقت تشغيل JVM المتاحة ديناميكيًا داخل ملف بيان جذر التطبيق باستخدام علامة خاصية LargeHeap.
      • د) تحويل عمليات استعلام قاعدة البيانات من إطار عمل استمرارية الغرفة مرة أخرى إلى أغلفة مساعد SQLite الخام باستخدام أوامر المعاملات غير المُدارة.
      • هـ) لف بنية التخطيط الكاملة لـ LazyColumn داخل كتلة LaunchedEffect لتحريك تمرير تكوين واجهة المستخدم إلى تجمع مؤشرات ترابط خلفية IO المنفذ.
      • F) انقل بنية إدارة الحالة المباشرة إلى مكون خدمة Android في الخلفية المستمرة لفصل انبعاث مجموعة البيانات الأولية عن الطبقة المعمارية الرئيسية.
    • الإجابة الصحيحة:
      • ب
    • الشرح:
      • لماذا الصحيح (ب): يعتمد الإنشاء على ثبات المدخلات لتخطي إعادة التركيب. عندما تحتوي فئة ما على أنواع غير مستقرة مثل المجموعات القياسية، يقوم برنامج التحويل البرمجي Compose بوضع علامة على الكائن على أنه غير مستقر، مما يجبر عناصر القائمة على إعادة التركيب أثناء كل حدث تمرير حتى إذا لم تتغير البيانات. إن إضافة تعليق توضيحي للنموذج باستخدام @Stable أو @Immutable يُعلم المترجم أن الخصائص لن تتغير بشكل غير متوقع. بالإضافة إلى ذلك، فإن إضافة مفتاح فريد إلى العناصر الموجودة داخل LazyColumn يمنع إعادة التركيب الموضعي، مما يسمح للكتابة بإعادة استخدام العناصر غير المتغيرة بكفاءة والتخلص من اضطراب GC.
      • لماذا غير صحيح (أ): يؤدي التبديل إلى عمود قياسي باستخدام معدّل التمرير إلى فرض إنشاء مثيل فوري لكل عنصر قائمة على حدة في وقت واحد، مما يؤدي إلى تدمير كفاءة الذاكرة تمامًا ويزيد من تفاقم قطرات الإطار.
      • لماذا غير صحيح (ج): يؤدي تمكين سمة LargeHeap إلى إخفاء البنية الهيكلية. أوجه القصور بدلاً من حلها. يظل السبب الجذري هو إعادة التركيب غير المحسنة، مما سيستمر في إهدار موارد النظام.
      • لماذا غير صحيح (د): ينبع عنق الزجاجة في العرض بالكامل من ديناميكيات إعادة تكوين طبقة واجهة المستخدم، وليس من آلية الاستعلام الداخلية لإطار عمل الغرفة. لا يؤدي تغيير طبقات قاعدة البيانات إلى إصلاح أخطاء إعادة التركيب.
      • لماذا غير صحيح (E): يجب تنفيذ تمرير التكوين في Jetpack Compose بشكل صارم على واجهة مؤشر الترابط الرئيسية. ستؤدي محاولة فرض أشجار التخطيط إلى آثار جانبية في الخلفية إلى حدوث استثناءات في وقت التشغيل.
      • لماذا غير صحيح (F): يؤدي نقل انبعاث بيانات الحالة إلى خدمة خلفية إلى إضافة تعقيدات غير ضرورية لـ IPC ويفشل في معالجة المشكلة الأساسية المتعلقة بكيفية معالجة طبقة واجهة المستخدم وعرض نماذج البيانات أثناء أحداث التمرير.
    السؤال 3: أنظمة أمن البيانات والبنية المؤسسية أنت تحدد بنية التخزين لتطبيق جوال خاص بالمؤسسة يقوم بتخزين رموز الوصول، المستخدم مؤقتًا التكوينات وتجزئة التعريف الحساسة محليًا. تنص متطلبات الأمان على أن تظل هذه القيم محمية من تقنيات الاستخراج على الأجهزة المخترقة أو التي تم الوصول إلى جذرها. ما هو نمط التنفيذ الذي يتوافق مع هذه الإرشادات؟
    • الخيارات:
      • أ) تخزين الرموز المميزة داخل نظام ملفات التفضيلات المشتركة الافتراضي باستخدام أدوات تشفير سلسلة Base64 الأساسية.
      • ب) حفظ سلاسل الرموز المميزة المتسلسلة مباشرة في ملف نصي خام مخفي موجود في دليل قسم ذاكرة التخزين المؤقت للتخزين الخارجي للتطبيق.
      • ج) استخدام مكتبة EncryptedSharedPreferences المدعومة من نظام Android Keystore مع برنامج رئيسي مدعوم بالأجهزة موفر المفاتيح.
      • د) تشفير سلاسل الرموز المميزة للتشفير مباشرة في الطبقات الثنائية المجمعة للتطبيق عبر Android Native Development Kit (NDK).
      • هـ) الاحتفاظ بالمفاتيح الحساسة داخل مثيل قاعدة بيانات Room مخصصة غير مشفرة تم تكوينها للعمل فقط داخل مساحات التخزين في الذاكرة.
      • و) تشفير السلاسل باستخدام مفتاح AES مشفر مباشرة داخل مُنشئ فئة التطبيق أثناء تهيئة وقت التشغيل الكتل.
    • الإجابة الصحيحة:
      • C
    • الشرح:
      • لماذا التصحيح (C): توفر مكتبة Jetpack Security تفضيلات EncryptedSharedPreferences، التي تقوم تلقائيًا بتشفير المفاتيح والقيم باستخدام نظام تشفير ثنائي المستوى. يتم تخزين المفتاح الرئيسي بشكل آمن داخل نظام Android Keystore، الذي يستفيد من البيئات المدعومة بالأجهزة مثل بيئة التنفيذ الموثوقة (TEE) أو StrongBox كلما كان ذلك متاحًا. يضمن هذا التكوين عدم إمكانية استخراج مفاتيح التشفير بسهولة من نظام ملفات الجهاز، حتى على الأجهزة الجذر.
      • لماذا غير صحيح (أ): Base64 هو مجرد آلية تشفير، وليس طريقة تشفير. يمكن لأي شخص لديه حق الوصول إلى الجذر أو الوصول الفعلي إلى نسخة احتياطية للجهاز فك تشفير سلسلة Base64 على الفور.
      • لماذا غير صحيح (ب): يؤدي حفظ الملفات إلى أدلة التخزين الخارجية إلى كشف البيانات الحساسة للتطبيقات الأخرى التي تمتلك أذونات الوصول إلى التخزين، مما يؤدي إلى إنشاء ثغرة أمنية عالية الخطورة.
      • لماذا غير صحيح (د): يعد إلغاء ترجمة ثنائي تطبيق Android أو استخراج السلاسل من كائنات المكتبة المشتركة باستخدام أدوات الهندسة العكسية القياسية مثل APKTool أو JADX أمرًا تافهًا، ويكشف المفاتيح المشفرة.
      • لماذا غير صحيح (E): يتم تخزين قواعد البيانات في الذاكرة بشكل غير مشفر في ذاكرة الوصول العشوائي (RAM). على الرغم من أنها تختفي عند انتهاء عملية التطبيق، إلا أنها تظل عرضة لتقنيات تفريغ الذاكرة أثناء تنشيط التطبيق.
      • لماذا غير صحيح (F): وضع مفتاح تشفير مضمن داخل مُنشئ فئة التطبيق يعاني من نفس الثغرة الأمنية مثل نهج NDK. يمكن لأدوات الهندسة العكسية استخراج المفتاح الثابت من رمز DEX الثانوي.
    • مرحبًا بك في اختبارات أسئلة المقابلة لمساعدتك في الاستعداد لأسئلة المقابلة على Android.
    • يمكنك إعادة إجراء الاختبارات عدة مرات كما تريد
    • هذا بنك أسئلة أصلي ضخم
    • يمكنك الحصول على الدعم من المدرسين إذا كانت لديك أسئلة
    • يحتوي كل سؤال على تفاصيل الشرح
    • متوافق مع الجوال مع تطبيق Udemy
    أتمنى أن تكون مقتنعًا الآن! وهناك الكثير من الأسئلة داخل الدورة.

    ما هي المتطلبات الأساسية لدخول الدورة والتسجيل فيها على موقعنا؟ رحلة التعلم:

    (احصل على الدورة للدخول إلى الموقع والتسجيل)

    يجب أن يكون لديك بريد إلكتروني (حساب بريد) تتذكره لنفسك وأيضًا يجب أن تتذكر كلمة مرور البريد الإلكتروني الذي ستسجل به ، وإذا لم يكن لديك حساب بريد إلكتروني ، فمن الأفضل إنشاء حساب (Gmail)

    اغلق مانع الاعلانات لتحصل على الدورة



    0 تعليقات