البرمجة

فهم فرق RequiresApi وTargetApi في Android.

في بيئة تطوير نظام التشغيل Android، توفر تلقائيًا مجموعة من الأدوات والميزات التي يمكن للمطورين استخدامها لضمان توافق تطبيقاتهم مع مختلف إصدارات النظام. من بين هذه الأدوات، هناك تعليمات توضح لمترجم الكود (مثل Lint) وللمطورين أنفسهم الحد الأدنى من إصدار نظام Android الذي يجب أن يتوافق تطبيقهم معه. ومن بين هذه التعليمات المستخدمة في كتابة الكود، تتضمن RequiresApi و TargetApi.

تختلف هاتان التعليمتان في كيفية تطبيقهما والغرض الذي تخدمه في الكود. دعونا نلقي نظرة أعمق على كل منهما:

  1. RequiresApi:

    • يستخدم @RequiresApi للإشارة إلى أن الكود الموجود في نطاق الأنتاب يتطلب وجود API محدد بمستوى معين من الإصدار في وقت التشغيل.
    • يتحقق Lint من وجود هذه التعليمة أثناء تحليل الكود ويقوم بتحذير المطورين إذا كانوا يستخدمون الكود في نطاق يتطلب API معين.
    • على سبيل المثال، في الكود المعطى، @RequiresApi(api = Build.VERSION_CODES.M) يعني أن FingerprintHandlerM يتطلب API level 23 أو أعلى (والذي يُشير إلى Android 6.0 Marshmallow).
  2. TargetApi:

    • يستخدم @TargetApi للإشارة إلى أن الكود الموجود في نطاق الأنتاب هو مستهدف للعمل بشكل صحيح على نسخة محددة من Android.
    • لا يؤثر @TargetApi على تحليل Lint، بمعنى آخر، لا يتم فحصه أو التحذير منه. بدلاً من ذلك، يتم استخدامه لتوضيح نسخة معينة من Android التي يتم تطوير التطبيق لها.
    • في الكود الذي أعطيته، @TargetApi(Build.VERSION_CODES.M) يُشير إلى أن الكود الموجود في FingerprintHandlerM هو مستهدف للعمل بشكل صحيح على نظام Android Marshmallow.

باختصار، RequiresApi تُستخدم لتحديد الحد الأدنى لمستوى API اللازم لتشغيل الكود، بينما TargetApi تُستخدم لتحديد النسخة المستهدفة التي تعمل عليها الكود بشكل صحيح. الجمع بين استخدام الاثنين يسمح للمطورين بتوفير التوجيه لأدوات التحليل مثل Lint وفي نفس الوقت يوضحون النسخة المستهدفة للمطورين الآخرين الذين قد يقومون بمراجعة الكود.

المزيد من المعلومات

بالنظر إلى الفرق بين RequiresApi و TargetApi، يمكن أن نرى أن كل منهما يلعب دورًا مهمًا في تطوير تطبيقات Android التي تكون متوافقة مع مجموعة متنوعة من إصدارات النظام. ومن الضروري فهم كيفية استخدام كل منهما بشكل صحيح لتحقيق التوافق وتوجيه المطورين وأدوات التحليل.

عندما يستخدم المطور RequiresApi، يتيح لأدوات التحليل مثل Lint فرصة لتحقق مباشرة من توافر الوظائف المستخدمة في الكود على الإصدار الأدنى المحدد من Android API. وهذا يسمح للمطور بتجنب استخدام ميزات غير متاحة على الإصدارات القديمة من النظام، مما يقلل من احتمالية حدوث أخطاء تشغيل أثناء تشغيل التطبيق على الأجهزة التي تعمل بإصدارات قديمة من Android.

من ناحية أخرى، TargetApi يُستخدم لتوجيه المطورين حول الإصدار المستهدف لتطوير التطبيق. على الرغم من أنه لا يؤثر على التحليل المباشر من قبل أدوات مثل Lint، إلا أنه يوضح للمطورين الآخرين (وقراء الكود) أي الإصدارات تم اختبار التطبيق عليها والتي يُفترض أن يعمل عليها بشكل صحيح.

الجمع بين استخدام كلتا التعليمتين يوفر إرشادًا شاملاً لعملية التطوير، حيث يتحقق من توافق الكود مع الإصدارات المستهدفة ويوفر توجيهًا واضحًا للمطورين وأدوات التحليل. ويُشجع المطورون على استخدام هذه التعليمات بشكل منتظم ومدروس لضمان استفادة أقصى من إمكانيات نظام Android وتقديم تجربة مستخدم ممتازة لجميع المستخدمين، بغض النظر عن الإصدار الذي يستخدمونه.

زر الذهاب إلى الأعلى