تحتوي معاينة Android O Developer Preview على إعداد غامض لموضوع العرض. خلص XDA إلى أن إطار عمل السمات هذا يعتمد على RRO من Sony.
في حال لم تكن على علم بالفعل، فقد أصدرت Google النسخة الثانية من Android O Developer Preview (Android O DP2) خلال حدث I/O الذي أقيم بالأمس. لقد فعلنا ذلك بالفعل لقد قمنا بالبحث العميق في كل ما هو جديد وجدناه حتى الآن، ولكن كان هناك شيء واحد في DP2 كان يزعجني. كل من تلقى التحديث التجريبي أو تومض يدويًا قوبلت الصور الجديدة بسرعة بـ أ واجهة مستخدم مختلفة جذريًا في الإعدادات السريعة. لماذا قررت Google تغيير المظهر؟ وبعد مزيد من الاختبار والحفر، توصلت إلى نتيجة. لأي سبب من الأسباب، قررت جوجل أن تفعل ذلك موضوع "مقلوب". الموضوع الافتراضي؛ ربما بينما كانت الشركة في منتصفها اختبار حل السمات المخصصة بناءً على تراكب موارد وقت التشغيل من سوني (RRO)، لم يتمكنوا من تشغيل سمة Pixel الافتراضية في الوقت المناسب لإصدار Android O Beta.
سمة النظام الافتراضية في Android O Developer Preview 2
إن الكشف عن أن إطار عمل Android O يعتمد على RRO من سوني قد يبدو واضحًا للبعض نظرًا لأن Google
تنفيذ الدعم لـ RRO في Android 6.0 Marshmallow، على الرغم من أنه يتطلب أن يكون لديك جهاز مفتوح الوصول إلى الجذر. ومع ذلك، نظرًا لعدم إصدار الكود المصدري لنظام Android O، فقد كان من المحض تكهنات للإشارة إلى أن سمة النظام هذه في Android O هي في الواقع RRO. لهذا السبب لدينا التغطية الأولية لهذا الإعداد الغامض، وكذلك التغطية التي قام بها مواقع أخرى، لم يقم بهذا الارتباط. ولكن هناك العديد من الأدلة التي تربط هذه الميزة بإطار العمل الذي نعتقد أنه يجب أن يوضح ذلك بشكل قاطع يعتمد موضوع جهاز Android O على RRO. مع دعم RRO على متن الطائرة، قد يكون هذا ممكنًا أخيرًا، قم بتوفير حل السمات للمستخدمين غير الجذرين الذين كنا ننتظرهم جميعًا.ما هو تراكب موارد وقت التشغيل (RRO)؟
RRO هو إطار عمل تم إنشاؤه بواسطة مطوري Sony والذي تم تشغيله ثيمات سوني اكسبيريا. يكمن جمال RRO في أنه يسمح لك باستبدال موارد التطبيق دون الحاجة إلى تعديل الكود المصدري للتطبيق. يحدث هذا من خلال استخدام التراكب، الذي يحتوي على سلاسل الموارد الخاصة به والتي يتم استخدامها لاستبدال موارد التطبيق المتراكب أثناء تحميل التطبيق.
بالنسبة لأولئك منكم الذين يرون "RRO" ويفكرون في "طبقات"، فأنتم قريبون جدًا. الطبقات عبارة عن نسخة معدلة قليلاً من RRO من سوني، ولكنها تعمل بشكل مشابه جدًا على المستوى الأساسي. يقوم RRO/Layers "بتثبيت" ملفات APK للموضوع إلى /system/vendor/overlay. عند التمهيد، يقرأ مدير الحزم ملفات APK هذه، ويتحقق منها، ثم يستخدمها com.idmap لربطه بجدول موارد النظام. يمكنك قراءة الأسئلة الشائعة الأكثر شمولاً من خلال سيكوبومبوس، مطور (تم إهماله الآن) مدير الطبقات برنامج.
لقطات شاشة لتطبيق مدير الطبقات المهمل
اقتراحات للقراءة: تاريخ موجز للسمات: من سمات OEM إلى طبقات RRO
بالطبع، لا يزال عدد قليل من مجتمع ROM المخصص لنظام Android يستخدم محرك السمات المعتمد على RRO. انتقل معظمهم إلى محرك سمات آخر مثل الطبقة التحتية، وهو تطور للطبقات يعتمد الآن على خدمة إدارة التراكب (OMS). (كان CyanogenMod Theme Engine (CMTE) إطارًا شائعًا آخر للموضوعات مستقبلها لا يزال في الهواء.) ومع ذلك، حتى إذا كنت لا تستخدم ذاكرة ROM مخصصة مع التزامات OMS، فإن التطبيق محرك موضوع الطبقة التحتية لا يزال يدعم القدرة على استخدام سمات "Substratum Legacy" وهي مجرد سمات RRO/Layers. ولهذا السبب، بدأ المستخدمون في اكتشاف أن سمات جهاز Android O وRRO هما نفس الشيء.
تقدم Google أخيرًا السمات من خلال RRO
على قسم التعليقات في AndroidPolice شرط، مطور XDA المعترف به ماكسر1998 نشر لقطة شاشة تدعي أن سمات Substratum Legacy تظهر في منتقي سمات جهاز Google.
على اليسار، يمكنك رؤية قائمة بملفات APK المتراكبة التي تم تثبيتها بواسطة Maxr1998 على Android O Developer Preview 1. على اليمين، يمكنك رؤية خياري السمة في Android O Developer Preview 2. سابقًا في Android O DP1، كان الخياران هما "Pixel" و"Inverted" مع تعيين "Pixel" كإعداد افتراضي بينما يشبه "Inverted" الشكل والمظهر للمقياس الرمادي الذي هو الإعداد الافتراضي في O DP2.
لكن ألق نظرة فاحصة على اسم السمة الافتراضية في O DP2. يطلق عليه "android.auto_generated_rro". اسم غريب للغاية بالفعل، ولكن إدراج "RRO" في الاسم هو ما دفعني إلى الاعتقاد أولاً أن هذا هو بالفعل RRO الخاص بشركة Sony.
ثم فكرت، إذا كان هذا بالفعل هو RRO، فأين يمكنني أن أتطلع إلى تأكيد ذلك؟ قادتني هذه الأفكار إلى التحقق من /system/vendor/overlay، وكما هو متوقع، يوجد بالفعل ملفان APK موجودان داخل: Framework-res__auto_generated_rro.apk وPixelThemeOverlay.apk.
كلاهما يتطابقان مع أسماء السمات في إعدادات العرض. ومن الغريب أنه عند تحديد سمة Pixel في إعدادات العرض، فإنه لا يعمل. أنا لست خبيرًا في تطوير سمات RRO، لذلك لا يمكنني تحديد سبب عدم عمل سمة Pixel. على الرغم من أنه من خلال إجراء عملية تفكيك APK لكلا التطبيقين، فمن الواضح أنهما متراكبان بالفعل تطبيقات.
PixelThemeOverlay.apk APK هدم
[علامات التبويب] [عنوان علامة التبويب ="AndroidManifest.xml"]
package="com.google.android.theme.pixel" platformBuildVersionCode="25" platformBuildVersionName="O">
<overlayandroid: priority="1"android: targetPackage="android"/>
<applicationandroid: hasCode="false"android: label="@string/pixel_overlay_pixel"/>
manifest>
[/tab][عنوان علامة التبويب ="strings.xml"]
<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>
[/tab][عنوان علامة التبويب ="colors.xml"]
<resources>
<colorname="user_icon_1">#ff5e97f6color>
<colorname="user_icon_2">#ff5c6bc0color>
<colorname="user_icon_3">#ff26a69acolor>
<colorname="user_icon_4">#ffec407acolor>
<colorname="user_icon_5">#ff33ac71color>
<colorname="user_icon_6">#ff8bc34acolor>
<colorname="user_icon_7">#ffff9800color>
<colorname="user_icon_8">#ffff7043color>
<colorname="system_error">#ffea4335color>
<colorname="primary_device_default_dark">#ff2d2d2dcolor>
<colorname="primary_device_default_settings">#ff2d2d2dcolor>
<colorname="primary_dark_device_default_dark">#ff242424color>
<colorname="primary_dark_device_default_settings">#ff242424color>
<colorname="secondary_device_default_settings">#ff3a3a3acolor>
<colorname="tertiary_device_default_settings">#ff616161color>
<colorname="quaternary_device_default_settings">#ff9e9e9ecolor>
<colorname="accent_device_default_700">#ff3367d6color>
<colorname="accent_device_default_light">#ff4285f4color>
<colorname="accent_device_default_dark">#ff5e97f6color>
<colorname="accent_device_default_50">#ffe8f0fecolor>
resources>
[/فاتورة غير مدفوعة]
[/نوافذ التبويب]
إذا كنت المقشود على وثائق RRO المقدمة من شركة Sony، فمن الواضح أن هذا من المفترض أن يكون موضوع RRO. في ملف AndroidManifest، يشير سطر التراكب إلى أن هذا التراكب يستهدف ملف Framework-res.apk ("android") وله أولوية "1" وهي أعلى أولوية يمكن منحها.
من ناحية أخرى، يوجد داخل ملف Framework-res__auto_generated_rro.apk ملف AndroidManifest.xml مشابه المظهر، ولكن هناك الكثير من السلاسل الأخرى الموجودة التي لا علاقة لها بالموضوع. ولكن يمكن تفسير ذلك بسهولة من خلال حقيقة أن موضوع RRO هذا هو في الأساس نسخة مجردة من إطار عمل Google Pixel-res.apk، والذي اعتقدت أنه صحيح نظرًا لأن \res\values\bools.xml يحتوي على السطر
والذي أعرفه من خلال منشور على منتدانا هو الخط الذي يجذب المستخدمين بحاجة إلى تعيين بغرض تمكين دعم Round Icon على مستوى النظام.
خاتمة
لم يتمكن المختبر الخاص بي حتى الآن من تحقيق الوصول إلى الجذر في O DP2 لمحاولة تشغيل سمة Substratum Legacy/RRO، ولكن بالنظر إلى النتائج التي توصلت إليها ونتائج Maxr1998، فمن الآمن أن نقول ذلك ربما تستعد Google أخيرًا لجلب موضوعات RRO إلى الجماهير.
وبطبيعة الحال، ليس هناك ما يضمن عدم إزالة هذه الميزة في أحد إصدارات Android O الأحدث. من الممكن أن تقرر Google أن RRO لا يعمل بالطريقة التي تريدها وتتخلص من هذه الميزة. ومع ذلك، نظرًا لتاريخ RRO الواسع في أيدي شركة Sony ومجتمع التطوير الخاص بنا، فإن الكثير منا على دراية بعظمة Runtime Resource Overlay من Sony. وبما أن هناك بالفعل عددًا كبيرًا من السمات المتوافقة مع RRO، إذا قررت Google السماح لنا بتثبيتها السمات المخصصة، ستفتح البوابات أمام سوق واسع النطاق بالفعل من السمات المتاحة ليستمتع بها المستخدمون.
اعتمادات الصورة المميزة: SonyDevWorld