محرك Facebook JavaScript (Hermes) يعزز التفاعل الأصلي على Android
نشرت: 2019-11-18يمكن أن يؤدي تقديم أداة JavaScript Facebook لأجهزة Android الجديدة إلى تحسين وقت بدء التشغيل وتقليل استخدام ذاكرة الوصول العشوائي وتقليل حجم التطبيق. في الوقت الحالي ، تعد الأداة ميزة اشتراك في React Native. بدأت غالبية منتجات الإصدار الأحدث من Android Native Android باستخدام أداة JavaScript هذه.
- مزيد من المعلومات حول محرك جافا سكريبت Facebook لأجهزة Android
- ميزات محرك Android JavaScript الجديد
- كيفية الحصول على هيرميس
- تتفاعل
- القرار المعماري الرئيسي لمحرك Facebook JavaScript لأجهزة Android
- 1. بايت كود ما قبل التجميع
- 2. لا JIT
- 3. تقنية جمع النفايات
- خاتمة
مزيد من المعلومات حول محرك جافا سكريبت Facebook لأجهزة Android
تم إنشاء أداة JavaScript Facebook لأجهزة Android لتحسين أداء تطبيقات Android الكبيرة. يستمر حجم تطبيقات الهاتف في الزيادة وهو قادر بشكل كبير على إحداث المشكلات ، مثل عند تنزيل تطبيق Facebook في الأدوات التي تفتقر إلى مساحة كافية أو قدرة معالجة كبيرة. وهذا أيضًا هو السبب الرئيسي وراء قيام Facebook وشركات أخرى بتطوير إصدارات Android "الخفيفة" لتطبيقاتهم.
يمكن الآن لمنشئي تطبيقات Android تحسين أداء أي تطبيقات من خلال مساعدة أداة JavaScript. تعمل هذه الأداة على تقليل حجم التنزيل وتحسين وظيفة بدء التشغيل. هذا ما ينوي تحديث Facebook القيام به لتطبيقاته باستخدام محرك JavaScript Facebook لأجهزة Android.
قام فريق Facebook بتحليل معلومات الأداء واكتشفوا أن أداة JavaScript Facebook لأجهزة Android كانت حاسمة في حجم التنزيلات وأداء بدء التشغيل العام. بعد معرفة ذلك ، شعروا أنهم بحاجة إلى تحسين أداء JavaScript عادةً في بيئات الأجهزة المحمولة المكبوتة للغاية. من ناحية أخرى ، فإن بيئة سطح المكتب جيدة وإصدار سطح المكتب من Facebook يعمل بشكل ممتاز على نظام Android.
تساعد أداة JavaScript Facebook لأجهزة Android في تحسين 3 ميزات رئيسية. هم:
- TTI (وقت التفاعل): هذا هو الوقت المستغرق لتشغيل التطبيقات حتى لحظة تحميلها بالكامل.
- حجم التنزيلات.
- الاستفادة من الذاكرة.
موصى به لك: React Native vs Flutter vs PWA: Battle of Trending Mobile App Frameworks.
ميزات محرك Android JavaScript الجديد
- سيتم تنفيذ العمل بناءً على وقت الإنشاء بدلاً من تحليل وتجميع JavaScript على الأداة الذكية أثناء انتظار الشخص.
- إلى الأمام في الوقت المحدد ، يسمح تجميع التصاريح بمزيد من التحسينات المحسّنة. يمكن رؤية أنشطة مماثلة في البرنامج وإلغاء تكرارها. سيتم تجميع سلاسل التعليمات البرمجية لـ JavaScript معًا بطريقة تخزين جيدة دون الحاجة إلى زيادة وقت التشغيل.
- حجم صغير من Android APK يجعل من الممكن تثبيت تطبيق Facebook أو أي تطبيقات أخرى على أجهزة ذات ذاكرة أقل.
- قد يتم تعيين Bytecode بواسطة الذاكرة ويتم تحميله من ذاكرة فلاش بشكل متزايد حسب الحاجة.
- يتم تعيين منطقة العنوان الظاهري في أجزاء كلما لزم الأمر. هذا يمنع الحاجة إلى تحديد حجم الكومة ويقلل أيضًا من الحمل.
- تطبيق معايير JavaScript باستخدام Hermes الذي يستهدف ECMAScript2015 والذي يشار إليه أيضًا باسم ES6. تمت إزالة ميزات JavaScript التي لا يتم تطبيقها غالبًا في تطبيقات React Native.
كيفية الحصول على هيرميس
يتوفر محرك JavaScript Facebook لأجهزة Android للتنزيل. لا يمكنك التنزيل من Facebook ، في الوقت الحالي ، فهو متاح في GitHub. تتوفر إرشادات حول كيفية استخدامه في موقع React Native.
تتفاعل
لكن لدى React Native بعض العيوب التي تجعل معظم الناس لا يحبونها. على سبيل المثال: تحتاج تطبيقات الألعاب عبر الإنترنت ووظائف تطبيقات Android الأخرى إلى رمز أصلي مثل عندما يحتاجون إلى عمل نسخة احتياطية من التكامل بين الكاميرا والمستشعر. أيضًا ، يحتاج مطورو Android دائمًا إلى تصميم الجسور من أجل سد المسافات بين الهيكل والرمز الأصلي. كان هذا أيضًا السبب وراء قرار Airbnb بالانسحاب.
ولكن قد يكون محرك JavaScript Facebook لأجهزة Android وسيلة من وسائل Facebook لإضفاء المزيد من الحياة على React Native وإقناع المزيد من الأشخاص بقبولها.

