Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 10
  • Modul cu mai multe ferestre pentru Android 4.1. Cum să utilizați modul cu mai multe ferestre pe Android

Modul cu mai multe ferestre pentru Android 4.1. Cum să utilizați modul cu mai multe ferestre pe Android

Oricine a lucrat în modul cu mai multe ferestre pe un dispozitiv Android poate atesta că este foarte convenabil în anumite situații. Un exemplu simplu: citirea unei cărți electronice cu un dicționar electronic. Mai ales pe un smartphone sau o tabletă cu un ecran destul de mare.
Dacă un utilizator trebuie să aleagă între două aplicații care sunt similare în aproape toate punctele de vedere, dar diferă prin suportul pentru lucrul simultan cu mai multe ferestre, nu este surprinzător că o va alege pe cea care oferă un astfel de suport.

În acest articol, veți afla despre modul cu mai multe ferestre în Android și cum să utilizați această caracteristică atunci când vă construiți propriile aplicații.

Revizuire

Lucrul simultan cu mai multe ferestre în Android este o caracteristică interesantă care poate face aplicația dvs. să iasă în evidență față de multe altele și să îi ofere un avantaj competitiv suplimentar. Mulți OEM și ODM, cum ar fi Samsung, Ramos și Huawei, personalizează sistemul de bază Android. În special, ei introduc suport pentru modul cu mai multe ferestre. Ei fac acest lucru pentru a crește atractivitatea smartphone-urilor și a tabletelor lor, pentru a le distinge de cea mai mare parte a dispozitivelor care nu acceptă o astfel de funcție.


Scenarii pentru utilizarea modului cu mai multe ferestre

Informații preliminare

În iunie 2012 a fost introdus Piatra de temelie este prima platformă open source pentru multitasking pe Android. În august 2012, Samsung a lansat primul dispozitiv care acceptă modul cu mai multe ferestre. Din 2013 până în prezent, se poate observa creșterea explozivă a soluțiilor pentru a sprijini lucrul simultan cu mai multe ferestre în Android.

În mai 2015, a fost lansat Android M Developer Preview (azi, în iulie, Preview 2 este deja disponibil). Lansarea oficială a Android M (6.0) este așteptată în toamna lui 2015. Printre alte inovații, Android M Preview 2 se remarcă prin suportul pentru modul cu mai multe ferestre.


Dezvoltarea de soluții pentru a susține multitasking în Android

Există două abordări pentru a lucra cu mai multe ferestre: folosirea ferestrelor plutitoare și andocate. Printre principalele caracteristici ale lucrului în modurile cu mai multe ferestre se numără deschiderea și închiderea ferestrelor (deschidere/închidere), modificarea dimensiunii lor (redimensionare) și poziția relativă (swap). Prin deschiderea sau închiderea unei ferestre, activăm sau dezactivăm, în consecință, modul cu mai multe ferestre. Funcția de redimensionare vă permite să reglați dimensiunea ferestrelor. Rearanjarea ferestrelor este o acțiune care vă permite să le schimbați locurile.


Moduri cu mai multe ferestre

În 2013, au apărut pe piață multe soluții concepute să funcționeze cu mai multe ferestre. Au fost dezvoltate de OEM, ODM, furnizori independenți de software și comunitatea open source. În tabelul de mai jos puteți găsi o comparație a diferitelor tehnologii pentru organizarea muncii cu mai multe ferestre în mediul Android.

Produs Piatra de temelie Iasă în evidență Xposed Legat de
Descriere
Cadru pentru organizarea muncii multitasking în sistemul de operare Android
O bibliotecă open source care poate fi folosită pentru a crea aplicații cu ferestre plutitoare
Aplicație cu mai multe ferestre care acceptă ferestre andocate
Proiectul își propune să creeze un mediu de lucru care să amintească de lucrul pe un computer desktop
Acceptă deschiderea, închiderea ferestrelor, redimensionarea, extinderea la ecran complet
da
da
da
da
Stilul ferestrei
Fixat
plutitoare
Fixat
Fix și plutitor
Modificarea codului
La nivel de platformă Android
La nivel de aplicație
La nivel de platformă Android
La nivel de platformă Android
Suport aplicatie
Toate aplicațiile sunt acceptate; cu toate acestea, configurația dinamică SurfaceView nu este disponibilă.
Unele aplicații suport. De exemplu, un calculator.
Compatibilitatea și stabilitatea soluției trebuie îmbunătățite.
Suportă toate aplicațiile.
Versiunea Android
Android 4.1. - Android 4.4.
Android 4.1. - Android 4.4.
Android 4.4.
Android 4.4
Site-ul oficial
Strigăt
Strigăt
Strigăt
Strigăt

Arhitectura software

