پنجره‌بندی رایانه‌ای

این صفحه جزئیات ویژگی‌ها و سناریوهای آزمایش مربوط به پردازش پنجره‌ای رایانه را ارائه می‌دهد.

در Android 17 و نسخه‌های بالاتر، می‌توانید پردازش پنجره‌ای رایانه برای هر نمایشگر را فعال کنید. برای اطلاعات بیشتر، فعال کردن پنجره‌بندی «میز کار» را ببینید.

ویژگی‌های رایانه

این بخش ویژگی‌ها و پیکربندی‌های کلیدی مربوط به پنجره‌بندی میزکار را شرح می‌دهد.

فعال کردن محدودیت‌های تکلیف

برای پیکربندی حداکثر تعداد تکالیف پشتیبانی‌شده در پنجره‌بندی میز کار:

  1. پنجره‌بندی رایانه‌ای را فعال کنید.
  2. پرچم رونهاد پیکربندی config_maxDesktopWindowingActiveTasks را در config.xml روی حداکثر تعداد تکالیف پشتیبانی‌شده تنظیم کنید. برای پشتیبانی از تعداد نامحدود تکلیف، پرچم را روی مقدار پیش‌فرض 0 تنظیم کنید:

    <integer name="config_maxDesktopWindowingActiveTasks">4</integer>
    

ویژگی‌های خاص مرورگر

‫Android 16 دو ویژگی مختص مرورگر معرفی کرد: درون‌برهای سرصفحه سفارشی‌شدنی و مدیریت نمونه برنامه. این بخش سناریوهای آزمایشی را برای تأیید سازگاری مرورگر شرح می‌دهد. سازندگان اصلی محصول باید تأیید کنند که پیاده‌سازی ویژگی طبق انتظار کار می‌کند.

چارچوب‌های تست برای درج‌های سرایند قابل‌سفارشی‌سازی

موارد آزمایشی زیر سازگاری مرورگر با حاشیه‌های سرصفحه سفارشی‌سازی‌شدنی را تأیید می‌کند:

  • تعامل‌پذیری میانای کاربر: بررسی کنید که میانای کاربر نوار عنوان مرورگر در همه پیکربندی‌های پنجره (آزاد، صفحه دونیمه، و تمام‌صفحه) کاملاً تعاملی باقی بماند.
  • فاصله از نماد سیستم: مطمئن شوید که میانای کاربری مرورگر زیر نمادهای سیستم ترسیم نمی‌شود.
  • کاربرد رنگ پیش‌زمینه: تأیید کنید که رنگ‌های پیش‌زمینه صحیح براساس زمینه مرورگر روی نمادهای سیستم در سرایند برنامه اعمال شده است. این امر به‌ویژه زمانی مهم است که زمینه مرورگر با زمینه سیستم متفاوت باشد.
  • کشیدن پنجره: با فشار طولانی روی هرجایی از فضای خالی نوار برگه، تأیید کنید که پنجره قالب آزاد را می‌توان کشید.
  • نمایان بودن برگه در تغییر اندازه: آزمایش کنید که برگه‌ها براساس پهنای پنجره نشان داده یا پنهان می‌شوند تا قابلیت استفاده بهینه حفظ شود.

چارچوب‌های تست برای مدیریت نمونه برنامه با عملکرد اشاره کشیدن

چارچوب‌های تست زیر سازگاری مرورگر با مدیریت نمونه برنامه را تأیید می‌کنند:

  • ایجاد پنجره جدید: تأیید کنید که کشیدن برگه از نوار برگه به ناحیه‌ای خالی باعث ایجاد پنجره مرورگر جدیدی حاوی آن برگه می‌شود.
  • بدون پنجره جدید برای برگه آخر (تک نمونه): اگر فقط یک نمونه مرورگر باز باشد، تأیید کنید که کشیدن برگه آخر در آن پنجره باعث ایجاد پنجره جدید نمی‌شود.

حالت‌های رفتاری «ابتدا رایانه» و «ابتدا لمس»

«پنجره‌بندی رایانه‌ای» برای پشتیبانی از انواع ضریب‌های شکل فراتر از رایانه‌های لوحی مستقل، ازجمله دستگاه‌های تاشو و دستگاه‌های متصل به نمایشگرهای خارجی، طراحی شده است. ازآنجایی‌که عوامل مختلف شکل، انتظارات متفاوتی را در کاربران برای تعامل ایجاد می‌کند، که اغلب توسط روش ورودی اصلی (لمس یا صفحه‌کلید و موشواره) تعیین می‌شود، پنجره‌بندی رایانه از دو حالت رفتاری متمایز استفاده می‌کند:

  • حالت اولویت با رایانه: تجربه‌ای بهینه‌سازی‌شده برای صفحه‌کلید و صفحه لمسی ارائه می‌دهد که در آن سیستم پنجره‌بندی با شکل آزاد را ترجیح می‌دهد. این حالت برای پیکربندی‌های شبیه رایانه کیفی درنظر گرفته شده است.
  • حالت لمسی: تجربه‌ای بهینه‌سازی‌شده برای لمس ارائه می‌دهد که در آن سیستم پنجره‌بندی تمام‌صفحه را ترجیح می‌دهد. این حالت پیش‌فرض برای رایانه‌های لوحی مستقل است.