بالنظر إلى أن محرك JavaScript Facebook لأجهزة Android يركز فقط على التطبيقات ، كشف Facebook أنهم لا يخططون لدمجه مع الخوادم أو محركات البحث.
يعد JavaScript Facebook for Android device أحدث مشروع مفتوح المصدر قادم من Facebook. تشمل المزيد من مشاريع Android الحالية:
- Pythia: إطار عمل للتعلم العميق.
- DLRM: نموذج للتعلم العميق.
- الطيف: مشروع يهدف إلى جعل عملية تحميل الصور بكفاءة.
قد يعجبك: مقدمة في البرمجة: موجز عن Node JS و Laravel و React و Ruby و Vue و Python.
القرار المعماري الرئيسي لمحرك Facebook JavaScript لأجهزة Android
جعلت القيود المفروضة على الأجهزة المحمولة ، على سبيل المثال الفلاش البطيء ومقدار ذاكرة الوصول العشوائي الصغيرة ، Facebook يتخذ بعض القرارات الهيكلية. فيما يلي الأشياء التي قاموا بتنفيذها:
1. بايت كود ما قبل التجميع
لتجنب ذلك ، استخدم محرك JavaScript لتطبيق Facebook على أجهزة Android برنامج التحويل البرمجي المسبق الذي يعمل في إطار عملية بناء التطبيق. ينتج عن هذا قضاء المزيد من الوقت في تحسين الرمز الثانوي. هذا يعني أن رمز البايت صغير وأكثر فائدة.
يمكن تحسين البرنامج بأكمله. يتضمن ذلك إلغاء تكرار العملية وتعبئة جدول السلسلة.
تم إنشاء رمز البايت بطريقة يتم تعيينها على الذاكرة أثناء وقت التشغيل ويتم تفسيرها دون الحاجة إلى المرور عبر الملف بأكمله. تعمل ذاكرة الفلاش على تحسين زمن الانتقال في معظم الأجهزة المحمولة ذات الجودة المتوسطة والرديئة. لذلك يقوم هذا بتحميل رمز البايت من الفلاش عند الضرورة ، كما أن تحسين كود البايت للحجم يجلب تحسينات رائعة على TTI.
بالإضافة إلى ذلك ، نظرًا لأنه يتم تعيين الذاكرة للقراءة فقط ودعمها بواسطة ملف ، فإن نظام التشغيل الذي لا يتم تبديله قد يستمر في إزالة تلك الصفحات تحت ضغط الذاكرة. سيؤدي ذلك إلى تقليل نفاد الذاكرة التي تقتل الأجهزة التي تحتوي على ذاكرة أقل.
تكون شفرة البايت المضغوطة أكبر قليلاً من شفرة JavaScript التي يتم ضغطها أيضًا. هذا لأن كود محرك JavaScript Facebook لأجهزة Android صغير الحجم. يعمل محرك JavaScript Facebook لأجهزة Android على تقليل حجم تطبيقات Android.
2. لا JIT
تطبيق Facebook لأجهزة Android لا يحتوي محرك JavaScript على أداة JIT مما يعني أنه لا يعمل بشكل جيد في الغالب في المعايير التي تعتمد على وحدة المعالجة المركزية. كان هذا القرار عالميًا. لا تمثل المعايير بشكل عام عبء عمل التطبيقات.
حتى أن Facebook أجرى العديد من الاختبارات مع JITs وهم مقتنعون بأنه لن يكون من السهل أبدًا الوصول إلى سرعة عالية دون تدهور مقاييسهم الرئيسية. يجب أن تستعد JTIs أولاً عندما يتم تشغيل تطبيق مما يجعل من الصعب تحسين TTI ، بل يمكن أن يضر TTI. بالإضافة إلى ذلك ، يساهم JIT في حجم الكود الأصلي واستهلاك الذاكرة. هذا يفسد المقاييس الرئيسية للفيسبوك. لهذا السبب قرر Facebook Android تجاهله وبدلاً من ذلك انتبه إلى أداء المترجم الفوري كأفضل مقايضة لمحرك JavaScript Facebook لأجهزة Android.
3. تقنية جمع النفايات
خلال الاختبارات الأولية لـ Facebook Android ، تم اكتشاف أن مساحة العنوان الافتراضية قد تكون محدودة في التطبيقات الكبيرة على الأدوات 32 بت.
لتقليل الذاكرة ومساحة العنوان الافتراضية التي يستخدمها المحرك ، صمم Facebook أداة تجميع النفايات مع الميزات أدناه.
- التخصيص عند الطلب: يتم تخصيص مساحة العنوان الافتراضية في أجزاء عند الضرورة.
- غير متجاورة: يجب أن تكون مساحة العنوان الظاهرية في نطاق ذاكرة واحد لإزالة حدود الموارد.
- الحركة: تشير الكائنات المتحركة إلى أن الذاكرة قد تتفتت أثناء إعادة الكتل غير الضرورية إلى نظام التشغيل.
قد يعجبك أيضًا: Angular vs React: أي إطار تختار في عام 2019.
خاتمة
يعد مشروع JavaScript Facebook لأجهزة Android من بين العديد من المشاريع التي يعمل عليها فريق Facebook. يتطلع الفريق إلى إنشاء طرق تحليل الذاكرة والوقت أيضًا. سيسهل ذلك على خبراء Android تحسين تطبيقاتهم. اختبر JavaScript Facebook لمحركات أجهزة Android واطلع على وظائفها. شاركنا تجاربك ويمكنك أيضًا أن تطرح علينا أسئلة إذا كان لديك أي منها.
كتب هذا المقال توماس ميلر. إنه خبير في تكنولوجيا Android يحب إطلاع الأشخاص على أحدث التقنيات. يحب توماس أيضًا فكرة JavaScript Facebook for Android device engine وقد استخدمها وأحب كيف يعمل. كما أنه يجمع أفضل تقييمات الخبراء لقطاع السيارات على autoexpertguides.com.