Codul platformei Android poate fi modificat pentru a accepta funcții suplimentare. Arhitectura sistemului de operare Android constă din mai multe straturi.

În cazul Android 4.2 și Android 4.3, lansatorul și alte aplicații sunt plasate într-o singură stivă la pornire, numită „stiva principală”. După cum știți, modul cu mai multe ferestre necesită mai multe stive pentru a găzdui mai multe ferestre. Ca rezultat, trebuie să modificați clasa de sistem ActivityManagerService prin adăugarea unei interfețe pentru crearea și gestionarea unei stive. Pentru a modifica clasa de platformă WIndowManagerService, care vă permite să gestionați vizualizările grafice ale aplicațiilor, trebuie să modificați InputManager. Acest lucru este necesar pentru a putea redirecționa evenimentele tactile către ferestrele corespunzătoare.

Odată cu lansarea Android 4.4 și Android 5.0, abordarea gestionării stivei s-a schimbat semnificativ. Shell și alte aplicații pot rula pe diferite stive. Suport pentru mai multe stive și capacitatea de a le gestiona au fost adăugate sistemului. Figura de mai jos arată diferențele în lucrul cu stiva în diferite versiuni de Android.


Comparație între lucrul cu o stivă în Android 4.3 și Android 4.4

Acum să ne concentrăm pe Android 5 (Lollipop). Sistemul de operare Android folosește mecanisme de apel invers pentru a executa funcțiile de interfață Activitate. Cu toate acestea, funcția de control este implementată la nivel de platformă. Deci, acum ne vom uita la două clase importante: ActivityManagerService și WindowManagerService.


Structura software-ului platformei Lollipop

Managementul activității în Lollipop

Deoarece capacitatea de a lucra în modul cu mai multe ferestre depinde de stivă, următoarele arată cum puteți crea o stivă și cum puteți rula o activitate pe acel stivă. În Lollipop, următoarele funcții au fost adăugate la interfața IactivityManager.java:

Odată pornit, procesul SystemServer apelează serviciile de gestionare a activității și serviciile de gestionare a ferestrelor. Pentru a observa acest proces, putem adăuga comenzi pentru a arunca o excepție de rulare (RuntimeException) în locurile corespunzătoare.


Procesul de creare a unei stive în Lollipop

Acum să vedem cum să lansăm o activitate pe stivă:


Lansarea unei activități pe o stivă

În Lollipop, următoarele comenzi au fost adăugate la utilitarul ADB (Android Debug Bridge):

Gestionarea ferestrelor în Lollipop

WindowManagerService este partea centrală a sistemului de management al ferestrelor. Funcționalitatea sa include trimiterea evenimentelor de intrare, controlul locației obiectelor pe ecran și a suprafețelor pe care sunt afișate elementele grafice.


Rolul WindowsManagerService Arhitectura grafica Android

Probleme cu mai multe ferestre

Când lucrați în modul cu mai multe ferestre, puteți redimensiona ferestrele. Există exemple în care dimensiunea ferestrei care afișează animația jocului nu poate fi modificată. Motivul principal pentru aceasta este că subsistemul Android SurfaceFlinger nu poate schimba dinamic dimensiunea imaginii de ieșire.


Jocurile care folosesc SurfaceFlinger nu pot redimensiona dinamic fereastra

O altă problemă este că unele aplicații nu se afișează corect în modul cu mai multe ferestre. În imaginea de mai jos puteți vedea că calculatorul nu este afișat corect în modul cu mai multe ferestre. Totul ține de aspectul aplicației, care nu este concepută pentru astfel de condiții de utilizare.


Calculator cu un aspect care nu este proiectat să funcționeze în modul cu mai multe ferestre

Suport pentru mai multe ferestre în Android M

Android M Developer Preview 2 poate fi rulat pe Nexus 5, 6, 9 și Nexus Player. Dacă nu aveți un astfel de dispozitiv sau nu doriți să instalați pe el un sistem de operare care se află în starea Previzualizare, vă puteți familiariza cu Android M folosind emulatorul din Android Studio. În special, acum suntem interesați de instrumente standard pentru lucrul în modul cu mai multe ferestre.

Pentru a vedea acest mod în acțiune, trebuie doar să creați un nou dispozitiv virtual folosind instrumentul AVD Manager, alegând unul dintre cele disponibile cu API-ul Level MNC ca imagine de sistem. În cazul nostru, a fost imaginea x86_64. Apoi, trebuie să lansați emulatorul, să mergeți la secțiunea Setări pentru dezvoltatori și să activați acolo opțiunea pentru modul Multi-window. Dacă nu găsiți o astfel de opțiune, aruncați o privire la acest ghid

