حسِّن استخدام الذاكرة لخلفية شاشة الساعة

لتوفير أفضل عمر ممكن للبطارية في أجهزة Wear OS، يُجري النظام حسابًا لاستخدام الذاكرة. كجزء من إرشادات الجودة لتطبيقات Wear OS، يتم فرض قيود على حجم استخدام خلفيات شاشة الساعة التي تستخدم تنسيق خلفية شاشة الساعة حسب حجم الذاكرة التي يمكن استخدامها، وذلك بناءً على الحالة الحالية للساعة:

  • في وضع الإضاءة السينمائية، لا يمكن أن تستهلك خلفية شاشة الساعة أكثر من 10 ميغابايت من الذاكرة.
  • في الوضع التفاعلي، لا يمكن أن تستهلك خلفية شاشة الساعة أكثر من 100 ميغابايت من الذاكرة.

احتساب النظام لاستخدام خلفية شاشة الساعة للذاكرة

لاحتساب المساحة التي تشغلها صورة أو خط مخطّط بكامله ضمن خلفية شاشة ساعة تستخدم تنسيق خلفية شاشة الساعة، يُكمل النظام الخطوات التالية:

  1. يتم فك ضغط الصورة أو خط الصورة النقطية.
  2. تفحص هذه الأداة الصورة أو خط المخطّط البياني لمعرفة ما إذا كان يمكن تحسينه بطريفة من الطرق التالية:
    • تم تغيير حجم الصورة ليطابق حجم العرض بشكل أفضل.
    • تم اقتصاصها لإزالة وحدات البكسل الشفافة بالكامل.
    • تم تقليل العيّنات إلى RGB565 إذا كان من الممكن إجراء ذلك بدون فقدان الدقة.

استنادًا إلى مربّع الحدود الناتج، يحسب النظام حجم الصورة أو خط الصورة النقطية، بالبايت، على النحو التالي:

  • بالنسبة إلى الصور والخطوط التي تستخدم RGBA8888: \( 4 \times width \times height \)
  • بالنسبة إلى الصور والخطوط التي تستخدم نموذج RGB565، يُرجى اتّباع الخطوات التالية: \( 2 \times width \times height \)
  • بالنسبة إلى الصور والخطوط التي تستخدم إعدادات الصورة النقطية ALPHA_8: \( width \times height \)

وضع التفاعل

عند احتساب استخدام الذاكرة للوضع التفاعلي، يحتسب النظام مجموع ما يلي:

  1. الحجم غير المعالج لأي خطوط رسومات متجهّة.
  2. الاستخدام المقدَّر للخط التلقائي للنظام.
  3. إجمالي حجم الصور والخطوط المخصّصة للصور النقطية بعد تطبيق أي عمليات اقتصاص أو تغيير حجم أو إعادة تنسيق

الإعدادات

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

وضع الإضاءة السينمائية والطبقات

في وضع الإضاءة السينمائية، يفترض النظام أنّه يتم عرض الساعة باستخدام ما يصل إلى ثلاث طبقات بملء الشاشة، تكون اثنتان منها ثابتتَين تمامًا:

  1. كل العناصر التي تظهر أسفل عناصر الساعة يتم تجميع معظم "هيكل" خلفية شاشة الساعة في هذه الطبقة. لا يهم عدد الصور المستخدمة لرسم هذه الطبقة؛ فالنظام يحتسبها صورة واحدة بملء الشاشة.
  2. أيّ عقارب ساعة أو شاشة رقمية أو إضافات الساعة التي تتضمّن عمليات ربط بالنظام الأساسي والتي يتم عرضها ديناميكيًا
  3. جميع العناصر المدرَجة بعد عقارب الساعة والمزايا الإضافية في ملف XML المصدر

عادةً ما يكون مصدر معظم استخدامات الذاكرة في وضع الاستراحة هو خطوط الصور النقطية، لا سيما الخطوط الكبيرة.

طرق تقليل استخدام الذاكرة

من خلال اتّباع الاقتراحات الواردة في هذه الأقسام، من المرجّح أن تنشئ خلفية شاشة ساعة تبقى استهلاكها للذاكرة ضمن هذه الحدود.

اقتصاص خطوط ملفات الخطوط الممسوحة ضوئيًا وتغيير حجمها

يمكنك اقتصاص الصور والعناصر BitmapFont وتغيير حجمها لتلائم حجم العرض.

عندما يرسم نظام التشغيل Wear OS خلفية شاشة ساعة، تتم إزالة ضغط جميع الصور. قد تستهلك شاشة مليئة بالصور الفارغة في أغلبها 3 كيلوبايت على القرص، ولكن إذا تم عرضها على شاشة بدقة 450 بكسل × 450 بكسل، يعمل النظام على فك ضغط الصورة، ما يؤدي إلى زيادة حجم الصورة في الذاكرة إلى 750 كيلوبايت أو أكثر.

استخدام ارتفاعات خطوط متسقة في الصور النقطية

عند استخدام BitmapFont، يجب أن يكون لكل صور الحرف الارتفاع نفسه. وبالمثل، يجب أن يكون لكل صورة من صور الكلمات الطول نفسه.

استخدام أحجام إطارات متسقة في الصور المتحركة

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

يقلل هذا الأسلوب من حجم مربع الإحاطة الذي يحسبه النظام للرسوم المتحركة.

إزالة تكرار الصور

إذا كانت خلفية شاشة الساعة تعرض عدة نُسخ من الصورة نفسها، أدرِج نسخة واحدة فقط من هذه الصورة في دليل الموارد، واستخدمها في مراجع متعددة.

عرض مستوى التقدّم باستخدام الأقواس

لمحاكاة شريط تقدّم يكتمل بعد دقيقة واحدة أو بعد ساعة واحدة، لا تستخدِم 60 صورة منفصلة. بدلاً من ذلك، أنشئ عنصر Arc يحتوي على expression يتحكّم في طوله، كما هو موضّح في مقتطف التعليمة البرمجية التالي:

<PartDraw angle="0" width="400" height="400" name="ProgressBar"
          pivotX="0.5" pivotY="0.5 x="40" y="40">
    <Arc centerX="200" centerY="200" width="400" height="400"
         startAngle="0" endAngle="360">
        <!-- Completes a "progress loop" every minute. -->
        <Transform target="endAngle"
                   value="0 + (clamp([SECOND], 0, 60) - 0) * 6" />
        <Stroke cap="ROUND" color="#123456" thickness="10" />
    </Arc>
</PartDraw>

لعرض خط غير مستمر، على سبيل المثال للحصول على مظهر قديم مثبَّت على شاشة الساعة الرقمية، استخدِم سمة شرطة لكائن Stroke أو صورة قناع شبه شفافة.

ضع عقارب الساعة والإضافات في نهاية الملف المصدر.

يتم رسم عقد XML بالترتيب الذي يتم إدراجها به في ملف XML المصدر. من خلال وضع عقارب الساعة والعناصر المعقدة في نهاية الملف، يزيل النظام طبقة كاملة من عملية احتساب ذاكرة الوضع السينمائي.

تقييم استخدام الذاكرة في خلفية شاشة الساعة

لقياس استخدام خلفية شاشة الساعة للذاكرة، استخدِم أداة تقييم أثر الذاكرة ، المتوفّرة في مستودع watchface على GitHub.

  • ملاحظة: يتم عرض نص الرابط عندما تكون لغة JavaScript غير مفعّلة.
  • Arc
  • السطر
  • مستطيل