Adu-ți aplicația Android pe Chromebookuri

Întrebați orice dezvoltator să numească cea mai mare provocare a dezvoltării pentru Android și sunt șanse să spună fragmentarea. Crearea unei aplicații care să fie suficient de flexibilă pentru a rula între gama uriașă de dispozitive care intră sub bannerul "Android" este o durere de cap uriașă pe care majoritatea dezvoltatorilor Android le-au experimentat la un moment dat.

Dar dezvoltarea unei platforme fragmentate are avantajele sale! Deoarece există atât de multe dispozitive Android diferite, aplicația dvs. are potențialul de a vă conecta la o aplicație imens audiență - și că audiența tocmai a devenit mult mai mare, întrucât aplicațiile Android pot rula acum pe sistemul de operare Chrome.

În acest articol, vă voi arăta cum să obțineți și să executați cea mai recentă aplicație pentru aplicațiile Android pe sistemul de operare Chrome. Și din moment ce veți dori să oferiți cea mai bună experiență de utilizare a acestei noi platforme, mă voi gândi și la modul de optimizare a aplicației dvs. pentru Android, astfel încât să vă puteți uimi cu adevărat noul dvs. segment Chromebook.

Aplicația mea este potrivită pentru Chromebookuri?

Fiind un dezvoltator Android, obținerea aplicației dvs. în fața cât mai multor persoane ar trebui să fie întotdeauna prioritatea dvs. de top, bine?

Nu neaparat.

Doar pentru că aplicațiile Android sunt compatibile acum cu sistemul de operare Chrome, nu înseamnă că toate aplicațiile Android vor fi în mod automat potrivite pentru această nouă platformă.

Imaginați-vă că vedeți o aplicație la care vă place aspectul și că Google Play arată că această aplicație este compatibilă cu telefonul smartphone și Chromebookul. Decideți să descărcați aplicația pe laptop și să înțelegeți imediat că majoritatea funcțiilor aplicației se bazează pe hardware specific pentru dispozitivele mobile, cum ar fi capacitatea de a efectua apeluri telefonice și de a trimite mesaje SMS. 

Rezultatul final? Această aplicație este aproape inutilizabilă în sistemul de operare Chrome. Imediat îl dezinstalați, simțindu-vă ca dezvoltatorul complet ți-au pierdut timpul și ți-ai lăsat o revizuire negativă pe Google Play în retribuție.

O aplicație care nu acceptă sistemul de operare Chrome este, în cel mai rău caz, ușor enervantă pentru utilizatorii Chromebook, dar o aplicație care oferă o experiență teribilă pentru utilizatori în sistemul de operare Chrome este departe mai rau.

Înainte de a vă scufunda și de a începe pregătirea aplicației pentru debutul Chrome OS, faceți câteva momente pentru a vă gândi dacă aplicația dvs. are de fapt ceva de oferit utilizatorilor de Chromebookuri.

Chromebookul dvs. tipic are un hardware foarte diferit de cel smartphone sau tabletă Android tipic. Hardware-ul va fi o temă recurentă în tot acest articol, dar deocamdată vă aruncați o privire asupra listei de caracteristici a aplicației dvs. - faceți oricare dintre aceste funcții să vă lovească ca incompatibilă cu laptopul dvs. tipic? 

De exemplu, este puțin probabil ca aplicația pedometru pe care ați lucrat să funcționeze vreodată în sistemul de operare Chrome, deoarece laptopurile nu au hardware-ul necesar pentru măsurarea pașilor (și când a fost ultima dată când ați văzut pe cineva care a luat Chromebookul pe urmele lor de dimineata?).

Dacă aplicația dvs. include anumite caracteristici incompatibile, atunci există vreo modalitate prin care puteți modifica aceste caracteristici pentru a le face mai prietenoși cu Chromebookurile? Dacă răspunsul este "nu", atunci va trebui să dezactivați aceste funcții atunci când aplicația dvs. rulează pe sistemul de operare Chrome, ceea ce duce la o altă întrebare: poate aplicația dvs. să ofere o experiență bună pentru utilizatori chiar și fără aceste funcții? Dacă pare puțin probabil, atunci este posibil ca aplicația dvs. să nu aibă dreptate pentru Chromebookuri.