Acum vine partea distractivă. Pentru început, puteți lansa mai multe aplicații, totul va fi ca de obicei. Dar dacă faceți clic pe butonul pentru apelarea listei de aplicații deschise recent, o pictogramă nouă va apărea în barele de titlu ale miniaturilor ferestrei. În mod implicit, acesta este un cadru care indică faptul că aplicația rulează în modul ecran complet. Dacă faceți clic pe această pictogramă, va apărea un meniu de selectare a aspectului ferestrei.


Meniu pentru selectarea aspectului ferestrei în modul cu mai multe ferestre


Modul cu mai multe ferestre în Android M

Încă nu se știe dacă lucrul cu mai multe ferestre va fi disponibil în versiunea oficială a Android M. Cu toate acestea, de exemplu, calculatorul de sistem se simte bine în acest mod. Drept urmare, avem motive întemeiate să credem că ziua nu este departe în care adaptarea aplicațiilor pentru modul cu mai multe ferestre se va transforma dintr-un avantaj competitiv într-o necesitate urgentă.

Dacă doriți să vă echipați aplicațiile concepute pentru versiuni anterioare de Android cu suport pentru mai multe ferestre, este timpul să apelați la soluțiile terțe discutate mai sus. De exemplu, la Cornerstone.

Exemplu: piatra de temelie

Onskreen a creat Cornerstone, primul cadru cu mai multe ferestre pe Android. Este conceput pentru dispozitive cu ecrane mari și tablete. Codul sursă poate fi descărcat de pe Github. Acceptă versiunile Android 4.1 și 4.2. Cornerstone nu a fost încă lansat pentru versiunile ulterioare ale acestui sistem de operare. Cu toate acestea, puteți analiza codul sursă pentru Android 4.2 pentru a afla detaliile tehnice ale sistemului.


Modificări în piatra de temelie în Android Jelly Bean

Rezultate

Multe dispozitive mobile care rulează sistemul de operare Android folosesc procesoare Intel®. Cum pot dezvoltatorii să îmbunătățească experiența de utilizare a aplicațiilor lor? Cum să faceți aplicațiile mai competitive? Aceste întrebări ne determină să îmbunătățim continuu produsele pe dispozitivele Intel Architecture (IA). Suportul pentru mai multe ferestre este un bun exemplu de caracteristică utilă care oferă aplicațiilor un avantaj competitiv. Acest lucru este convenabil; modul cu mai multe ferestre oferă utilizatorului posibilitatea de a efectua mai multe sarcini simultan. De exemplu, vizionați un videoclip și scrieți o recenzie prietenilor despre ceea ce vizionați. De exemplu, jucați un joc și citiți recenziile acestuia. Astăzi, mai multe dispozitive acceptă modul cu mai multe ferestre. De exemplu, acestea sunt tabletele Ramos i12, Teclast x98 și Cube i7, care rulează Remix OS.


Modul cu mai multe ferestre pe dispozitivele IA

După cum știm deja, versiunea Android Nougat vine cu o mulțime de caracteristici care pot face experiența utilizatorului cât mai fluidă posibil. Repere ale celei mai recente actualizări Android includ un panou de notificare îmbunătățit, transfer de date și optimizări pentru economisirea energiei și suport pentru dispozitive de realitate virtuală. Unul dintre cele mai importante aspecte ale inovației, care a câștigat mulți fani (inclusiv noi), este setul de opțiuni de management al sarcinilor. Datorită celei mai recente actualizări Android 7.0 Nougat, acum puteți utiliza două aplicații simultan în modul cu mai multe ferestre.

Notă

Dorim să vă informăm că nu toate aplicațiile sunt de aceeași natură,
și din acest motiv, veți descoperi că nu toate sunt compatibile cu modul cu mai multe ferestre. Cu toate acestea, nu ar trebui să vă faceți griji - nu este vina dumneavoastră, ci vina dezvoltatorilor, deoarece vor avea nevoie de ceva mai mult timp pentru a crea următoarea actualizare înainte ca alte aplicații să poată funcționa în modul de mai sus. Astăzi există o modalitate de a ocoli această problemă. Puteți rula orice aplicație în modul cu mai multe ferestre din „Instrumente pentru dezvoltatori” în cea mai recentă versiune a sistemului de operare mobil Google.

Rulați orice aplicație în modul cu mai multe ferestre în Android Nougat

Mai întâi, trebuie să activați elementul „Instrumente pentru dezvoltatori” de pe telefon. Pentru a face acest lucru, accesați „Setări > Instrumente pentru dezvoltatori > Despre dispozitiv”. Apoi, faceți clic pe numărul versiunii de mai multe ori până când vedeți un mesaj care spune că ați devenit dezvoltator.

