برنامههای Wear OS که از نماهای استاندارد استفاده میکنند از رندر گرافیکی با شتاب سختافزاری خودکار بهره میبرند. اما واچ فیس ها معمولاً با استفاده از بوم ها اجرا می شوند، بنابراین به طور خودکار شتاب سخت افزاری دریافت نمی کنند.
چرا از یک بوم با شتاب سخت افزاری برای صفحه ساعت خود استفاده کنید؟
در بیشتر موارد، هنگام استفاده از یک بوم با شتاب سخت افزاری، صفحه ساعت شما با نرخ فریم بالاتری رندر می شود. در نرخ فریم بالاتر، انیمیشنها و انتقالها برای چشم نرمتر به نظر میرسند و تجربه کاربری بهتری را ارائه میدهند.
وقتی از یک بوم با شتاب سختافزاری استفاده میکنید، میتوانید به دادههای عملکرد رابط کاربری بیشتری در مورد صفحه ساعت خود نیز دسترسی داشته باشید. برای مثال، تنها زمانی میتوانید به اطلاعات قاب دقیق شرح داده شده در اندازهگیری عملکرد UI دسترسی داشته باشید که از یک بوم با شتاب سختافزاری استفاده میکنید.
آیا صفحه ساعت من از شتاب سخت افزاری استفاده می کند؟
با استفاده از گزینه های توسعه دهنده یا adb
می توانید بررسی کنید که صفحه ساعت شما از شتاب سخت افزاری استفاده می کند.
با استفاده از گزینه های توسعه دهنده بررسی کنید
برای استفاده از گزینههای توسعهدهنده برای بررسی اینکه آیا صفحه ساعت شما از شتاب سختافزاری استفاده میکند، این مراحل را دنبال کنید:
- در یک دستگاه Wear OS، به تنظیمات > گزینههای برنامهنویس بروید.
پروفایل Debug GPU را فعال کنید.
این گزینه یک پوشش روی سطوح قابل مشاهده، یکی در هر سطح، می کشد تا میزان زمان صرف شده در هر مرحله از رندر GPU برای آن سطح را نشان دهد.
در دستگاه، به صفحه ساعت خود برگردید.
اگر صفحه ساعت شما از یک بوم با شتاب سخت افزاری استفاده می کند، نوار جدیدی را می بینید که برای هر فریم رندر شده از صفحه ساعت شما از راست به چپ حرکت می کند.
با استفاده از adb چک کنید
برای استفاده از adb
برای بررسی اینکه آیا صفحه ساعت شما از شتاب سخت افزاری استفاده می کند، این مراحل را دنبال کنید:
- در دستگاه Wear OS، صفحه ساعت را به صفحه ساعتی که میخواهید آزمایش کنید، تغییر دهید.
- اجازه دهید صفحه ساعت برای چند ثانیه در حالت تعاملی کار کند.
دستور
adb
زیر را برای بررسی اینکه آیا صفحه ساعت شما از شتاب سخت افزاری استفاده می کند یا خیر اجرا کنید:adb shell dumpsys gfxinfo [package-name]
پس از اجرای دستور، خروجی مشابه مثال زیر دریافت می کنید:
Applications Graphics Acceleration Info: Uptime: 2239933 Realtime: 13568751 ** Graphics info for pid 1100 [package-name] ** Stats since: 59875589194ns Total frames rendered: 1213 Janky frames: 0 (0.00%) 50th percentile: 7ms 90th percentile: 18ms 95th percentile: 25ms 99th percentile: 150ms Number Missed Vsync: 0 Number High input latency: 0 Number Slow UI thread: 0 Number Slow bitmap uploads: 0 Number Slow issue draw commands: 0 Number Frame deadline missed: 0 ...
در این خروجی نمونه، به خط خواندن Total frames rendered
توجه کنید. به طور کلی، اگر خروجی شما مجموع فریم ها را بزرگتر از 0 نشان دهد، صفحه ساعت شما از یک بوم شتاب گرفته استفاده می کند. در غیر این صورت مجموع فریم های ارائه شده و سایر داده های فریم در گزارش معمولاً 0 است.
با این حال، از آنجایی که gfxinfo
برای بسته کامل برنامه شما خروجی است، ممکن است برخی از اطلاعات زمان فریم را از چیزی غیر از یک بوم با شتاب سخت افزاری، مانند Activity
که برنامه شما برای صفحه پیکربندی استفاده می کند، مشاهده کنید. برای تشخیص تفاوت، مطمئن شوید که صفحه ساعت شما تنها سطحی است که قابل مشاهده است و سپس دستور adb shell dumpsys gfxinfo
مجدداً اجرا کنید تا بررسی کنید که آیا مقدار Total frames rendered
افزایش می یابد یا خیر.
بهترین شیوه ها
این بهترین شیوه ها را دنبال کنید تا بهترین تجربه ممکن را برای کاربران خود تضمین کنید.
عمر باتری را به حداکثر برسانید
اگر صفحه ساعت شما دارای انیمیشن های طولانی مدت است، استفاده از شتاب سخت افزاری می تواند عمر باتری دستگاه را تا حد زیادی کاهش دهد. اگر صفحه ساعت شما سعی کند در هر فریم نقاشی بکشد، این مشکل می تواند بدتر شود. برای جلوگیری از تأثیر منفی روی کاربران، از انیمیشن های طولانی مدت در صفحه ساعت خود استفاده نکنید. این دستورالعمل مخصوص استفاده از شتاب سخت افزاری نیست، اما از آنجایی که استفاده از شتاب سخت افزاری تعداد فریم هایی را که می توانید ترسیم کنید افزایش می دهد، رعایت آن بسیار مهم است. برای اطلاعات بیشتر، بهترین شیوهها برای انیمیشنها را ببینید.
از عملیات طراحی پشتیبانی شده استفاده کنید
برخی از عملیات ترسیم هنگام استفاده از شتاب سخت افزاری پشتیبانی نمی شوند. برای اطلاعات در مورد آنچه پشتیبانی می شود، به شتاب سخت افزار مراجعه کنید. اگر مسیر کد کوچکی دارید که از عملیات پشتیبانینشده استفاده میکند، میتوانید یک بوم با پشتوانه بیتمپ ایجاد کنید و سپس با استفاده از canvas.drawBitmap()
آن بیت مپ را در بوم صفحه ساعت بکشید.
هنگام استفاده از شتاب سخت افزاری، سازگاری را حفظ کنید
شتاب سختافزاری در دستگاههای Wear OS که دارای Android 9 (سطح API 28) یا بالاتر هستند، در دسترس است. اگر میخواهید از یک عملیات ترسیم خاص در دستگاههای قدیمیتر، که در آن شتاب سختافزاری در دسترس نیست، یا یک عملیات ترسیم پشتیبانینشده روی بوم تسریعشده سختافزاری اجتناب کنید، میتوانید Canvas.isHardwareAccelerated()
بررسی کنید، سپس عملکرد جایگزین را ارائه کنید.
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- دامپسیس
- رندر آهسته
- حالت سازگاری دستگاه