Multi-Window: mohiyati, Android-da ko'p vazifalilik rejimlari

Muallif: IT Sectr Nashr etilgan: 2026-06-08 O'qish vaqti: 10 daq

Multi-Window — bu Android-da bir vaqtning o'zida ekranda bir nechta ilovalarni ishga tushirish imkonini beruvchi ko'p vazifalilik rejimlari to'plamidir. Tizim uchta rejimni o'z ichiga oladi: ekranni ikki qismga bo'lish uchun Split Screen, video uchun mini-oynadagi Picture-in-Picture va katta ekranlarda ixtiyoriy o'lchamdagi oynalar uchun Freeform. Android Developers (2025) ma'lumotlariga ko'ra, Multi-Window qo'llab-quvvatlashi ekran kengligi 600 dp va undan ortiq bo'lgan qurilmalar uchun majburiydir va har bir dasturchi ilovani mumkin bo'lgan oyna o'lchami o'zgarishlariga moslashtirishi kerak.

Asosiy ma'lumotlar

  • Multi-Window — Android-ning uch rejimli ko'p vazifalilik tizimi: Split Screen, PiP, Freeform.
  • Split Screen — ikkita ilova yonma-yon, ajratgich tortiladi, nisbatlar o'zgaradi.
  • Picture-in-Picture — boshqa ilovalar ustida mini-oynada video.
  • Freeform — Android TV va katta ekranlarda ixtiyoriy o'lchamdagi oynalar.
  • ResizeableActivity — manifestda ko'p oynali rejimni qo'llab-quvvatlashni e'lon qilish uchun flag.

Android-da Multi-Window nima?

Multi-Window — bu Android-ning 7.0 Nougat (API 24) versiyasida joriy qilingan, ekranda bir vaqtning o'zida ikki yoki undan ortiq ilovalarni ishga tushirish imkonini beruvchi funksiyadir. Bu rejim Google-ning planshetlar va katta ekranli qurilmalarning ortib borayotgan mashhurligiga javobi bo'ldi, chunki bir vazifali rejim unumdorlikni cheklaydi.

Android 7.0 dan oldin har bir ilova butun ekranni egallagan — ilovalar o'rtasida almashishda oldingi ilova yig'ishtirilgan. Multi-Window bu modelni o'zgartirdi: endi ilova ekranning bir qismini egallab, faol holatda qolishi mumkin. Dasturchi uchun bu onConfigurationChanged va o'lcham o'zgarishlarini boshqarish majburiy bo'lishini anglatadi.

Android 12L (2022) da Google Multi-Window-ni katta ekranli qurilmalar uchun standart rejimga aylantirdi — planshetlardagi barcha ilovalar ko'p oynali rejimga ruxsat beruvchi modda ishga tushadi. Istisno faqat manifestda aniq taqiqlangan ilovalardir.

Multi-Window rejimlari: Split Screen, PiP, Freeform

Split Screen — eng keng tarqalgan rejim. Ekran gorizontal yoki vertikal ravishda ikki qismga bo'linadi, foydalanuvchi ajratgichni tortadi. Telefon va planshetlarda mavjud. Overview (Recents) orqali ishga tushiriladi — ilova belgisini yuqori yoki pastki chetiga tortish bilan.

Picture-in-Picture (PiP) — video va navigatsiya ilovalari uchun rejim. Tarkib suzuvchi mini-oynada (taxminan 15–25% ekran) ko'rsatiladi, uni ko'chirish mumkin. Android 8.0+ da mavjud. Faollashtirish uchun Activity-da enterPictureInPictureMode() ishlatiladi.

Freeform — ish stoli oyna boshqaruvchilariga o'xshash ixtiyoriy o'lchamdagi oyna rejimi. Android TV va ba'zi ishlab chiqaruvchilarning katta ekranli qurilmalarida (Samsung DeX) mavjud. Ilovalar sarlavha va boshqaruv tugmalari bilan oynalarda ishga tushadi.

Multi-Window qanday ishlaydi

Foydalanuvchi Multi-Window-ni faollashtirganda, Android har bir ilova uchun yangi Activity namunasi yaratadi va mavjud ekran maydonini taqsimlaydi. Faoliyatlar alohida Task-larda joylashtiriladi, lekin ular orasida ajratgich bo'lgan bir xil StackView dan foydalanadi.

Tizim har bir Activity-ni o'lcham o'zgarishi haqida onConfigurationChanged() orqali xabardor qiladi. Agar Activity bu hodisani boshqarmasa — u qayta yaratiladi (recreate). Split Screen uchun oyna kengligi platforma tomonidan qo'llab-quvvatlanadigan minimal kenglik bo'lgan 220 dp gacha kamayishi mumkin.

Android ilovaga manifestda android:minWidth va android:minHeight orqali minimal kenglikni e'lon qilish imkonini beradi. Mavjud maydon belgilangan qiymatlardan kichik bo'lsa — Activity pauza holatiga o'tadi.

Activity-ni ko'p oynali rejimga moslashtirish

Multi-Window-ni qo'llab-quvvatlash uchun manifestda android:resizeableActivity="true" flagini o'rnatish kerak. Bu ilova oyna o'zgarganda o'lchamini o'zgartirishi mumkinligini anglatadi. Android 12L+ da standart sifatida barcha ilovalar resizeable hisoblanadi — flag e'tiborga olinmaydi.