Acum reveniți la meniul de setări din nou și deschideți Instrumente pentru dezvoltatori. Derulați în partea de jos a paginii și activați opțiunea „Forțați redimensionarea operațiunilor”. Când faceți acest lucru, va trebui să reporniți dispozitivul pentru a activa această opțiune. După aceasta, chiar și acele aplicații care nu erau compatibile cu actualizarea Nougat vor putea funcționa în modul cu mai multe ferestre.

În cele din urmă, pentru a profita de modul cu mai multe ferestre, deschideți două aplicații la alegere, apoi apăsați și mențineți apăsată tasta multitasking. Acum ambele aplicații se vor deschide în modul cu mai multe ferestre.

Crezi că modul cu mai multe ferestre va fi util pentru nevoile tale de multitasking? Sau veți rămâne cu o abordare mai tradițională cu o singură sarcină pentru moment? Împărtășiți-vă gândurile cu noi în comentarii.

Atenţie! Articolul folosește capturi de ecran și opțiuni din sistemul de operare Android 7.1. Deși majoritatea elementelor descrise ar trebui să fie prezente în alte versiuni de Android, autorul nu garantează acest lucru.

Cum să activați opțiunile pentru dezvoltatori

În ciuda faptului că acest articol se va concentra pe setările pentru dezvoltatori, nu vă lăsați intimidați de acest nume. Unele dintre opțiunile prezentate în această secțiune vor fi utile și utilizatorilor obișnuiți. În mod implicit, acestea nu sunt afișate în setări, dar acest lucru este ușor de remediat.

  1. Deschideți setările Android și accesați Despre telefon.
  2. Derulați până în partea de jos. Găsiți linia „Număr de construcție”.
  3. Faceți șapte atingeri rapide pe acest element la rând. Ca urmare, ar trebui să se afișeze o notificare care să arate că acum ai devenit dezvoltator, iar secțiunea corespunzătoare va apărea în meniul de setări.

Acum să aruncăm o privire la câteva dintre oportunitățile care ne sunt disponibile.

Unii dezvoltatori dezactivează în mod special capacitatea de a instala pe un card SD în aplicațiile lor. Folosind comutatorul „Permite salvarea în stocare externă”, poți permite acest lucru indiferent de dorințele dezvoltatorului.

Vă rugăm să rețineți că dezvoltatorul poate avea un motiv valid pentru a interzice instalarea pe un card extern. Unele programe sunt strict legate de o anumită locație și nu vor funcționa dacă nu sunt instalate acolo unde a intenționat dezvoltatorul. Prin urmare, ar trebui să utilizați această funcție cu precauție.

Modul cu mai multe ferestre este o caracteristică a celor mai recente versiuni de sisteme de operare de la Google. Cu toate acestea, pentru ca această funcție să funcționeze, este necesară nu numai versiunea corectă de Android, ci și suport în aplicațiile în sine, de care, din păcate, nu s-au ocupat toți dezvoltatorii.

Folosind opțiunea „Redimensionare în modul cu mai multe ferestre”, puteți utiliza orice aplicație în acest mod.

De obicei, smartphone-urile opresc automat ecranul în timpul inactivității pentru a economisi energia bateriei. Cu toate acestea, în unele cazuri, această caracteristică nu este necesară. De exemplu, dacă doriți să utilizați un smartphone vechi ca ceas de masă sau într-o mașină ca navigator.

Opțiunea „Păstrați ecranul pornit” va permite smartphone-ului să rămână în modul activ pe toată durata în care este conectat la încărcător.

Aceasta este una dintre cele mai utile opțiuni care vă permite să obțineți o accelerare vizuală semnificativă a Android. Cert este că unii producători, în căutarea efectelor wow, supraîncărcă sistemul de operare cu animație frumoasă.

În această secțiune a opțiunilor pentru dezvoltatori, puteți seta în mod independent ora la care sunt afișate sau le puteți dezactiva complet. Ca rezultat, se va părea că sistemul pur și simplu a început să zboare.

Dacă dispozitivul dvs. folosește un ecran AMOLED, atunci numărul de culori afișate contează cu adevărat pentru a economisi bateria. Pentru a dura și mai mult cu încărcarea rămasă, pur și simplu activați modul monocrom. Această opțiune este, de asemenea, ascunsă în setările dezvoltatorului și se numește „Simulați anomalie”.

Ce opțiuni utile pentru dezvoltatori folosiți?

Ascuns în Android 6.0 este o opțiune experimentală care vă permite să utilizați modul cu mai multe ferestre. Activarea acestuia este relativ dificilă, dar dacă este făcută corect, nu ar trebui să existe dificultăți în acest sens. Spre deosebire de o funcție similară pe smartphone-urile Samsung, funcționează cu toate aplicațiile.