Sperăm că, chiar dacă este necesar să dezactivați sau să modificați anumite funcții, aplicația dvs. va avea în continuare ceva de oferit utilizatorilor de Chromebook - și în acest moment sunteți gata și rar să începeți să actualizați aplicația pentru a rula pe sistemul de operare Chrome!

Preluarea aplicației dvs. pe sistemul de operare Chrome

Dacă aplicația dvs. necesită un hardware care nu este acceptat de sistemul de operare Chrome, utilizatorii de dispozitive Chromebook nu vor putea instala aplicația. Există o singură bucată de hardware specială, care este prezentă în majoritatea (dacă nu toate) smartphone-uri și tablete, dar nu este disponibilă pe toate Chromebookurile: o touchscreen.

Pentru a face lucrurile să se înrăutățească, dacă nu specificați altceva, Google Play va presupune că aplicația dvs. Android necesită un touchscreen și, prin urmare, va împiedica instalarea aplicației pe toate dispozitivele care nu includ funcția touchscreen. Dacă intenționați să puneți aplicația la dispoziția unui număr cât mai mare de utilizatori Chromebook, atunci trebuie să vă întrebați: nu are aplicația Android într-adevăr aveți nevoie de un ecran tactil?  

Pentru majoritatea aplicațiilor Android, răspunsul este nu. Cele mai multe aplicații Android pot funcționa perfect fără ecran touchscreen, în special pe Chromebookurile în care utilizatorul are la dispoziție o tastatură de dimensiuni mari, un trackpad și, eventual, un mouse extern. Unele Chromebook-uri suportă chiar "touchscreen fals", care este un sistem de intrare suplimentar care vă permite să utilizați mouse-ul și tastatura pentru a emula evenimente tactile de bază.

Deci, dacă nu aveți un motiv foarte bun să nu faceți acest lucru, trebuie să specificați că aplicația dvs. nu are nevoie de un touchscreen pentru a funcționa. Aceasta implică deschiderea Manifestului proiectului dvs., declarând ecranul tactil ca o caracteristică utilizată de aplicația dvs. (folosește funcția android: name = "android.hardware.touchscreen") și apoi folosind Android: atribut pentru a specifica dacă aplicația dvs.:

  • Necesită această funcție pentru a funcționa ("Adevărat").

  • Preferă această funcție să fie disponibilă, dar poate funcționa fără ea ("fals").

În acest caz, vrem să declarăm că este preferat un touchscreen dar nu este necesar:

Google Play va utiliza apoi proiectele dvs. și Android: este necesar declarații pentru a determina dacă aplicația dvs. este compatibilă cu dispozitivul unui utilizator și va permite numai utilizatorilor să descarce aplicația dacă dispozitivul îndeplinește toate cerințele acesteia.

După ce declarați că aplicația dvs. nu necesită o touchscreen, aplicația va deveni imediat disponibilă pentru un procent mai mare de utilizatori Chromebook.

Alte considerente hardware

Acum, clătiți și repetați pentru fiecare funcție utilizată de aplicația dvs. Aceasta este o bună practică pentru dezvoltare orice Aplicația Android, dar este, de asemenea, un pas important în optimizarea aplicației pentru utilizatorii de Chromebookuri.

Pentru a vă ajuta să obțineți aplicația pregătită pentru sistemul de operare Chrome, echipa Android a creat o listă la îndemână cu toate declarațiile hardware care, de obicei, nu sunt compatibile cu Chromebookurile. Dacă pe această listă există funcții pe care aplicația dvs. le folosește, dar nu nu solicitați, atunci este deosebit de important să declarați această caracteristică în Manifest și să o marcați Android: necesare = "false".

