تقدم Sungstratum من فريق [projekt.] جميع الأشياء الجيدة الخاصة بـ RRO-OMS إلى أجهزة Samsung Nougat من خلال Substratum! واصل القراءة لمعرفة المزيد!
لقد قطعت سمات Android شوطًا طويلًا، بدءًا من التعديلات المخترقة وحتى Substratum والآن، الطبقة الشمسية. منذ سنوات مضت، كانت كلمة "الموضوع" في مناقشات Android تُستبدل في كثير من الأحيان بكلمة "منتقي"، في إشارة إلى تم العثور على منتقي سمات T-Mobile في CyanogenMod والذي وضع الأسس التي جعلت Android موضوعًا جَنَّة. منحت القدرة على تعديل مظهر نظام التشغيل المستخدمين بُعدًا آخر من التخصيص، مما سمح لهم بإجراء تغييرات تجعل أجهزتهم أكثر تخصيصًا.
استمر العمل الجيد في اتجاهين مختلفين. تطور منتقي السمات إلى محرك السمات CyanogenMod، ولكن على الرغم من سنوات الجهود المبذولة في تخصيص الموارد، أصبح CMTE قديمًا عندما ظهرت بدائل أخرى.
RRO والطبقات
تم وضع أساس أحد البدائل عندما تم استدعاء مساهمة كود Sony في شكل إطار عمل جديد تراكب موارد وقت التشغيل (RRO) تم قبوله في AOSP. يوفر هذا الإطار القدرة على استبدال موارد التطبيق أثناء وقت التشغيل (ومن هنا الاسم). لقد كانت "التراكبات" في حد ذاتها موجودة ومدعومة في Android منذ وقت مبكر مثل Gingerbread (و ربما في وقت سابق أيضًا)، يُستخدم بشكل أساسي لاستبدال الموارد لجعل التطبيقات تعمل على هذا المستوى المحدد جهاز. يتضمن نهج Sony تجاه RRO تعديل مدير الأصول لقبول التطبيقات التي تستخدم الموارد المعينة للموارد المقابلة الأخرى الموجودة على الجهاز. تم بعد ذلك إضافة هذه الموارد الجديدة من ملف apk فوق الموارد الأساسية في وقت التشغيل فقط، مما يسمح للنظام بالعمل كما لو كانت هذه الموارد الجديدة جزءًا منه دائمًا.
تم دمج إطار عمل RRO في AOSP قبل نشر Lollipop 5.0 للعامة، ولكن الإصدارات القليلة الأولية من الإصدار 5.0 كانت بها أجزاء من الإطار مكسورة بسبب تغييرات أخرى. كانت معاينات مطوري Android 6.0 Marshmallow أول من أضاف إطار عمل RRO وظيفيًا وإن كان محدودًا، وفتح أبواب التخصيص مباشرة على مستوى Android الأصلي. لذا، ما لم تحاول الشركة المصنّعة للمعدات الأصلية (OEM) عمدًا الابتعاد عن خيارات سمات Android الخاصة بالمخزون، فهذا أمر مؤكد يمكن الحفاظ على مستوى الاتساق في النهج الخاص بكيفية تنفيذ "الموضوعات". ذكري المظهر.
بينما كان AOSP يتلاعب بـ RRO ويبحث عن أفضل طريقة لدمجها كلها، اتصل فريق من المطورين بيتسيكو عملوا معًا في جهد جماعي يسمى "طبقات". تم توسيع الطبقات بناءً على وظيفة RRO الخاصة بالمخزون في Android 5.1 Lollipop لتمكين تبديل الموارد الأكثر تعقيدًا والسماح بمزيد من التحكم في العناصر للموضوعات أكثر مما هو ممكن مع RRO الخاص بالمخزون. نظرًا لأن الطبقات مبنية على RRO، كان صانعو ROM بحاجة إلى إضافة تعليمات برمجية إضافية لتمكين وظيفة الطبقات في ذاكرة القراءة فقط (ROM) الخاصة بهم حيث لن تعمل جميع سمات الطبقات على مخزون RRO في Marshmallow.
وفي الوقت نفسه، واصلت شركة Sony جهودها الخاصة نحو تخصيص نظام Android. بدأ العمل على OMS (خدمة إدارة التراكب)، عميل لإدارة التراكبات التي من شأنها أن تسمح لمقدمي الخدمات بالتحكم ديناميكيًا في الأولويات وتمكين التراكبات وتعطيلها. يتم دمج OMS في AOSP وسيشق طريقه إلى Android O. مطور XDA المعترف به نيكولاشوم تمكن من التأكيد من خلال مصادره أن Android O سيحتوي على "تراكبات ديناميكية"، والتي يُعتقد أنها إشارة إلى OMS.
تسبب OMS في حدوث تعارضات مع الطبقات، حيث كانت هذه الوظائف تقليديًا تحت سيطرة الموضوع. من أجل التعامل مع المشكلات التي أثارتها OMS بالإضافة إلى التوسع في وظائف الطبقات، تعاونت BitSyko مرة أخرى (وأعادت تسمية نفسها إلى [مشروع.]) لنصنع او لنبتكر الطبقة التحتية. Substratum هو عميل يتمتع بوظيفة OMS الذي يحاول التوفيق بين وظيفة الطبقات وOMS، ويستعير أيضًا عناصر أخرى من حلول السمات السابقة الأخرى. لم تعد التراكبات متداخلة مع بعضها البعض لموضوع العناصر الفردية، كما هو الحال الآن، تم حقن جميع العناصر المطلوبة في تراكب واحد. ميزات مثل الترجمة على الجهاز تسمح بتطبيق السمات دون الحاجة إلى إعادة التشغيل بين التغييرات، مما يجعلها بشكل كبير يسهل على المستخدمين النهائيين تجربة السمات والتجربة. لقد كانت Substratum قيد التطوير النشط منذ بدايتها، وتم إدراج جميع ميزاتها وميزاتها الوظائف المضافة ستكون خارج نطاق هذه المقالة، لذلك سننتقل إلى الموضوع الحقيقي لهذا قطعة.
الطبقة التحتية إلى طبقة سنجستراتوم
كما هو موضح في القسم السابق، بدأت الطبقة التحتية كوسيلة لتوسيع وظائف OMS للمخزون بالإضافة إلى وظائف RRO للمخزون (من خلال الطبقات). كان المقصود من Substratum أن يتم استخدامه جنبًا إلى جنب مع ROMs المستندة إلى AOSP، حيث أن معظم مصنعي المعدات الأصلية الآخرين كانوا سيجرون تغييرات متعارضة لن يسمح ذلك لـ Substratum بالتعايش مع تعديلاتها على سطح UX مُعدل، مثل Samsung لـ مثال.
وكانت سامسونج، بنفسها، تعمل أيضًا على حل السمات لاستخدامه عبر أجهزتها الخاصة على نظام Nougat. على عكس Sony، لم تظهر Samsung أي اهتمام بالمساهمة مرة أخرى في رمز السمات إلى AOSP. ولكن نظرًا لأن حل سامسونج كان أساسيًا إلى حد ما، فإن AOSP لم يخسر الكثير حقًا. لقد ظهر حل سامسونج المتضمن في Touchwiz بشكل حقيقي على Samsung Galaxy S6، ولكن كما ذكرنا سابقًا، كان مقيدًا إلى حد ما فيما يمكن أن يحاول تحقيقه. قبل ذلك، كانت هناك تجارب محدودة بدأت مع Galaxy Alpha، على الرغم من أن معظم عناصر واجهة المستخدم للنظام كانت خارج نطاقه. يمكن للموضوعات تغيير الخلفيات والأيقونات بالإضافة إلى عدد قليل من تطبيقات مخزون Samsung مثل برنامج الاتصال وجهات الاتصال والرسائل ومنطقة الإشعارات، على سبيل المثال.
كما اتضح، محرك السمات الخاص بسامسونج يمتد RRO كما هو موجود في AOSP. أعادت سامسونج أيضًا إنشاء نسختها الداخلية الخاصة من OMS بعد توسيع RRO، لذا فإن تطبيقاتها لكل من RRO وOMS تختلف عن AOSP. ولكن من المثير للدهشة، أنه ليس بكمية كبيرة جدًا - وهو سلوك شاذ عندما يأخذ المرء في الاعتبار تميز Touchwiz وتعقيده. أفاد المصممون الذين يستخدمون أحدث هواتف Samsung الرائدة أنه يمكنهم تثبيت تراكبات RRO وجعلهم يستخدمون تطبيقات الطرف الثالث.
كانت هذه هي الإشارة التي يحتاجها فريق [projekt.] للنظر في دعم أجهزة Samsung رسميًا على Substratum. قام الفريق بتحويل كمية صغيرة من التعليمات البرمجية من قسم RRO/Legacy في تطبيقهم، ولكن بدلاً من ذلك عند طلب الجذر وإعادة التشغيل، أطلقوا نوايا محددة حتى يتم تثبيت التراكبات. عمل الفريق بعد ذلك على التأكد من إغلاق التطبيقات المتأثرة بالموضوعات في الخلفية لضمان تحديث الأصول بالكامل عند الإطلاق التالي.
لقد طلبنا من مطور XDA المعترف به نيكولاشوم لتزويدنا ببعض الأفكار حول التحديات التي واجهها الفريق عند العمل ضد تطبيق سامسونج مغلق المصدر لـ RRO-OMS:
وكانت التحديات التي واجهناها غامضة إلى حد ما وغير معروفة للكثيرين الذين ليس لديهم الكثير من المعرفة فهم أنظمة المواضيع، سواء كانت مفتوحة المصدر أو مغلقة المصدر - كل شيء له تجربته الخاصة مرحلة الخطأ. في هذه الحالة، أثناء العمل مع Samsung، عثرت على العديد من المشكلات ولكن المشكلة الرئيسية هي عدم وجود نوايا النظام يتم إطلاقه للتراكبات بعد اكتمال التثبيت - مثل استخدام أجهزة استقبال البث مع "android.intent.action. PACKAGE_ADDED" - ترفض خدمة السمات أي شيء ليس جزءًا من توقيع النظام مع جهاز Samsung محدد إذن خدمة السمات من تلقي ذلك، لذا فإن الجزء الأصعب هو الحلول البديلة التي كان علينا إيجاد طريقة لها حول.
الطريقة التي نستخدم بها Substratum جنبًا إلى جنب مع Theme Engine من سامسونج هي استخدام نفس النظام الذي يستخدمونه. إنهم يستخدمون نسخة معدلة للغاية من نظام Resource Runtime Overlay من سوني، والمختصر بـ RRO أو المعروف باسم Legacy بين مستخدمي Substratum. ومع ذلك، ما يختلف هو أن سمات Samsung لديها إذن إضافي يخفي هذه التراكبات من الإعدادات، لذلك لا يمكنك إلغاء تثبيتها واحدة تلو الأخرى يدويًا. نحن نستخدم نفس النظام ولكننا نستخدم تطبيق AOSP/Sony، وهذا هو السبب في أن Samsung Themes يمكنها إطار عمل السمة بالكامل، بينما لا يمكن لتراكبات الطبقة التحتية أن تلمس هدفًا وسيطًا غير موجود "fwk" - كما نعلم جميعًا أن إطار العمل هو مجرد حزمة "android" اسم.
لقد بدا غريبًا أن [projekt.] كان قادرًا على العمل جنبًا إلى جنب مع تطبيق RRO من سامسونج بسهولة نسبية. يمكن لأي شخص عمل على أجهزة Samsung أن يشهد على مدى صعوبة قيام Samsung بالأمور في كثير من الأحيان. لقد استفسرنا عن أي كتلة محددة واجهها الفريق أثناء المنفذ:
يوجد بالفعل نوع من آلية الأمان المطبقة والتي أثرت على عدد قليل من المستخدمين - حيث تعود التراكبات عند بدء التشغيل. ويرجع ذلك إلى الطريقة التي تقوم بها سامسونج بتشغيل أجهزتها. نظرًا لأننا جميعًا نستخدم الإصدار 7.0 من TouchWiz/Samsung Experience، فإننا نستخدم طريقة جديدة "لتحسين التطبيقات" (يمكنك رؤية ذلك عند تحديث هاتفك، سيعرض إشعارًا بأيقونة Android Nougat، يفيد بأنه تتم ترقيته في الخلفية)، وبالتالي فإن هذه الطريقة لتحسين التطبيقات تؤدي أيضًا إلى إلغاء تحميل الهدف الحزم، مما يؤدي في النهاية إلى تعطيل عملية رسم الخرائط عند التمهيد (بسبب عدم وجود الحزمة المستهدفة) وبالتالي، يواجه عدد قليل من الأشخاص عمليات تفريغ التراكب بعد اعادة التشغيل.
يمكنك أيضًا رؤية هذا يحدث مع عدد قليل من سمات Samsung أيضًا، وخاصة المظهر الداكن/الأسود الخاص بـ @envy~ - هو يجعل لون شريط التنقل الافتراضي في العرض -> شريط التنقل إلى اللون الأسود، حيث يكون اللون الافتراضي الفعلي أبيض. بعد ضبطه على اللون الأسود، يمكنك فتح لوحة المفاتيح ويظل شريط التنقل باللون الأسود. سيتم إرجاع هذا بشكل عشوائي عند إعادة التشغيل أيضًا على العديد من الأجهزة.
مع استعادة أهميتها، ما هي خطط Substratum المقبلة على الفروع الجانبية مثل Sungstratum؟
في المستقبل، سنقوم بدمج تطبيق صغير في الملحق الخاص بنا لمستخدمينا الحاليين حتى يتمكنوا من ذلك أن يكونوا قادرين على إيقاف خدمة Samsung Theme Service إذا تم تثبيت جميع السمات المثبتة على أجهزتهم منها XDA. وبالتالي فإن الأشخاص الذين سيستخدمون سمات بتنسيق Samsung من XDA، سيكونون قادرين على استخدام الملحق لمنع خدمة سامسونج من إعادتها إلى سمة المخزون بعد كل إعادة تشغيل (لأنها لم يتم تثبيتها من متجر سامسونج) رسمياً). سيتطلب الأمر الحصول على مفتاح مطور Samsung مجانيًا من موقعهم، ولكن سيتم تضمينه مسبقًا مع تنزيل الملحق sungstratum.
مع التغييرات الأخيرة والقادمة في AOSP وAndroid O، يبدو أن نظام التشغيل Google الذي كان ناشئًا في السابق سيحظى بمزيد من التخصيص الذي سيتم نقله إلى المستخدم. تخطط بعض الشركات المصنعة الأصلية للتخلص من واجهات المستخدم المخصصة وإضافات تجربة المستخدم الخاصة بها لصالح AOSP، وآخرون مثل Samsung يحومون بالقرب بما يكفي من حلول السمات الخاصة بهم. نحن نتصور مستقبلًا تلعب فيه السمات دورًا رئيسيًا في تجربة المستخدم لعدد أكبر من الأشخاص - نظام التشغيل حيث يمكنك التحكم حقًا في شكل جهازك، وحيث يتم تصميم جماليات واجهة المستخدم خصيصًا لك أنت. ولن نكون قادرين على الوصول إلى مثل هذا المستقبل بدون القوة الجماعية لهذا المجتمع الرائع، ومشاريع مثل Substratum.
تحقق من تكامل الطبقة التحتية لـ Samsung Nougat في منتديات الطبقة التحتية الخاصة بنا!الطبقة التحتية على جيثب