این حالت‌ها محیط‌های میزکار جداگانه‌ای نیستند، بلکه حالت‌های هر نمایشگر هستند که رفتارهای پیش‌فرض واسط کاربر را تعیین می‌کنند.

تفاوت‌های رفتاری

جدول زیر تفاوت‌های کلیدی واسط کاربر و عملکرد بین حالت‌های «اولویت با رایانه» و «اولویت با لمس» را خلاصه می‌کند:

ویژگی حالت «لمس اول» حالت «ابتدا رایانه»
راه‌اندازی پیش‌فرض پنجره‌ها در حالت تمام‌صفحه راه‌اندازی می‌شوند، مگر اینکه پنجره قالب آزادی ازقبل در بالا باشد. پنجره‌ها در قالب آزاد راه‌اندازی می‌شوند، مگر اینکه پنجره تمام‌صفحه‌ای ازقبل در بالا باشد.
نوع نوار وظیفه از نوار وظیفه گذرا (که فقط برنامه‌های سنجاق‌شده را نشان می‌دهد) در حالت تمام‌صفحه استفاده می‌کند. همیشه از نوار وظیفه میز کار (نمایش برنامه‌های سنجاق‌شده و باز) استفاده می‌کند.
درحال تغییر تمرکز پنجره‌ها براساس حالت نمایش کنونی دوباره فعال می‌شوند (برای مثال، اگر نمایشگر در حالت پنجره‌ای رایانه باشد، در قالب آزاد دوباره فعال می‌شوند). پنجره‌ها براساس حالت پنجره‌بندی ذخیره‌شده خودشان دوباره فعال می‌شوند (برای مثال، پنجره تمام‌صفحه همیشه در حالت تمام‌صفحه ازسر گرفته می‌شود).
کشیدن به بالا کشیدن پنجره به لبه بالا باعث ورود به حالت تمام‌صفحه می‌شود. کشیدن پنجره به لبه بالایی، آن را در حالت بزرگ‌شده قرار می‌دهد.
کنترل‌های پنجره از دستگیره برنامه برای کنترل‌های تمام‌صفحه استفاده می‌کند. از منو شناور برای کنترل‌های تمام‌صفحه استفاده می‌کند.

حالت «رایانه‌محور» وضعیتی برای هر نمایشگر است، یعنی دستگاه می‌تواند به‌طور هم‌زمان میزبان نمایشگر داخلی «لمس‌محور» و نمایشگر خارجی «رایانه‌محور» باشد.

راه‌اندازهای جابه‌جاشونده

سیستم عوامل متعددی را برای تعیین حالت مناسب نمایشگر ارزیابی می‌کند:

  • لوازم جانبی ورودی: اگر هم صفحه‌کلید و هم صفحه لمسی یا موشواره متصل و فعال باشند، نمایشگر به حالت اولویت با رایانه تغییر می‌کند.
  • نمایشگر خارجی: نمایشگرهای خارجی متصل معمولاً به‌طور پیش‌فرض روی حالت اولویت میز کار تنظیم می‌شوند، مگر اینکه نمایشگر داخلی را آینه‌سازی کنند.
  • وضعیت دستگاه: برای دستگاه‌های تبدیل‌پذیر، حالت می‌تواند براساس جهت فیزیکی تغییر کند (برای مثال، وقتی صفحه‌کلید برگردانده می‌شود، به حالت لمسی تغییر می‌کند).

پیاده‌سازی فنی

«منبع حقیقت» برای این وضعیت، حالت پنجره‌بندی نمایشگر است، به‌طور خاص حالت پنجره‌بندی TaskDisplayArea نمایشگر. عناصر «پوسته» و «راه‌انداز» می‌توانند ازطریق DisplayAreaInfo یا WindowConfiguration بافت نمایشگر به این وضعیت دسترسی داشته باشند.

پنجره‌بندی رایانه‌ای برای هر نمایشگر

در Android 17 و بالاتر، برای نمایشگرهایی که می‌توانند میزبان وظایف باشند، همان‌طور که در Display.canHostTasks تعریف شده است، WindowManager (WM) واجدشرایط بودن برای پنجره‌بندی رایانه‌ای را براساس معیارهایی که سازندگان تجهیزات اصلی (OEM) می‌توانند پیکربندی کنند تعیین می‌کند. به‌طور پیش‌فرض، WM معیارهای زیر را بررسی می‌کند:

  • پشتیبانی از پنجره قالب آزاد
  • درحال فعال کردن تزئینات سیستم
  • روشن شدن کلید حالت محتوا یا نمایشگر پیش‌فرض

وقتی واجدشرایط بودن نمایشگر تغییر می‌کند، WM IDisplayWindowListener.onDesktopModeEligibleChanged را فراخوانی می‌کند. ‫API پنهان WindowManager.isEligibleForDesktopMode واجدشرایط بودن نمایشگر برای پنجره‌بندی را برمی‌گرداند. پوسته WM این فراخوانی را رهگیری می‌کند و اگر نمایشگر واجدشرایط شود، تصمیم می‌گیرد که آیا نمایشگر از پنجره‌بندی میزکار پشتیبانی می‌کند یا نه و منابع لازم را اختصاص می‌دهد.