Pentru ca opțiunea cu mai multe ferestre să apară pe Android 6.0, trebuie doar să editați fișierul build.prop, indicând în el că utilizați versiunea userdebug, nu pe cea utilizator. Acest lucru se poate face folosind un computer și o recuperare personalizată și, dacă dispozitivul are acces root, folosind un editor de text obișnuit.

Prima cale

1. Instalați o recuperare personalizată (de exemplu, TWRP) pe dispozitiv. Pentru a face acest lucru, descărcați și instalați ADB din SDK-ul Android. Apoi descărcați imaginea de recuperare pentru dispozitivul dvs., redenumiți-o twrp.img și plasați folderul ADB.

2. Conectați-vă smartphone-ul la computer cu un cablu USB, deschideți linia de comandă și executați trei comenzi:

adb reboot bootloader
fastboot flash recovery twrp.img
repornire fastboot

3. Opriți smartphone-ul și intrați în recuperare apăsând o anumită combinație de taste (de obicei butonul de pornire și butoanele de creștere și reducere a volumului).

4. În recuperare, selectați secțiunea Mounts și puneți o cruce lângă System.

5. Conectați smartphone-ul la computer cu un cablu și introduceți următoarea comandă pe computer la linia de comandă:

Adb pull /system/build.prop

6. Fișierul build.prop va fi descărcat pe computer. Deschideți-l în Notepad și înlocuiți linia „ro.build.type=user” cu „ro.build.type=userdebug”



7. Descărcați fișierul build.prop înapoi pe smartphone-ul dvs. introducând comanda pe linia de comandă:

Adb push build.prop /system/

8. Specificați încă trei comenzi care sunt necesare pentru a împiedica aplicațiile terțe să modifice build.prop:

adb coajă
sistem cd
chmod 644 build.prop

9. Reporniți smartphone-ul și activați ferestrele multiple în setările dezvoltatorului.

A doua cale

Pe smartphone-urile rootate, editarea fișierului build.prop este mult mai ușoară. Acest lucru se poate face cu o aplicație specială Build Prop Editor sau folosind un editor de text încorporat într-un manager de fișiere precum Root Explorer sau X-Plore. Fișierul se află la /system/build.prop și în el trebuie să înlocuiți linia „ro.build.type=user” cu „ro.build.type=userdebug”.

Cum se activează mai multe ferestre?

1. Deschideți setările sistemului, accesați „Despre dispozitiv” și apăsați de mai multe ori pe numărul versiunii Android.

2. În setări va apărea o secțiune pentru dezvoltatori. Intrați în el - veți vedea un comutator care vă permite să activați mai multe ferestre.

3. Deschideți ecranul multitasking apăsând lung butonul din pagina de pornire (sau butonul virtual). Veți vedea o pictogramă nouă în miniaturile paginii aplicației. După ce faceți clic pe el, sistemul vă va oferi să alegeți locația aplicației: pe jumătate, un sfert din ecran sau pe întreg ecranul. Când mai multe aplicații sunt deschise, proporțiile ferestrelor acestora pot fi modificate.

Google va pune probabil această funcție Android disponibilă tuturor utilizatorilor în viitor. Crezi că smartphone-urile și tabletele au nevoie de el sau sunt complet inutil?

Android N adaugă suport pentru afișarea mai multor aplicații simultan. Pe dispozitivele mobile, două aplicații pot fi lansate una lângă alta sau una peste alta în ecran divizat. Pe televizoare, aplicațiile pot folosi "poza in imagine" pentru a reda videoclipuri în timp ce utilizatorii lucrează în altă aplicație.

Dacă construiți o aplicație folosind SDK-ul N Preview, puteți specifica modul în care se va comporta în modul cu mai multe ferestre. De exemplu, puteți seta dimensiunile minime permise pentru ferestre de aplicație. De asemenea, puteți dezactiva modul cu ferestre multiple pentru o aplicație, astfel încât aceasta să apară doar în modul ecran complet.

Revizuire

În Android N, mai multe aplicații pot fi pe ecran în același timp. De exemplu, un utilizator poate împărți ecranul pentru a vedea o pagină web în stânga și poate scrie un e-mail în partea dreaptă. Capacitățile utilizatorului variază în funcție de dispozitiv.

  • Modul ecran împărțit este disponibil pe dispozitivele mobile Android N. În acest mod, două aplicații sunt afișate una lângă cealaltă sau deasupra celeilalte. Utilizatorul poate trage linia de divizare pentru a mări fereastra unei aplicații și a reduce fereastra alteia.
  • Pe dispozitivele Nexus care rulează Android N, App Player va fi disponibil, ceea ce va permite aplicației să afișeze conținut în timp ce utilizatorul navighează sau interacționează cu alte aplicații.
  • Producătorii de dispozitive mai mari pot activa modul de formă liberă, în care utilizatorul poate redimensiona fiecare fereastră în orice mod. În acest caz, pe lângă modul ecran divizat, acest mod va fi disponibil și pe dispozitiv.

