كيف يمكن لنظام Android Go مساعدة هواتف Android القديمة على تشغيل Android 8.1 Oreo

click fraud protection

Android Go هو إصدار Google المبسط من Android Oreo 8.1 للأجهزة الجديدة ذات ذاكرة الوصول العشوائي المنخفضة. كما اتضح، قد يساعد ذلك في تطوير ROM مخصص على الأجهزة القديمة أيضًا.

Android Go هو إصدار Google المبسط من Android استنادًا إلى Android 8.1 Oreo، ويهدف إلى أن يكون إصدارًا محسنًا من Android للأجهزة المنخفضة التي تحتوي على 1 جيجابايت من ذاكرة الوصول العشوائي أو أقل. تم الإعلان عنه في شهر مايو الماضي في مؤتمر Google I/O Developer وفي النهاية تم الكشف عن مزيد من التفاصيل في ديسمبر في وقت لاحق من ذلك العام. قيل أنه تم تصنيعه للجيل القادم من الأجهزة ذات المستوى المبدئي، للتأكد من أن تلك الموجودة فيها لا يزال بإمكان البلدان النامية الاستفادة من الهواتف الذكية العاملة للوصول إلى الإنترنت استخدام التطبيقات.

يتمتع Go بمجموعة واسعة من التحسينات وتحسينات الأداء، بما في ذلك شغل مساحة تخزين أقل بنسبة 50 بالمائة مقارنة بتثبيت Android Oreo العادي. بفضل Android Runtime (ART) وتحسينات kernel أيضًا، سيعمل الجهاز الذي يعمل بنظام Android Go، في المتوسط، بشكل أسرع بنسبة 15 بالمائة من تثبيت Android Oreo العادي على نفس الجهاز. يتم إجراء هذه التحسينات من خلال عدد من تكوينات البناء المتخصصة التي أجرتها Google، والتي سنشرحها لاحقًا.

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

الأمر كله يتعلق بتوسيع Google لأسواقها. ومع ذلك، فإن السؤال الذي يطرح نفسه هو أنه إذا كان Android Go يتكون في الغالب من تكوين البنية ومجموعة من تطبيقات Google المحسنة، فهل يمكن للمطورين إنشاء إصدارات خاصة بهم من Android Go؟ باختصار، نعم نستطيع.

يقوم عدد قليل من مطوري LineageOS بالفعل ببناء ذاكرة القراءة فقط المخصصة المحسّنة لنظام Android Go

نحن نشهد بالفعل بعض الإقبال على Android Go من بعض مطوري ROM المخصصين، مثل XDA Recognized Developer أدريان دي سي، من خلال عمله على LineageOS 15.1 مع Android Go، قام ببناء تكوينات لـ العديد من هواتف سوني القديمة. الأجهزة المعنية هي Sony Xperia SP وSony Xperia T وSony Xperia V وSony Xperia TX. تعود جميع هذه الأجهزة إلى عامي 2012 و2013، إلا أنها ستتلقى نظام LineageOS 15.1 المبني على نظام التشغيل Android 8.1 Oreo باستخدام نظام Android. تكوين Go build، والذي قد يسمح للأجهزة بتشغيل تطبيقات Google "Go" بسلاسة، في حالة توفر مجموعة Android Go من Gapps في النهاية مطلق سراحه.

يجب أن يكون أي مشرف فردي لـ LOS قادرًا على تقديم إصدار Android Go مهيأ، مع كونه مجموعة من تكوينات البناء والتحسينات الأخرى. ما يعنيه هذا هو أن أولئك الذين اشتروا هاتف Sony Xperia T على سبيل المثال، وهو جهاز يعمل بنظام التشغيل Android 4.0.4 Ice Cream Sandwich عند إطلاقه، سيتمكنون من استخدام بناء محسّن بشكل أفضل لنظام التشغيل Android 8.1 Oreo على الجهاز، مع الاستفادة من تطبيقات مثل YouTube Go وGoogle Maps Go. لن يتم تشغيله عند مستويات الأداء الرائدة، ولكن ينبغي أن يكون صالح للإستعمال- خاصة بالنسبة للجهاز الذي يعود تاريخه إلى عام 2012.


