Wear OS با ردیابی میزان مصرف حافظه، عمر باتری را بهبود میبخشد. واچ فیسهایی که از فرمت واچ فیس استفاده میکنند، طبق دستورالعملهای کیفیت برنامه Wear OS، دارای محدودیتهای حافظه هستند:
- حالت محیط: حداکثر استفاده از حافظه ۱۰ مگابایت.
- حالت تعاملی: حداکثر استفاده از حافظه ۱۰۰ مگابایت.
محاسبه میزان مصرف حافظه
برای محاسبهی میزان استفاده از حافظه برای یک تصویر یا فونت بیتمپ در صفحه ساعت با استفاده از فرمت صفحه ساعت، سیستم مراحل زیر را انجام میدهد:
- تصویر یا فونت را از حالت فشرده خارج کنید.
- بررسی کنید که آیا بهینهسازیهای زیر اعمال میشوند یا خیر:
- تغییر اندازه برای تناسب بهتر با صفحه نمایش
- برش پیکسلهای شفاف
- نمونهبرداری کاهشی به RGB565 ، بدون از دست دادن دقت
بر اساس کادر محصورکننده حاصل، اندازه به صورت زیر محاسبه میشود:
- برای تصاویر و فونتهایی که از RGBA8888 استفاده میکنند: ۴ × عرض × ارتفاع
- برای تصاویر و فونتهایی که از RGB565 استفاده میکنند: ۲ × عرض × ارتفاع
- برای تصاویر و فونتهایی که از پیکربندی بیتمپ ALPHA_8 استفاده میکنند: عرض × ارتفاع
حالت تعاملی
برای محاسبهی میزان مصرف حافظه برای حالت تعاملی، سیستم مقادیر زیر را جمع میکند:
- اندازه پردازش نشده هر فونت برداری
- میزان تخمینی استفاده از فونت پیشفرض سیستم
- اندازه کل تصاویر و فونتهای بیتمپ پس از برش، تغییر اندازه و قالببندی مجدد اعمال میشود.
پیکربندیها
برای صفحههای ساعت با پیکربندیهای مختلف ، سیستم تلاش میکند تا اندازه کل منابع صفحه ساعت را در پیکربندیهای مختلف محاسبه کند. اگر تعداد ترکیبها بسیار زیاد باشد، سیستم ممکن است تعداد منابعی را که همزمان استفاده میشوند، بیش از حد تخمین بزند.
حالت محیطی و لایهها
سیستم فرض میکند که حالت محیطی از حداکثر سه لایه تمام صفحه استفاده میکند که دو تای آنها ایستا هستند. این لایهها شامل موارد زیر هستند:
- پسزمینه صفحه ساعت. سیستم این را به عنوان یک تصویر در نظر میگیرد، صرف نظر از اینکه پسزمینه از چند تصویر تشکیل شده باشد.
- قطعات متحرک مانند عقربهها، نمایشگرهای دیجیتال یا عناصر پویا.
- عناصر باقی مانده از فایل XML منبع.
فونتهای بیتمپ بزرگ اغلب بیشترین حافظه را در حالت ambient mode استفاده میکنند.
روشهای کاهش مصرف حافظه
برای کاهش مصرف حافظه، از بهینهسازیهای زیر استفاده کنید.
برش و تغییر اندازه فونتهای بیتمپ
تصاویر و اشیاء BitmapFont خود را برش دهید تا با اندازه صفحه نمایش مطابقت داشته باشند.
سیستمعامل Wear OS واچفیسها را با تمام تصاویر فشردهنشده نمایش میدهد. یک تصویر تمامصفحه که تقریباً خالی است ممکن است ۳ کیلوبایت از فضای دیسک را اشغال کند، اما در یک صفحه نمایش ۴۵۰ در ۴۵۰ پیکسل، ۷۵۰ کیلوبایت یا بیشتر فضا اشغال میکند.
از ارتفاع فونتهای بیتمپ ثابت استفاده کنید
هنگام استفاده از BitmapFont ، مطمئن شوید که تمام تصاویر مربوط به یک کاراکتر ارتفاع یکسانی دارند. به همین ترتیب، مطمئن شوید که تمام تصاویر مربوط به کلمات نیز ارتفاع یکسانی دارند.
از اندازه فریمهای ثابت در انیمیشنها استفاده کنید
به جای جابجایی یک تصویر در صفحه ساعت، عناصر موجود در تصویر را بهروزرسانی کنید و موقعیت کادر محدوده را ثابت نگه دارید. به عنوان مثال، برای متحرکسازی یک دایره روی صفحه ساعت، به جای غلتاندن آن، رنگ آن را تغییر دهید.
این تکنیک اندازه کادر محدوده محاسبهشده انیمیشن را کوچک میکند.
تصاویر تکراری را حذف کنید
برای نمایش چندین بار یک تصویر، فقط یک منبع تصویر را وارد کنید و چندین بار به آن ارجاع دهید.
نمایش پیشرفت با استفاده از قوسها
برای شبیهسازی پایان یافتن نوار پیشرفت پس از ۱ دقیقه یا ۱ ساعت، از ۶۰ تصویر استفاده نکنید. از یک شیء Arc با عبارتی که طول آن را کنترل میکند، همانطور که در اینجا نشان داده شده است، استفاده کنید:
<PartDraw angle="0" width="400" height="400" name="ProgressBar" pivotX="0.5" pivotY="0.5" x="25" y="25"> <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="#654456" thickness="10" /> </Arc> </PartDraw>
برای نمایش یک خط ناپیوسته، به عنوان مثال برای دستیابی به ظاهری شبیه به ساعتهای دیجیتال قدیمی، از ویژگی خط تیره برای یک شیء Stroke یا یک پوشش تصویر ماسک نیمهشفاف استفاده کنید.
عقربههای ساعت و پیچیدگیها را در انتهای فایل منبع قرار دهید
گرههای XML به ترتیبی که در XML منبع ذکر شدهاند، رسم میشوند. با قرار دادن عقربههای ساعت و پیچیدگیها در انتها، سیستم را قادر میسازید تا یک لایه کامل را از محاسبه حافظه حالت محیطی حذف کند.
میزان استفاده از حافظه توسط صفحه ساعت خود را ارزیابی کنید
برای اندازهگیری میزان استفاده از حافظه توسط صفحه ساعت خود، از ابزار ارزیابی ردپای حافظه که در مخزن watchface در گیتهاب موجود است، استفاده کنید.