Orez. 1. Două aplicații apar una lângă alta în modul ecran divizat.

Utilizatorul poate comuta la modul cu mai multe ferestre în următoarele moduri.

  • Dacă utilizatorul deschide și apăsă lung pe numele unei activități, aceasta poate fi trasă într-o parte selectată a ecranului și comutată în modul cu mai multe ferestre.
  • Dacă utilizatorul apasă lung butonul Browse, dispozitivul va comuta activitatea curentă în modul cu mai multe ferestre și va deschide ecranul de prezentare generală, unde utilizatorul poate selecta o altă activitate pentru a partaja.

În acest mod, în orice moment, este activă doar ultima operație cu care a interacționat utilizatorul. Se ia în considerare această operațiune cel de sus. Toate celelalte operațiuni sunt suspendate, chiar dacă sunt afișate. Cu toate acestea, sistemul acordă operațiunilor suspendate, dar vizibile, o prioritate mai mare decât celor invizibile. Dacă utilizatorul interacționează cu una dintre activitățile suspendate, aceasta este reluată și activitatea anterioară cea mai de sus este suspendată.

Notă.În modul cu mai multe ferestre, aplicația poate fi întreruptă și poate fi în continuare vizibilă pentru utilizator. Este posibil ca o aplicație să fie nevoită să își continue operațiunile chiar dacă este suspendată. De exemplu, o aplicație vizibilă întreruptă care redă un videoclip va afișa în continuare videoclipul. De aceea noi Nu Vă recomandăm să întrerupeți redarea în gestionarea unor astfel de aplicații. În schimb, ar trebui să întrerupeți videoclipul și să reluați redarea în .

Dacă utilizatorul pune aplicația în modul cu mai multe ferestre, sistemul notifică operarea modificării configurației, așa cum se menționează în document. În esență, această modificare are același efect asupra ciclului de viață al unei operațiuni ca și sistemul care notifică o aplicație că dispozitivul a trecut de la orientarea verticală la orientarea orizontală, doar dimensiunile ecranului se modifică, nu orientarea. După cum este descris în document, o activitate poate gestiona singură modificarea configurației sau poate permite sistemului să ștergă fereastra de activitate și să o recreeze cu noi dimensiuni.

Dacă utilizatorul mărește o parte a ferestrei, sistemul redimensionează fereastra de operare în funcție de acțiunea utilizatorului și se aplică după cum este necesar. Dacă aplicația nu reușește să reda zone noi, sistemul le umple temporar cu atributul specificat de culoare sau cu atributul de stil implicit windowBackgroundFallback.

Configurarea unei aplicații pentru modul cu mai multe ferestre

Dacă aplicația dvs. este pentru Android N, puteți specifica cum (și dacă) operațiunile aplicației dvs. acceptă modul cu mai multe ferestre. Atributele de control al dimensiunii și aspectului sunt setate în manifest. Setările de atribute ale operației rădăcină se aplică tuturor operațiunilor din stiva de sarcini.

Notă. Dacă o aplicație cu orientări multiple a fost creată cu o versiune SDK anterioară Android N, iar utilizatorul rulează aplicația în modul cu mai multe ferestre, sistemul va forța aplicația să se redimensioneze. Sistemul afișează o casetă de dialog care vă avertizează că aplicația se poate comporta într-un mod neașteptat. Sistem Nu redimensionează fereastra pentru aplicațiile cu orientare fixă. Dacă utilizatorul încearcă să deschidă o astfel de aplicație în modul cu mai multe ferestre, aceasta va ocupa întregul ecran.

android:resizeableActivity

sau manifest pentru a activa sau dezactiva modul cu mai multe ferestre:

Android:resizeableActivity="true" | "fals"]

Când acest atribut este setat la adevărat, operația poate fi rulată în modurile cu ecran divizat și cu formă liberă. Dacă atributul este setat la false, operația nu acceptă modul cu mai multe ferestre. Dacă valoarea este falsă și utilizatorul încearcă să ruleze operația în modul cu mai multe ferestre, aceasta ocupă întregul ecran.

Dacă aplicația vizează Android N, dar nu a fost specificată o valoare pentru acest atribut, atunci valoarea implicită este adevărată.

android: acceptă PictureInPicture

Setați acest atribut pe un nod manifest pentru a indica dacă operațiunea acceptă modul imagine în imagine. Acest atribut nu este luat în considerare dacă android:resizeableActivity este setat la false.

Android:supportsPictureInPicture="true" | "fals"]

Atribute de aspect

În elementul manifest Android N suportă mai multe atribute care determină comportamentul operației în modul cu mai multe ferestre.

