نظرة عامة على AIDL

لغة تعريف واجهة Android (AIDL) هي أداة تتيح للمستخدمين IPC تجريدها. هناك واجهة (تم تحديدها في .aidl )، فأنظمة إنشاء مختلفة تستخدم البرنامج الثنائي aidl لإنشاء C++ أو Java بحيث يمكن استخدام هذه الواجهة عبر العمليات، بغض النظر عن أو وقت التشغيل أو البت هناك.

يمكن استخدام AIDL بين أي عملية في Android وبين مكوّنات النظام الأساسي أو بين التطبيقات. ومع ذلك، لا يتم استخدامها مطلقًا كواجهة برمجة تطبيقات للتطبيقات. قد يتم استخدام AIDL تنفيذ واجهة برمجة تطبيقات SDK في المنصة مثلاً، ولكن واجهة SDK API تظهر لا يحتوي أبدًا على واجهات برمجة تطبيقات AIDL مباشرةً. للحصول على وثائق حول كيفية استخدام AIDL بين التطبيقات مباشرةً، اطّلِع على مطوّرو تطبيقات Android ذات الصلة. عند استخدام AIDL بين مكونات النظام الأساسي التي يتم تحديثها بشكلٍ منفصل، مثل بتنسيقات APEX (بدءًا من Android 10) أو HALs (بدءًا من Android 11)، وهو نظام تحديد الإصدارات المعروف يجب استخدام واجهة AIDL الثابتة.

مثال

في ما يلي مثال على واجهة AIDL:

    package my.package;

    import my.package.Baz; // defined elsewhere

    interface IFoo {
        void doFoo(Baz baz);
    }

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

آلية العمل

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

التفاعل مع الخدمات على الجهاز

يتضمّن Android بضعة أوامر للسماح بالتفاعل مع الخدمات على الخاص بك. ننصحك بما يلي:

    adb shell dumpsys --help # listing and dumping services
    adb shell service --help # sending commands to services for testing