كيف يمكن لنظام Android Go مساعدة هواتف Android القديمة على تشغيل Android Oreo

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

تكوينات البناء المستخدمة لتجميع Android Go.

لقد تحدثت مع مطور XDA المعترف به مرح، الذي ساعدني كثيرًا في فهم التغييرات التي كانت تحدث، وما الذي يجعل Android Go يعمل حقًا. لا يمكن تغيير بعض تكوينات البناء هذه دون إعادة الترجمة، وهي جزء من مخطط ROM نفسه. هذه هي الأعلام ذات الأحرف الكبيرة بالكامل.

ومع ذلك، تتعلق كل هذه العلامات بالعديد من الجوانب المختلفة لنظام Android المتعلقة بالتخزين واستخدام الذاكرة. وتشمل هذه إدارة التخزين التلقائي، قاتل الذاكرة المنخفضة لنظام Android، dex (دcom.alvik السابقالملفات القابلة للتنفيذ) وحدود ذاكرة الوصول العشوائي (RAM) لتشغيل التطبيقات. تتكون ملفات APK من ملفات DEX هذه، لذا، بطريقة ما، من الممكن اعتبار ملف APK مجرد ملف ZIP يحتوي على الكثير من ملفات .dex، وهو في الواقع ما يقوم Android بتشغيله عند تنفيذ ملف طلب. وبدلاً من ذلك، سيتم التحكم في إدارة التخزين التلقائية بواسطة تطبيق Files Go، وليس نظام Android.

Android Go Utilities وضع ذاكرة الوصول العشوائي المنخفض لنظام Android

في Android 4.4 KitKat، قدمت Google علامة جديدة تسمى "ذاكرة الوصول العشوائي المنخفضة"، والذي كان يهدف إلى دعم الأجهزة التي تحتوي على 512 ميجابايت من ذاكرة الوصول العشوائي. يجعل عددا من التحسينات على النظام. هذه التغييرات مفيدة بشكل كبير للأجهزة ذات ذاكرة الوصول العشوائي المنخفضة.

تحسين إدارة الذاكرة

  • تكوينات kernel الموفرة للذاكرة التي تم التحقق منها: قم بالتبديل إلى ZRAM.
  • قم بإنهاء العمليات المخزنة مؤقتًا إذا كانت على وشك أن تكون غير مخزنة مؤقتًا وكبيرة جدًا.
  • لا تسمح للخدمات الكبيرة بإعادة نفسها إلى الخدمات (حتى لا تتسبب في قتل المشغل).
  • عمليات القتل (حتى تلك التي لا يمكن قتلها عادة مثل IME الحالي) التي تصبح كبيرة جدًا في الصيانة الخاملة.
  • تسلسل إطلاق خدمات الخلفية.
  • استخدام الذاكرة المضبوطة للأجهزة ذات ذاكرة الوصول العشوائي المنخفضة: مستويات ضبط أكثر إحكامًا لنفاد الذاكرة (OOM)، وذاكرة تخزين مؤقت أصغر للرسومات، وما إلى ذلك.

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

انخفاض ذاكرة النظام

  • قلص عمليات system_server وSystemUI (تم حفظ عدة ميغابايت).
  • التحميل المسبق لذاكرة التخزين المؤقت لـ dex في Dalvik (تم حفظ عدة ميغابايت).
  • خيار JIT-off الذي تم التحقق منه (يوفر ما يصل إلى 1.5 ميجابايت لكل عملية).
  • تم تقليل الحمل الزائد لذاكرة التخزين المؤقت للخط لكل عملية.
  • تم تقديم ArrayMap/ArraySet وتم استخدامه على نطاق واسع في إطار العمل كبديل أخف لـ HashMap/HashSet.

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

يستخدم Android Go أداة معدلة لقتل الذاكرة المنخفضة وتحسينات dex

