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

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

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

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

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

تقوم بعض شركات تطوير LineageOS بتطوير ROM مخصصة مخصصة لنظام Android

نشهد بالفعل بعض الامتصاص في Android Go من بعض مطوري ROM المخصصين ، مثل من قبل المطور المعرف AdrianDC ، مع عمله على LineageOS 15.1 مع تكوينات Android Go لعدة هواتف Sony قديمة. الأجهزة المعنية هي Sony Xperia SP و Sony Xperia T و Sony Xperia V و Sony Xperia TX. ترجع جميع هذه الأجهزة إلى عامي 2012 و 2013 ، ومع ذلك ستتلقى LineageOS 15.1 استنادًا إلى Android 8.1 Oreo باستخدام تكوين بناء Android Go ، والذي قد يسمح للأجهزة بتشغيل تطبيقات 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.

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

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

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

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

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

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

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

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

  • قللت عمليات 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) بعدة طرق مختلفة. أولاً ، عند استخدام كمية كبيرة من ذاكرة الوصول العشوائي ، يذهب قاتل الذاكرة المنخفض إلى حالة "الضغط الحرج". هذا لأنه عندما يكون استخدام الذاكرة مرتفعًا ، سيصبح النظام بطيئًا بسبب المحاولة المستمرة للوصول إلى ملف المبادلة على وحدة تخزين الجهاز. الإبقاء على ذاكرة الوصول العشوائي واضحة سيمنع النظام الذي يحتاج إلى استخدام ملف المبادلة هذا ومنع سحق الذاكرة. يحدث سحق الذاكرة عندما تكون ذاكرة الجهاز ممتلئة ، ويتعين عليها باستمرار أن تضع صفحة المبادلة على وحدة تخزين الجهاز ، مما يؤدي إلى انخفاض الأداء بشكل كبير.

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

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


هل Android Go مستقبل تطوير ROM مخصص على الأجهزة المنخفضة نهاية؟

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