Cu toate acestea, nu setați automat toate funcțiile "fals" deoarece doriți ca aplicația dvs. să fie disponibilă cât mai multor Chromebookuri posibil! Luați în considerare ce experiență utilizatorul va oferi aplicația dvs. fără acces la fiecare bucată de hardware. Deși este tentant să încerci să-ți primești aplicația în fața cât mai multor persoane, e mereu mai bine pentru a oferi o experiență bună utilizatorilor unui public mai mic decât o experiență medie sau slabă a utilizatorilor către o audiență uriașă.

În acest moment, trebuie să revedeți și toate permisiunile solicitate de aplicația dvs., deoarece unele permisiuni fac solicitări hardware implicite. De exemplu, dacă aplicația dvs. solicită permisiunea pentru cameră, atunci Google Play va presupune că aplicația dvs. necesită hardware pentru cameră și va împiedica instalarea aplicației dvs. pe dispozitive care nu îndeplinesc această cerință. Dacă aplicația dvs. nu necesită de fapt o cameră foto, atunci aceasta este o modalitate bună de a pierde potențialii utilizatori! Pentru a împiedica acest lucru, va trebui să declarați această caracteristică în Manifestul aplicației dvs. și să o marcați "fals".

Dacă aderă la cele mai bune practici de declarare a fiecărei caracteristici utilizată de aplicația dvs., atunci teoretic nu ar trebui să vă faceți griji cu privire la solicitările de funcții implicite, dar merită mereu să vă verificați dublu proiectul,.

Mai specific, următoarele permisiuni fac ca cererile de funcții implicite să împiedice instalarea aplicației dvs. pe sistemul de operare Chrome:

  • CALL_PHONE

  • CALL_PRIVILEDGED

  • APARAT FOTO

  • MODIFY_PHONE_STATE

  • PROCESS_OUTGOING_CALLS

  • READ_SMSREAD_SMS

  • RECEIVE_MMS

  • RECEIVE_SMS

  • RECEIVE_WAP_PUSH

  • TRIMITE SMS

  • WRITE_APN_SETTINGS

  • WRITE_SMS

Dacă aplicația solicită oricare dintre aceste permisiuni, verificați din nou că ați declarat hardware-ul respectiv în manifestul proiectului dvs. și marcați fiecare declarație ca "fals" dacă aplicația dvs. nu necesită de fapt acest hardware.  

În timp ce lucrați la solicitările dvs. de funcții, aceasta poate ajuta la obținerea unei previzualizări a modului în care Google Play va filtra aplicația pe baza declarațiilor sale hardware și a solicitărilor de permisiune. SDK-ul Android include un "aapt", care vă permite să faceți acest lucru - puteți rula acest instrument, puteți verifica modul în care se compară rezultatele acestuia cu caracteristicile pe care aplicația dvs. le cere de fapt și efectuați ajustări conform cerințelor.

Pentru mai multe informații despre utilizarea aapt, consultați documentele oficiale Android.

senzori

Majoritatea telefoanelor smartphone și tabletelor Android au diferiți senzori încorporați, care pot oferi aplicației dvs. o gamă largă de date, inclusiv orientarea actuală a dispozitivului, poziția și, uneori, informații despre condițiile de mediu.

Mulți dintre senzorii pe care îi așteptați de obicei pe un smartphone sau pe o tabletă nu sunt disponibili în sistemul de operare Chrome, astfel încât, dacă aplicația dvs. utilizează date de la orice atunci ar trebui să planificați modul în care aplicația dvs. va reacționa dacă acest senzor nu este disponibil.   

Dacă întreaga dvs. aplicație depinde de accesul la un anumit senzor, atunci ar trebui să împiedici instalarea aplicației pe orice dispozitiv care nu include acest senzor. De exemplu, dacă aplicația dvs. nu poate funcționa fără date de la un senzor de accelerometru, atunci ar trebui să adăugați următoarele în Manifestul proiectului:

Celălalt scenariu este că aplicația dvs. nu are necesita un anumit senzor, dar are caracteristici care vor folosi date de la un senzor dacă este disponibil. Dacă aceasta seamănă cu aplicația dvs., atunci ar trebui să declarați acest senzor în Manifestul dvs., dar marcați-l ca fiind Android: necesare = "false". Aplicația dvs. poate verifica dacă acest senzor este disponibil în timpul rulării și dezactivează orice funcționalitate care se bazează pe un senzor care nu este prezent pe dispozitivul utilizatorului.  

Pentru a determina ce senzori sunt disponibili, va trebui să creați o instanță a SensorManager , apoi apelați getSystemService și treceți în SENSOR_SERVICE argument:

privat SensorManager mSensorManager; ... mSensorManager = (SensorManager) getSystemService (Context.SENSOR_SERVICE);

Apoi, va trebui să obțineți o listă a tuturor senzorilor care sunt disponibili în prezent, sunând la getSensorListmethod și folosind Sensor.TYPE_ALL constant:

Listă deviceSensors = mSensorManager.getSensorList (senzor.type_ALL);

Înarmat cu aceste informații, puteți dezactiva toate funcțiile de aplicație care depind de date de la senzori care nu sunt prezenți pe dispozitivul curent.

Redimensionarea și susținerea modului Multi-Window în sistemul de operare Chrome

În sistemul de operare Chrome, aplicațiile Android sunt afișate în ferestre separate, pe care utilizatorul le poate deplasa, și pot să circule între următoarele trei dimensiuni acceptate:

  • Portret. O dimensiune similară cu ecranul unui Nexus 5.

  • Peisaj. Un ecran similar cu Nexus 7.

  • maximizat. Aplicația folosește tot spațiul disponibil pe ecran.

Când este timpul să testați aplicația pe sistemul de operare Chrome, veți dori să vă asigurați că aplicația dvs. arată bine și funcționează corect în toate cele trei dimensiuni acceptate, de exemplu verificând că textul aplicației dvs. este ușor de citit și că toate elementele UI rămân accesibile indiferent dacă utilizatorul plasează aplicația dvs. în portret, peisaj sau în modul maximizat.

Deși utilizatorii de sisteme de operare Chrome pot vizualiza mai multe aplicații Android la un moment dat, o singură aplicație se poate concentra, astfel încât, în interesul conservării bateriei utilizatorului, aplicația trebuie să pună pauză redării ori de câte ori își pierde focalizarea. Singura excepție este când aplicația are conținut care trebuie actualizat în mod constant. De exemplu, dacă dezvoltați o aplicație care redă muzică sau video, probabil că nu veți dori acest lucru Activitate pentru a opri de fiecare dată când aplicația dvs. pierde focalizarea.

Dacă activitatea dvs. trebuie să fie actualizată pe tot ecranul, trebuie să o întrerupeți onStop și reluați redarea în onStart, mai degrabă decât folosind onPause stivuitoare.

Luați în considerare utilizarea Backup automat

Chromebookurile sunt proiectate astfel încât utilizatorii să poată comuta ușor între dispozitive - trebuie doar să se conecteze la contul Google și toate aplicațiile și conținutul lor sunt doar Acolo, indiferent dacă au folosit vreodată acest Chromebook special.

Deoarece acesta este comportamentul pe care utilizatorii Chromebook-ului l-au așteptat, acesta este modul în care aplicația ar trebui să se comporte atunci când rulează pe sistemul de operare Chrome. Aceasta înseamnă că va trebui să creați copii de rezervă ale datelor aplicației online, mai degrabă decât să le stocați local. Cea mai ușoară modalitate este să utilizați caracteristica Auto Backup pentru Android, care vă permite să creați copii de rezervă ale datelor aplicației dvs. în contul Google Drive al utilizatorului.