Android:defaultWidth Lățimea implicită a ferestrei de acțiune în modul liber. android:defaultHeight Înălțimea implicită a ferestrei de acțiune în modul liber. android:gravity Poziția de pornire a ferestrei de operare în modul freeform. Pentru valori valide, consultați descrierea clasei. android:minimalSize Valori minime pentru înălțimea și lățimea ferestrei de operare în modurile cu ecran divizat și cu formă liberă. Dacă utilizatorul mută linia de despărțire în modul ecran divizat pentru a face fereastra de operare mai mică decât minimul specificat, sistemul o decupează la dimensiunea cerută de utilizator.

Următorul exemplu de cod arată cum să setați dimensiunea și poziția implicită a ferestrei de acțiune, precum și dimensiunea minimă a acesteia în modul liber:

Rularea unei aplicații în modul cu mai multe ferestre

Android N introduce noi funcții pentru a accepta aplicațiile în modul cu mai multe ferestre.

Funcții indisponibile în modul cu mai multe ferestre

Unele caracteristici sunt dezactivate sau ignorate în modul cu mai multe ferestre, deoarece nu au sens pentru o operație care apare pe ecranul dispozitivului în același timp cu alte operațiuni sau aplicații. Mai jos sunt exemple de astfel de posibilități.

  • Unele opțiuni de personalizare sunt dezactivate. De exemplu, aplicațiile nu pot ascunde bara de stare decât dacă rulează în modul ecran complet.
  • Sistemul nu ia în considerare modificările atributelor.

Modificați notificările și interogările în modul cu mai multe ferestre

Activity.inMultiWindow() Apelați această metodă pentru a afla dacă activitatea este în modul cu mai multe ferestre. Activity.inPictureInPicture() Apelați această metodă pentru a afla dacă activitatea este în modul imagine în imagine.

Notă. Modul Picture-in-picture este un caz special al modului cu mai multe ferestre. Dacă myActivity.inPictureInPicture() returnează adevărat, myActivity.inMultiWindow() returnează și adevărat.

Activity.onMultiWindowChanged() Sistemul apelează această metodă atunci când o activitate intră sau iese din modul cu mai multe ferestre. Sistemul trece adevărat la metodă dacă operația intră în modul cu mai multe ferestre și fals dacă iese din modul cu mai multe ferestre. Activity.onPictureInPictureChanged() Sistemul apelează această metodă atunci când activitatea se schimbă în modul imagine în imagine. Sistemul trece adevărat la metodă dacă operația intră în modul imagine în imagine și fals dacă iese din modul imagine în imagine.

Pornirea de noi operațiuni în modul cu mai multe ferestre

Când începeți o nouă operațiune, puteți spune sistemului că noua fereastră de operare ar trebui să fie afișată lângă cea actuală, dacă este posibil. Pentru a face acest lucru, utilizați indicatorul Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT. Acest flag solicită următorul comportament.

  • Dacă dispozitivul este în modul ecran împărțit, sistemul încearcă să creeze o nouă fereastră de activitate lângă fereastra activității care l-a început, pentru a încadra două activități pe ecran. Nu există nicio garanție că sistemul va putea face acest lucru, dar dacă poate, tranzacțiile sunt afișate una lângă cealaltă.
  • Dacă dispozitivul nu este în modul ecran împărțit, acest indicator este ignorat.

Dacă dispozitivul este în modul liber atunci când lansați o nouă activitate, puteți seta dimensiunea și poziția ferestrei noii activități apelând metoda ActivityOptions.setLaunchBounds(). Această metodă este ignorată dacă dispozitivul nu este în modul cu mai multe ferestre.

Notă. Dacă rulați o activitate pe stiva de sarcini, aceasta va înlocui activitatea de pe ecran, moștenind toate proprietățile sale cu mai multe ferestre. Pentru a rula o activitate nouă într-o fereastră separată în modul cu mai multe ferestre, aceasta trebuie lansată într-o nouă stivă de sarcini.

Trageți și plasați suport

android.view.DropPermissions Un obiect simbol pentru a indica permisiunile aplicației în care sunt introduse datele. View.startDragAndDrop() Alias ​​nou pentru . Pentru a activa glisarea între operații, transmiteți noul steag View.DRAG_FLAG_GLOBAL . Dacă trebuie să acordați permisiuni operațiunii de recepție pentru a citi sau scrie URI, treceți noul flag View.DRAG_FLAG_GLOBAL_URI_READ sau, respectiv, View.DRAG_FLAG_GLOBAL_URI_WRITE. View.cancelDragAndDrop() Anulează operația de glisare curentă. Această metodă poate fi apelată doar de aplicația în care a fost inițiată operația de drag-and-drop. View.updateDragShadow() Înlocuiește umbra operației curente de glisare. Această metodă poate fi apelată doar de aplicația în care a fost inițiată operația de drag-and-drop. Activity.requestDropPermissions() Solicită permisiuni pentru URI de conținut transmis în obiect către .

