برای پیادهسازی یک تجربه کاربری پایدار و با کیفیت بالا، و جلوگیری از مشکلاتی که منجر به خرابیهای Compatibility Test Suite (CTS) میشوند، اصول اصلی WindowManager (WM) که در اینجا شرح داده شده است را پیادهسازی کنید. این اصول در موارد زیر اعمال میشوند:
نسخههای اندروید که از معماری چند پنجرهای استفاده میکنند، که در اندروید ۱۴ آغاز شد و در اندروید ۱۵ با رابط کاربری مقیاسپذیر ادامه یافت.
رابط کاربری مقیاسپذیر اندروید و پیادهسازیهای سفارشی شما
با به کارگیری اصول، شما به طور پیشگیرانه از اکثر مشکلات مربوط به انطباق با CTS و تست عملکردی جلوگیری خواهید کرد.
اصطلاحات
- نامتغیر
- یک شرط منطقی که در طول اجرای یک برنامه برقرار میماند و منجر به یکپارچگی ساختاری میشود. یک ثابت به عنوان یک قانون مرزی عمل میکند.
- فعالیت ویژه
- این فعالیت حیاتی برنامه که با نامهای فعالیت رابط کاربری خودکار یا فعالیت رابط کاربری سیستم نیز شناخته میشود، دارای یک ناحیه اختصاصی روی صفحه است که یا همیشه قابل مشاهده است یا بیشتر اوقات، حتی زمانی که کاربر دکمه خانه را فشار میدهد، مانند یک برنامه ناوبری اصلی یا خوشهای، قابل مشاهده است.
- فعالیت استاندارد
- هرگونه فعالیت استاندارد برنامه که برای رابط کاربری اصلی سیستم حیاتی نیست، مانند یک برنامه رسانهای شخص ثالث که از شبکه برنامه اجرا میشود.
اصول WM
برای به حداکثر رساندن انطباق با CTS، این اصول را در پیادهسازیهای WM خود اعمال کنید.
استفاده از پیکربندی پایدار در هنگام اجرای فعالیت
هر فعالیت استاندارد جدید را با یک انتقال WM واحد که موقعیت، اندازه و چگالی نهایی آن را تعیین میکند، راهاندازی کنید. شما نباید بلافاصله پس از اولین انتقال، انتقال دومی را که پیکربندی پنجره وظیفه اصلی (مانند اندازه یا چگالی) را تغییر میدهد، فعال کنید، زیرا این امر باعث تغییر پیکربندی بلافاصله پس از ایجاد فعالیت میشود.
انتقال فعالیتهای استاندارد به حالت متوقفشده
وقتی کاربر به وظیفه اصلی یا صحنه اصلی میرود، باید تمام فعالیتهای استاندارد در حال اجرا را به حالت متوقف شده منتقل کنید تا چرخه حیات قابل پیشبینی برنامه اندروید مورد نیاز تستهای CTS حفظ شود.
جلوگیری از مبهم شدن محتوای فعالیت استاندارد
هیچ گونه تزئینات سفارشی یا عنصر رابط کاربری که مانع محتوای یک فعالیت استاندارد میشود را رسم نکنید. اگر پوششهای سفارشی (مانند نوار کنترل آب و هوای سفارشی) رسم میکنید، باید ابعاد را با استفاده از SystemOverlay insets به سیستم گزارش دهید. برای اندروید ۱۵ و بالاتر، از DecorPanel در Scalable UI استفاده کنید.
پنهان کردن پوششها در صورت درخواست حالت فراگیر
وقتی یک برنامه حالت فراگیر را درخواست میکند، باید هرگونه عنصر رابط کاربری سفارشی موقت را پنهان کنید و لایههای الحاقی SystemOverlay آنها را حذف کنید. موانع مداوم با انتظارات پیکسلی یک برنامه تداخل دارند.
گوشههای گرد را فقط در سطح نمایشگر اعمال کنید
گوشههای گرد را فقط در سطح نمایش با استفاده از پیکربندیهای مناسب منابع در frameworks/base اعمال کنید. گوشههای گرد دلخواه را روی سطح یک activity استاندارد اعمال نکنید.
انجام این کار با تستهای عناصر رابط کاربری تداخل ایجاد میکند. به عنوان یک اقدام موقت، میتوانید همان شعاع گوشه گرد را برای صفحه نمایش همانطور که برای سطح فعالیت استاندارد اعمال میکنید، مشخص کنید.
حفظ اندازه برنامه در صورت درخواست حالت همهجانبه
وقتی یک برنامه درخواست ورود به حالت فراگیر را میدهد، اندازه پنجره برنامه را تغییر ندهید. انجام این کار باعث تغییر پیکربندی مختلکننده میشود. در عوض، برای به حداکثر رساندن برنامه، یک دکمه تمام صفحه تحت کنترل کاربر ارائه دهید.