Dacă aplicația vizează versiunea Android 6.0 sau o versiune ulterioară, este activată implicit copia de rezervă automată. Cu toate acestea, este mereu o idee bună de a fi explicită cu privire la funcțiile pe care le folosește aplicația dvs. (nu există nicio garanție că în mod implicit va fi activată funcția Auto Backup pe versiunile viitoare de Android), deschideți Manifest-ul proiectului și adăugați următoarele:

Android: allowBackup = "true"

Pentru informații mai detaliate despre implementarea copierii și restaurării, consultați documentele oficiale Android.

Timp de testare!

Chiar și după ce ați urmat toate aceste bune practici, nu puteți fi sigur că aplicația dvs. va oferi o experiență bună în sistemul de operare Chrome-dacă nu testați aplicația pe un Chromebook real.

La momentul redactării, Google vă recomandă să testați aplicațiile gata de Chromebook în următoarele moduri:

  • Un Chromebook bazat pe ARM.

  • Un Chromebook bazat pe Intel x86.

  • Chromebook convertibil (unul care poate schimba forma între laptop și tabletă).

  • Un Chromebook cu suport touchscreen.

  • Un Chromebook cu suport "fals touch".

Dar să fim realiste: este puțin probabil că veți avea acces la mai multe Chromebookuri. Atunci când decideți ce Chromebook (uri) trebuie să încercați să testați aplicația dvs., ar putea fi util să aruncați o privire la lista Google a tuturor Chromebook-urilor compatibile Android aflate în prezent pe piață.

Înainte de a putea instala aplicația Android pe sistemul de operare Chrome, va trebui să puneți Chromebookul în modul Dezvoltator și să activați instalări din surse necunoscute.

Procesul exact de plasare a Chromebookului în modul pentru dezvoltatori diferă de la un dispozitiv la altul, deci dacă aceste instrucțiuni nu funcționează pentru modelul dvs., atunci ar trebui să căutați documentele Chromium pentru instrucțiuni specifice dispozitivului.

Pentru a intra în modul dezvoltator:

  1. Asigurați-vă că Chromebookul este oprit.

  2. Țineți apăsată tasta Esc și Reîmprospăta în timp ce apăsați dispozitivul Putere buton. Apoi, Chromebookul trebuie să ruleze în ecranul de recuperare.

  3. apasă pe Control-D chei de pe tastatura Chromebookului.

  4. Când vi se solicită, apăsați pe introduce cheie.

  5. apasă pe Control-D tastele din nou.

Chromebookul dvs. va porni acum în modul Dezvoltator.

Următorul pas este activarea surselor necunoscute, navigând la Setări Chrome> Setări aplicații> Securitate și selectarea Surse necunoscute.

După ce ați finalizat acești pași, sunteți gata să instalați pachetul de aplicații APK pe care doriți să îl testați. Pentru a transfera rapid fișierul APK pe Chromebook, puteți:

  • Adăugați fișierul APK în Google Drive.

  • Copiați fișierul APK în Chromebookurile dvs. Descărcări utilizând o unitate externă sau o cartelă SD.

  • Trimiteți-vă APK-ul prin e-mail.

Apoi, va trebui să descărcați fișierul APK pe Chromebook și să îl deschideți utilizând aplicația Manager fișiere Android (pe care o veți găsi navigând la Setări Chrome> Setări aplicații> Dispozitiv și USB> Explorați).

Alternativ, puteți să împingeți APK-ul de pe mașina dvs. de dezvoltare pe Chromebook utilizând comenzile Bridge Debug Bridge (ADB).

Obținerea ADB pentru a juca frumos cu sistemul de operare Chrome necesită o configurare, dar odată ce ați făcut conexiunea, puteți utiliza ADB pentru a lansa o serie de comenzi care pot fi destul de utile pentru testarea aplicației Android. (Pentru mai multe informații despre comenzile ADB, consultați documentele oficiale Android).

Lucrul cu Bridge Debug Bridge

Configurarea ADB este un proces în mai multe etape, așa că haideți să o abordăm cu un pas la un moment dat:

1. Configurați paravanul de protecție OS Chrome pentru a permite conexiunile ADB primite.

Lansați Terminalul OS Chrome apăsând Control-Alt-T pe tastatură, apoi tastați coajă pentru a obține shell-ul de comandă bash:

crosh> shell chronos @ localhost / $

Introduceți parola și apoi lansați următoarele comenzi prin intermediul ferestrei Terminal:

chronos @ localhost / $ sudo / usr / libexec / debugd / helpers / dev_features_rootfs_verification

Citiți disclaimer. Dacă sunteți bucuros să continuați, introduceți următoarea comandă:

chronos @ localhost / $ sudo reboot

În acest moment, Chromebookul dvs. va reporni. După terminarea încărcării Chromebookului, reporniți Terminalul și tastați:

chronos @ localhost / $ sudo / usr / libexec / debugd / helpers / dev_features_ssh

2. Găsiți adresa IP a Chromebookului:

Activarea depanării ADB necesită adresa IP a Chromebookului, astfel:

  • Apasă pe Reţea pictograma din partea de jos-dreapta a ecranului de pornire al laptopului dvs. Chromebook.

  • Selectați rețeaua la care este conectat Chromebookul în prezent.

  • Apasă pe eu pictograma din colțul din dreapta-jos al meniului.

În acest moment, va apărea o casetă care conține adresa IP a Chromebookului dvs. - notează-o, deoarece veți avea nevoie de aceasta mai târziu.

3. Activați depanarea adb.

Pe Chromebook, parcurgeți pașii următori:

  • Faceți clic pe pictograma ceas din partea dreaptă jos a ecranului.

  • Selectați Setări.

  • În Aplicații Android secțiune, faceți clic pe Gestionați aplicațiile Android din Setări legătură.

  • Clic Despre dispozitiv.

  • Introduceți modul dezvoltator făcând clic pe Construiți numărul de șapte ori.

  • Faceți clic pe săgeata din partea stângă sus a ferestrei. Aceasta vă va duce înapoi la principalele Setări ecran.

  • Clic Opțiuni pentru dezvoltatori.  

  • Permite ADB depanare apoi faceți clic pe O.K.

Apoi, parcurgeți pașii următori pe mașina dvs. de dezvoltare:

Deschideți o fereastră Terminal și schimbați directorul (CD), astfel încât să indice locația programului "adb" al aplicației Android SDK.

cd / Utilizatori / jessicathornsby / Library / Android / sdk / platform-tools

Spuneți mașinii de dezvoltare să asculte o conexiune TCP / IP pe portul 22, emise următoarea comandă adb:

./ adb tcpip 22

Eliberați adb connect comanda urmată de adresa IP a Chromebookului dvs., de exemplu:

./ adb conectați 100.100.0.10

Pe Chromebook, faceți clic pe Permite când vi se solicită.

Singurul lucru pe care trebuie să-l faceți este să împingeți APK-ul de la mașina dvs. de dezvoltare pe Chromebook.

Pe mașina dvs. de dezvoltare, emiteți adb install , urmată de calea și numele fișierului APK pe care doriți să îl instalați, de exemplu:

./ adb instalare Utilizatori / jessicathornsby / Documents / app-name.apk

Si asta e! Aplicația Android este acum instalată pe Chromebook, pregătită pentru test!

rezumat

În acest articol, am analizat cum să actualizați aplicația pentru a rula pe Chromebookuri și apoi, odată ce este capabilă să ruleze pe această nouă platformă, cum să o optimizați pentru a oferi o experiență mai bună pentru utilizatori.

Fiind capabili să acceseze aplicațiile preferate pe smartphone-urile lor, tabletele și acum laptop-urile lor sunt o veste excelentă pentru utilizatorii de Chromebook și pentru dvs. ca dezvoltator înseamnă un public mai mare potențial pentru aplicațiile Android - și care nu ar dori acest lucru?

Cod