Testarea unei aplicații în modul cu mai multe ferestre

Indiferent dacă actualizați aplicația la Android N, trebuie să confirmați comportamentul acesteia în mai multe ferestre în cazul în care un utilizator încearcă să o ruleze în acel mod pe un dispozitiv Android N.

Testați configurarea dispozitivului

Dacă instalați Android N pe dispozitiv, modul ecran împărțit va fi acceptat automat.

Dacă aplicația a fost creată fără a utiliza SDK-ul N Preview

Dacă nu ați folosit SDK-ul N Preview pentru a crea aplicația și utilizatorul încearcă să o ruleze în modul cu mai multe ferestre, sistemul va forța fereastra aplicației să se redimensioneze dacă orientarea acesteia nu este fixată.

Dacă aplicația nu este setată la o orientare fixă, ar trebui să o lansați pe dispozitivul Android N și să încercați să o puneți în modul ecran divizat. Asigurați-vă că aplicația dvs. funcționează bine după ce ați forțat o redimensionare.

Dacă aplicația este setată pe o orientare fixă, încercați să o setați în modul cu mai multe ferestre. Asigurați-vă că aplicația rămâne în modul ecran complet.

Dacă aplicația acceptă modul cu mai multe ferestre

Dacă ați folosit SDK-ul N Preview pentru a vă crea aplicația și nu ați dezactivat suportul pentru mai multe ferestre, testați aplicația așa cum este descris mai jos în modurile cu ecran divizat și cu formă liberă.

  • Lansați aplicația în modul ecran complet și apoi comutați la modul cu mai multe ferestre apăsând lung butonul Navigare. Asigurați-vă că aplicația comută corect între moduri.
  • Rulați aplicația direct în modul cu mai multe ferestre și asigurați-vă că funcționează bine. Puteți lansa o aplicație în modul cu mai multe ferestre făcând clic pe butonul Răsfoire, apoi apăsând lung bara de titlu a aplicației și trăgând-o într-una dintre zonele evidențiate de pe ecran.
  • Redimensionați fereastra aplicației în modul ecran divizat trăgând linia divizată. Asigurați-vă că redimensionarea nu provoacă o blocare și că elementele necesare de interfață rămân vizibile.
  • Dacă ați specificat o dimensiune minimă a ferestrei aplicației, încercați să setați o dimensiune mai mică decât cea minimă. Asigurați-vă că nu puteți seta dimensiunea sub minimul specificat.
  • În timpul tuturor testelor, monitorizați performanța aplicației - ar trebui să fie acceptabilă. De exemplu, asigurați-vă că, după redimensionarea ferestrei aplicației, nu există o întârziere mare în actualizarea interfeței.

Lista de verificare a testării

Pentru a testa performanța aplicației în modul cu mai multe ferestre, urmați acești pași: Încercați-le în modul ecran divizat și modul cu ferestre multiple, dacă nu se specifică altfel.

  • Intrați și ieșiți din modul cu ferestre multiple.
  • Treceți de la aplicația dvs. la o altă aplicație și asigurați-vă că aplicația funcționează bine dacă este vizibilă, dar nu este activă. De exemplu, dacă o aplicație afișează un videoclip, ar trebui să continue redarea în timp ce utilizatorul folosește o altă aplicație.
  • În modul ecran divizat, încercați să mutați linia divizată făcând fereastra aplicației mai mare și mai mică. Încercați aceste operațiuni când cele două ferestre ale aplicației sunt una lângă alta și una deasupra celeilalte. Asigurați-vă că aplicația nu se blochează, că elementele necesare sunt vizibile și că redimensionarea nu durează prea mult.
  • Redimensionați rapid fereastra aplicației de mai multe ori la rând. Asigurați-vă că aplicația nu îngheață sau nu provoacă scurgeri de memorie. Pentru informații despre verificarea utilizării memoriei aplicației, consultați documentul.
  • Rulați aplicația în diferite configurații de fereastră pentru a vă asigura că se comportă conform așteptărilor. Textul trebuie să fie ușor de citit, iar elementele de interfață nu trebuie să fie prea mici.

Dacă ați dezactivat suportul pentru mai multe ferestre

Dacă ați dezactivat suportul pentru mai multe ferestre setând atributul android:resizableActivity="false", lansați aplicația pe un dispozitiv Android N și încercați să o setați la modurile cu formă liberă și cu ecran divizat. Asigurați-vă că aplicația rămâne în modul ecran complet.

Cele mai bune articole pe această temă