نظرًا لأن Android Go مخصص بشكل أساسي للأجهزة التي تحتوي على ذاكرة وصول عشوائي (RAM) سعة 1 جيجابايت أو أقل، فستكون هناك حاجة إلى إدارة أكثر قوة للذاكرة. يقوم Android Go بتعديل Low Memory Killer (LMK) بعدة طرق مختلفة. أولاً، عند استخدام كمية كبيرة من ذاكرة الوصول العشوائي (RAM)، ينتقل قاتل الذاكرة المنخفضة إلى "الضغط الحرج" ولاية. وذلك لأنه عندما يكون استخدام الذاكرة مرتفعًا، سيصبح النظام بطيئًا بسبب المحاولات المستمرة للوصول إلى ملف المبادلة الموجود على مساحة تخزين الجهاز. سيؤدي الحفاظ على ذاكرة الوصول العشوائي (RAM) خالية إلى منع النظام من الحاجة إلى استخدام ملف المبادلة هذا ومنع تحطيم الذاكرة. يحدث تحطيم الذاكرة عندما تكون ذاكرة الجهاز ممتلئة، وتضطر باستمرار إلى ترحيل ملف المبادلة إلى وحدة تخزين الجهاز، مما يؤدي إلى انخفاض الأداء بشكل كبير.

تم ضبط الخدمات وخدمات WiFi على "ملف تعريف السرعة"، مما يعني أن الأساليب المحددة في هذه الخدمات يتم تجميعها مسبقًا (AOT). (تشير الطريقة إلى مجموعة من التعليمات البرمجية التي يمكن استدعاؤها في أي وقت بالاسم.) وهذا يقلل من استخدام ذاكرة الوصول العشوائي (RAM). التخزين، حيث لن يحتاج نظام Android إلى إعادة ترجمة الخدمات الأساسية التي تعمل على جهاز. وفي الوقت نفسه، يتم تعيين ملفات APK المشتركة على "التسريع"، والتي تم تصميمها لتوفير عمر إضافي للبطارية ودورات إضافية لوحدة المعالجة المركزية من خلال تحسين تعليمات التنفيذ المباشر للحصول على أداء أفضل.

فيما يتعلق بتحسينات dex، يقوم Android Go بالكثير. بالنسبة للمبتدئين، بعد 10 أيام سوف خفض مستوى التطبيق إذا لم يتم استخدامه لتوفير المساحة. لا يشير الرجوع إلى إصدار أقدم هنا إلى انخفاض رقم الإصدار الفعلي للتطبيق، بل يعني أنه سيتم مسح dalvik_cache الخاص بالتطبيق. يتم استخدام ذاكرة التخزين المؤقت Dalvik بحيث لا يحتاج الجهاز إلى إعادة ترجمة التطبيقات، وبدلاً من ذلك، يقوم فقط بتجميع الأجزاء الأكثر أهمية منه وتخزينها مؤقتًا. ويتم تجميع الباقي باستخدام برنامج التحويل البرمجي Just in Time (JIT) عند تشغيل التطبيق. ومع ذلك، إذا لم يتم استخدام التطبيق لمدة 10 أيام، فسيتم أيضًا إزالة الأجزاء الأساسية من التطبيق التي تم تجميعها مسبقًا. يتم ذلك لتحرير أكبر مساحة ممكنة. هناك تغيير بسيط آخر وهو عدم السماح لاستخدام ذاكرة الوصول العشوائي (RAM) للتطبيق بتجاوز 256 ميجابايت بحيث لا يتمكن التطبيق من استخدام ذاكرة الوصول العشوائي (RAM) بأكملها على الجهاز.


هل أصبح Android مستقبل تطوير ذاكرة القراءة فقط (ROM) المخصصة على الأجهزة المنخفضة الجودة؟

في الوقت الحالي، لا نعرف الإجابة على هذا السؤال، لكن المستقبل يبدو مشرقًا لتطوير ذاكرة القراءة فقط (ROM) المخصصة على الأجهزة القديمة. قد تكون هناك مشكلات أخرى في الحصول على إصدار أحدث من Android يعمل على الجهاز، ولكن من الناحية النظرية، الترقية إلى Android Go أكثر تحسينًا استنادًا إلى Android Oreo يجب جعل الجهاز الأقدم والمنخفض يعمل بشكل أفضل.