Oyna o'lchami o'zgarganda Activity qayta yaratilishi mumkin (standart) yoki agar manifestda configChanges="screenSize|smallestScreenSize" ko'rsatilgan bo'lsa, hodisani onConfigurationChanged da boshqarishi mumkin. Asosiy Activity-lar uchun configChanges ko'rsatish tavsiya etiladi, bu holat yo'qolishining oldini oladi.

xml
<activity
    android:name=".MainActivity"
    android:resizeableActivity="true"
    android:configChanges="screenSize|smallestScreenSize|orientation" />

O'lcham o'zgarishini qo'llab-quvvatlamaydigan ilovalar uchun Android ogohlantirish dialog oynasini ko'rsatadi. Bu holda ko'p oynali rejimga o'tishda tizim Activity-ni tugatib, qayta ishga tushirish taklifi bilan snackbar ko'rsatishi mumkin.

Multi-Window va Activity hayot sikli

Multi-Window Activity-ning standart hayot siklini o'zgartiradi. Qo'shni oynada boshqa ilova faol bo'lganda, joriy Activity onPause() chaqiruvini oladi, lekin onStop() emas — u ko'rinadigan bo'lib qoladi, fokusda bo'lmasa ham. Bu muhim: video pleer onPause da emas, balki onStop da to'xtashi kerak.

Dasturchi holatlarni farqlashi kerak: onPause + isInMultiWindowMode() = true faqat fokusni yo'qotishni anglatadi, ekrondan ketishni emas. Video va animatsiyalar uchun bu ijroni to'xtatmaslik, balki faqat boshqaruv elementlaridan ajratib ko'rsatishni olib tashlash signalidir.

Multi-Window dan chiqishda onMultiWindowModeChanged() onResume() dan oldin chaqiriladi. Bu foydalanuvchi o'zaro aloqani boshlashdan oldin interfeysni to'liq ekran rejimiga qayta qurish imkonini beradi.

Multi-Window uchun eng yaxshi amaliyotlar

Birinchi qoida — holatni saqlash. Ko'p oynali rejimda Activity istalgan vaqtda qayta yaratilishi mumkin. Konfiguratsiya o'zgarishlari orasida saqlanishi kerak bo'lgan barcha ma'lumotlar uchun ViewModel da SavedStateHandle yoki onSaveInstanceState dan foydalaning.

Ikkinchi — minimal kenglik 220 dp da sinovdan o'tkazish. Bu qiymat Split Screen dagi eng tor oyna hisoblanadi. Interfeys o'qilishi mumkin va funksional bo'lib qolishi kerak. Agar ba'zi elementlar chegaralardan chiqib ketsa — layoutlar o'rtasida almashish uchun Window Size Class dan foydalaning.

Uchinchi — Multi-Window da ishlamaydigan funksionallikni o'chirish. Masalan, Camera ekran juda kichik bo'lsa, mavjud bo'lmasligi mumkin. Kamerani yoki boshqa to'liq ekran funksiyalarini ishga tushirishdan oldin isInMultiWindowMode() ni tekshiring.

Ko'p beriladigan savollar

Ilovam uchun Multi-Window ni qanday taqiqlash mumkin?

Manifestda android:resizeableActivity="false" ni o'rnating. Android 12L+ da flag katta ekranli qurilmalar uchun e'tiborga olinmaydi, shuning uchun to'liq taqiqlash uchun android:maxAspectRatio dan foydalaning.

Ilovaning Multi-Window da ekanligini qanday aniqlash mumkin?

Activity dan isInMultiWindowMode() ni chaqiring. Agar ilova Split Screen, PiP yoki Freeform da ishlayotgan bo'lsa, metod true qaytaradi. Shuningdek, onMultiWindowModeChanged() ga obuna bo'lish mumkin.

Multi-Window Android TV da ishlaydimi?

Android TV da faqat Picture-in-Picture rejimi mavjud. Split Screen va Freeform qo'llab-quvvatlanmaydi — televizorlar burchakda PiP oynasi bo'lgan bitta asosiy ekrandan foydalanadi.

Multi-Window da foreground-service bilan nima sodir bo'ladi?

Foreground-service rejimdan qat'i nazar ishini davom ettiradi. Ammo ilova PiP ga o'tsa, tizim resurslarni tejash uchun ijroni vaqtincha to'xtatishi mumkin.

Oynalar o'rtasida Drag and Drop qanday ishlanadi?

Android Multi-Window da oynalar o'rtasida Drag and Drop ni ClipData va View.OnDragListener orqali qo'llab-quvvatlaydi. Ma'lumotlar ContentProvider yoki FLAG_GRANT_READ_URI_PERMISSION bilan Intent orqali uzatiladi.

Xulosa

  • Multi-Window — ilovalarning bir vaqtda ishlashi uchun uch rejimli Android ko'p vazifaliligi.
  • Split Screen — tortiladigan ajratgich bilan ekranni ikki qismga bo'lish.
  • Picture-in-Picture — Android 8.0+ uchun mini-oynada video.
  • Freeform — Android TV va Samsung DeX da ixtiyoriy o'lchamdagi oynalar.
  • resizeableActivity — rejimni qo'llab-quvvatlash uchun manifestda majburiy flag.
  • onMultiWindowModeChanged — kirish/chiqishda interfeysni qayta qurish uchun callback.
  • Yakun — Multi-Window 2022 yildan boshlab katta ekranlarda barcha ilovalar uchun qo'llab-quvvatlanishi majburiy.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing