Asist. univ. dr. Irina Tudor Stroe George Victor [620135]

UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE ȘTIINȚE
SPECIALIZAREA INFORMATICĂ

LUCRARE DE LICENȚĂ

Îndrumător științific: Absolvent: [anonimizat]. univ. dr. Irina Tudor Stroe George Victor

CRAIOVA
2019
UNIVERSITATEA DIN CRAIOVA

FACULTATEA DE ȘTIINȚE
SPECIALIZAREA INFORMATICĂ

Dezvoltarea aplicațiilor Android utilizând Java

Îndrumător știin țific: Absolvent: [anonimizat]. univ. dr. Irina Tudor Stroe George Victor

CRAIOVA
2019
Contents
Introducere ………………………….. ………………………….. ………………………….. ………………………….. . 4

1.Despre Android ………………………….. ………………………….. ………………………….. ………………….. 6
1.1.Istoric și evoluție ………………………….. ………………………….. ………………………….. …………… 7
1.2.Interfață ………………………….. ………………………….. ………………………….. …………………….. 10
1.3.Caracteristici ………………………….. ………………………….. ………………………….. ………………. 12
1.4.Aplicații ………………………….. ………………………….. ………………………….. ……………………… 14
1.5.Hardware ………………………….. ………………………….. ………………………….. …………………… 15
2.Dezvoltare de soft ware ………………………….. ………………………….. ………………………….. ………. 19
2.1.Componentele unei aplicații Android ………………………….. ………………………….. …………… 19
2.1.1.Activități ………………………….. ………………………….. ………………………….. ……………….. 22
2.1.2.Fragmente ………………………….. ………………………….. ………………………….. ……………. 25
2.1.3.Servicii ………………………….. ………………………….. ………………………….. …………………. 29
2.1.4.Intenții și filtre ………………………….. ………………………….. ………………………….. ……….. 31
2.1.5.Furnizori de conținut ………………………….. ………………………….. ………………………….. . 37
2.1.6.Receptoare de emisie ………………………….. ………………………….. …………………………. 41
2.1.7.UI Layouts ………………………….. ………………………….. ………………………….. ……………. 44
2.1.8.UI Control ………………………….. ………………………….. ………………………….. …………….. 48
3.Dezvoltarea unei aplicații Android ………………………….. ………………………….. …………………….. 52
3.1.Android Studio ………………………….. ………………………….. ………………………….. ……………. 53
3.2.Fitness Gym Workout – aplicație dezvoltată pentru Android ………………………….. ………… 63
3.2.1.Descriere, mod de utilizare ………………………….. ………………………….. ………………….. 63
3.2.2.Structura aplicației ………………………….. ………………………….. ………………………….. …. 65
3.2.3.Biblioteci Android Studio ………………………….. ………………………….. ……………………… 70
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. … 72
Bibliografie ………………………….. ………………………….. ………………………….. …………………………. 74

Stroe George Victor Introducere
Introducere
Atât tehnologia cât și informația au ajuns în ziua de azi să fie la îndemâna oricui ,
acest lucru fiind benefic din mai multe motive. Unul dintre acestea ar putea fi faptul că ,
atât inteligența cât și ingeniozitatea omenirii începe să evolueze într -un ritm destul de
accelerat.
Cea mai uitilizată tehnologie în ziua de astăzi este cea a mobilelor. Acest fapt se
poate dovedi foarte simplu, din momentul în care fiecare persoană deține cel puțin un
telefon mobil.
Putem spune că, apariția “smarphone” a reu șit să aducă o mare schimbare în
viața tuturor, datorită comunicării mult mai rapide atât prin intermediul telefoniei mobile
cât și a internetu lui, dar și accesului cât mai rapid la informație, acest lucru fiind posibil
din orice loc, în orice moment. Aceste “mobile devices” au reușit să evolueze într -un
ritm cât mai rapid, prima apariție a unui smartphone fiind în anul 1997, an în care
telefonul “Ericsson GS88 Penelope” a fost 4escries ca fiind un Smart Phone, iar în
prezent avem la dispoziție orice informație dorim, putem accesa diferite site -uri: de
socializare, stocare a informatiilor, educative și multe altele.
Conform unor previziuni, 80% din populația lumii, circa 6.4 miliarde de persoane
sunt utilizatori de smartphone -uri. Datorită acestui lucru, cele mai multe organizații se
ocupă de introducerea învățării prin intermediul telefoanelor mobile. Deoarece
informația poate fi asimilată în or ice loc putem ajunge mult mai ușor la un progres destul
de mare la învățarea cursurilor, dobândirea de noi cunoștințe dar și unele abilități.
Învățarea mobilă duce la o asimilare mult mai bună de cunoștințe, acestea putând fi
păstrate pentru o mai lungă pe roadă. Principalul avantaj este acela că putem
personaliza învățarea, de exemplu, cursurile personalizate ne oferă o rată mai mare de
avantaje, o mai multă implicare a cursanților sau angajaților.
Telefoanele mobile de tip “Smartphone” ne dau un avantaj destul de mare. Spre
deosebire de vechile metode de învățare sau de accesare a informațiilor, cu ajutorul
unui smartphone putem accesa mult mai repede site -uri, putem deprinde mult mai ușor
informațiile, acestea fiind prezentate într -un design mult mai rece ptiv.
Din păcate, această tehnologie provoacă dependență precedată de anumite
efecte negative. Chiar dacă aceste dispozitive ne ușurează viața și ne ajută la o

Stroe George Victor Introducere
dezvoltare mult mai rapidă, putem fi influențați și într -un mod negativ, atât din punct de
vedere fizic cât și mental. Acordând prea multă atenție acestor device -uri ne putem
distruge sănătatea, ne putem distruge vederea, putem să ne pierdem orientarea,
moment în care nu o să mai fim atenți la toate lucrurile care ne înconjoară. Datorită
avantajului de a putea conversa cu o persoană de la orice distanță și

Stroe George Victor Despre Android
celui de a putea face rost de informații de oriunde, lumea nu mai face mișcare,
devenind mult mai leneșă, acest lucru poate duce la anumite boli, distrugerea unor
organe interne, îngrășare și multe altele.
Inițial, smartphone -urile au fost proiectate pentru realizarea unor lucruri simple,
cum ar fi posibilitatea de a vorbi cu alte persoane, trimiterea și recepționarea mesajelor
text. Evoluția acestora a ajuns în punctul în care putem utiliza mai multe dispozitive cu
ajutorul unui singur device.
Odată cu apariția sistemului de operare Android lucrurile au devenit mult mai
simple. Acesta a fost lansat la d ata de 5 noiembrie 2007, anunțul fiind făcut prin
fondarea Open Handset Alliance, un consorțiu format din 48 de companii de hardware,
software și telecomunicații, cu unicul scop de a dezvolta dispozitivele mobile.
La data de 21 octombrie 2008, Android a fost disponibil ca Open Source. Google
a deschis întregul cod sursă, lăsând posibilitatea producătorilor de dispozitive, dar și a
dezvoltatorilor de aplicații de a modifica sistemul de operare, cât și aplicațiile
preinstalate pentru a permite utilizatorilo r să se bucure de o interfață personalizată după
bunul plac.
1.Despre Android
Androidul este un sistem de operare pentru dispozitivele mobile. Acesta a fost
creeat de Google și are la bază o versiune modificată a “Linux kernel” , fiind în același
timp un software de tipul “Open source”. Scopul principal pentru care a fost conceput a
fost acela de realiza o modificare în rândul telefoniei mobile cu touchscreen, dar și
pentru tablete. După lansarea Android, Google a cr eat Android T V pentru televiziune,
Android Auto pentru mașini și Wear OS pentru ceasuri de mână inteligente, fiecare
dintre acestea având o interfață specifică. Odată cu dezvoltarea androidului, acesta a
început să se dezvolte și pentru consolele de gamin g, camerele di gitale, calculatoare și
în majoritatea dispozitivelor electronice.
Inițial, Android a fost înființat de Android Inc., după care Google la cumpărat în
anul 2005. Android a dezvăluit în anul 2007, ia r primul dispozitiv android com ercial a
fost lansat în Sep tembrie 2008. În ziua de azi, versiunea curentă este Android 9 “Pie”,
care a fost lansat ă în August 2018. Android au hotărât să lanseze o nouă versiune,
aceasta fiind una beta, Android Q, găsindu -se pe telefoanele “Pixel” lansate în Martie

Stroe George Victor Despre Android
2019. Desig ur, conform politicii lor, codul sursă este cunoscut ca “Android Open Source
Project, AOSP”, care este în principal licențiat de Apache License.
Andoidul, deasemen ea, este asociat cu o suit ă de software creată de google,
cunoscu yă sub numele de “Google Mobile Services, GMS” , care este în cele mai multe
cazuri instalat pe dervice. Acesta include anumite aplicații de bază care nu pot fi
dezinstalate , cum ar fi Gmail, magazinul de aplicații sau distribuția digitală, platforma
Google P lay și una dintre aplicațiile principale ”Google Play Services ”, mai putem găsi
incluse în unele cazuri și Google Chrome ca browser web, care în ziua de astăzi este
cel mai utilizat browser pentru android și Google Search app, cu ajutorul căruia putem
găsi mai rapid o aplicație la nevoie.
Androidul a fost cel mai vândut sistem de operare din lume pentru smartphones
din anul 2011 și pentru tablete din anul 2013. Din Mai 2017, android a fost declarat ca
având peste două bili oane de utilizatori activi, cel ma i utilizat s istem de operare pe
majoritatea
device -urilor.
Din decembrie 2018, magazinul Google Play a fost declarat ca având peste 2.6
milioane de aplicații, acesta fiind cel mai utilizat magazin pentru descărcarea aplicațiilor
android, având o gamă variată, de la aplicații folosite în viața de zi cu zi, până la jocuri.
1.1.Istoric și evoluție
Android Inc. a fost fondat în Palo Alto, California, în Octombrie 2003 de Andy
Rubin, Rich Miner, Nick Sears și Chris White. Rubin a descris proiectul Android ca
“Extraordinarul potenț ial în dezvoltarea dispozitivelor mobile inteligente care sunt
capabile să rețină locația și preferințele proprietarului ”. Principalul scop al comp aniei era
acela de a creea un si stem de operare mai avansat pentru camerele digitale, aceasta
fiind baza în care ei investiseră în A prilie 2004. Această companie decicese că , un
maga zin pentru ca mere nu era suficient de larg pentru scopurile lor, motiv pentru care,
cinci luni mai târziu au ajuns la concluzia că eforturile lor pentru creearea Androidului au
ajuns la etapa în care acesta poate concur a cu Symbian și Microsoft Windows Mobile.
În Iulie 2005, Google a achiziționat Android Inc. cu cel puțin 50 de milioane de
dolari. Așanumiții angajați cheie Rubin,Miner și White, s -au alăturat Google ca parte de
achiziționare. Nu se cunoștea foarte mult despre Android la momentul acela, compania

Stroe George Victor Despre Android
procura doar câteva detalii, altele decât cele precum creearea unui software pentru
dispozitivele mobile. La Google, o echipă de programatori, avându -l ca lider pe Rubin,
au creeat o serie de dispositive mobile bazată pe Linux kernel. La acel moment, Google
a denumit acea platform ă ca fiind special concepută pentru telefoane mobile și
promițând viitorilor utilizatori un s istem flexibil și actualizabil.
Diverse speculații urmau să intre în circulație despre intenția Google de a intra în
piața telefoniei mobile din Decembrie 2006.
Prima apariție pe piață a unui telefon mobil care utilizează android, a sosit în anul
2007, acesta fiind un telefon BlackBerry, care nu utiliza touchscreen, ci o tastatură
QWERTY fizică. Principala problemă a fost apariția Apple iPhone care însemna că
androidul “trebuie s ă se întoarcă la desenarea schițelor ”. Mai t ârziu Google a schimbat
documentația specificațiilor Android cu declarația că acesta va putea supporta
Touchscreen, în același timp susțineau că „Produsul a fost conceput cu p rezența unor
butoane fizice discrete ca ipoteză, prin urmare un ecran tactil nu poate înlocui complet
butoanele fizice ”.
Din 2008, Nokia și BlackBerry au anunțat telefoanele inteligente bazate pe
atingere pentru a concur a cu iPhone 3G, după care Android s a focusat în cele din urmă
pe ecranele tact ile. Primul telefon smartphone commercial disponibil care rula Android a
fost HTC Dream, cunoscut și ca T -Mobile G1, a cărui apariție a fost anunțată în data de
23 Septembrie 2008.
Din 2008, Android a avut parte de numeroase actualizări și noi upgrade -uri care
au îmbunătățit incrementarea sistemului de operare, prin adăugarea de noi caracteristici
și fixând anumite buguri în versiunile anterioare. Fiecare lansare majoră este denumită
în ordine alfabetică fiind tra tat ca un ”desert dulce ”, primele versiuni de Android având
numele alesănătoare cu diverse prăjituri “Cupcake”, “Donut”, “Eclair” and “Froyo” , în
ceastă ordine.
După anunțarea Androidului KitKat în anul 2013, Google a explicat că “De c ând
aceste dispositive ne fac vie țile mai drăguțe, fiecare versiune Android este denumită
după un desert ”.
În anul 2010, Google a lansat propria serie de dispositive, Nexus, o linie în care
Google face parteneriat cu diferiți producători de dispositive pentr u a creea un nou

Stroe George Victor Despre Android
dispozitiv și pentru a introduce o nouă versiune de Android. Această serie a fost
descrisă drept “am jucat un rol important în istoria androidului prin introducerea de
interacțiuni de noi software și hardware standarde de -a lungul dimpului ” și a devenit
cunoscută pentru gratuitatea softwareului cu îmbunătățiri constante.
La conferința de producții din mai 2013, Google a anunțat o versiune specială
Samsung Galaxy S4, un telefon care rula un android liber și care promitea să
primească noi ac tualizări rapide de sistem. Acest dispozitiv urma să aducă în trending
lansarea programului Google play edition, care a fost urmată și de alte dispozitive,
incluzând HTC One Google Play edition și Moto G Google Play edition.
Din 2008 până în 2013 Hugo Ba rra a fost purtătorul de cuvânt, reprezentând
Android la conferințele de presă și Google I /O, conferința anuală de noi producții
Google. El a părăsit Google în August 2013 pentru a se alătura telefoniei mobile
Chineze care producea Xiaomi.
Șase luni mai târziu, Google a anunțat printr -o postare pe un blog că Andy Rubin a fost
mutat de la divizia Android pentru a lucra la un nou proiect la Google, dar și faptul că
Sundar Pichai va deveni noul lider Android.Pichai și -a schimbat poziția în cele din urmă,
devenind noul CEO al Google în August 2015, urmând restructura companiei în
“conglomerate Alphabet” , făcându -l pe Hiroshi Lockheimer noul lider Android.
În 2014, Google a anunțat Andoid One, un set de modele de referință hardware
care vor permite o mai ușoar ă creare de calitate înaltă a telefoanelor la un cost minim,
proiectat pentru consumație în producția țărilor. Primul set de telefoane Android One au
fost lansate în India, în semptembrie, anunțul fiind făcut de Google. Oricum, în Iunie
2015 a fost anunța t că proiectul a fost o dezamăgire, citind “reluctant consumers and
manufacturing partners” și “misfires fro m the search company that has never quite
cracked hardware”.
Planurile pentru relansarea Android One au revenit în August 2015, Africa
anunțând nou a locația pentru program cu o săptămână mai târziu. Un raport de la “The
Information” în Ianuarie 2017 stabilea că Google iși lansează noul program Android One
de costuri scăzute în Statele Unite, cu toate că informațille “The Verge” susțineau că,
cel mai probabil, actualul dispozitiv nu este produs de el.

Stroe George Victor Despre Android
Google a lansat Pixel and Pixel XL smartphones în Octombrie 2016, marcate ca
fiind primele telefoane făcute de Google și care conțin viitoare software și conținuturi, ca
Google Assistant. Telefonul Pixel înlocuiește seria Nexus, cu o nouă generație de
telefoane Pixel, lansate în Octombrie 2017.

1.2.Interfață
Interfața unui sistem de operare Android reprezintă designul pe care îl au
iconițele, meniurile și temele caracteristice. Inițial, Androidul a porn it cu o interfață
simplă, dar aceasta a început să evolueze cu timpul, iar în prezent putem găsi interfețe
android atât pe telefoanele mobile, tablete, cât și pe dispozitive electrice, televizoare,
mașini, etc.
În principal, interfața implicită a utiliza torului Android se bazează pe manipularea
directă, fiind caracterizată prin utilizarea anumitor intrări de atingere, fiecare dintre
acestea corespunzând în mod liber unor acțiuni din lumea reală, cum ar fi împingerea,
atingerea, ciupirea, împingerea simplă , folosirea unor gesturi, etc. p entru a manipula
anumite obiecte de pe ecranul dispozitivului, îm preună cu o tastatură virtuală.
În ziua de astăzi, majoritatea utilizatorilor adolescenți utilizează dispozitivele
android pentru jocuri. Pentru controlarea m ai ușoară a comenzilor în timpul jocului sunt
folosite “Controlerele de jocuri” și tastaturile fizice de dimensiune completă, acestea
fiind conectate prin Bluetooth sau USB. Răspunsul la intrarea utilizatorului oferă o
interfață touch cu fluid și este proi ectată în așa fel încât să fie imediat, acesta utilizează
toate mijloacele dispozitivului pentru a creea un mediu cât mai atractiv folosind
capacitățile de vibrație ale dispozitivului, în acest fel se oferă un feedback haptic.
Tot ceea ce tine de hardwar e-ul intern, cum ar fi de exemplu accelerometrele,
giroscoapele și senzorii de proximitate sunt folosite de majoritatea aplicațiilor, unele îi
folosesc pentru a răspune la anumite acțiuni suplimentare executate de către utilizator,
ca ajustarea ecranului de la portret la peisaj, în funcție de modul în care este oriectat
dispozitivul, ajustarea luminozității ecranului în funcție de lumina de afară, permiterea
utilizatorului să direcționeze un vehicul în tr-un joc prin simpla rotire a dispozitivului, într –
un joc de curse simulând rotirea unui volan.

Stroe George Victor Despre Android
Designul Androidului este proiectat cu un meniu de start la pornirea ecranului,
navigația ”Home” și “Hub” de informații pe dispozitivele Android, fiind echiva lent cu
desktop -ul clasic de pe computerele personale. Ecranul principal este format din
“casete de ecran” , acestea putând fi customizate, putem să le adăugăm anumite efecte
și putem să adăugăm widget -uri ale aplicațiilor. Pictogramele de aplicații lanseaz ă
aplicația asociată, această acțiune fiind asemănătoare cu lansarea unei aplicații în
windows cu ajutorul unui shortcut de pe desktop, iar widgeturile afișează live și
actualizează automat conținutul de pe ecranul principal, ca de exemplu un widget de
prognoză meteo, de e -mail, un buletin de știri, muzic player, etc.
Un ecran de pornire poate avea mai multe pagini, iar pentru schimbarea acestora
utilizatorul trebuie să gliseze la stânga sau la dreapta în funcție de pagina pe care
dorește să ajungă. Majori tatea dispozitivelor utilizatoare de Android au o interfață
proprie, aceasta venind cu o gamă de efecte la glisarea paginilor ecranului de start,
diferite teme pentru widgeturi, pentru pictogramele aplicațiilor, pentru tot designul de pe
ecranul dispozitiv ului. Pe pagina “Homescreen”, la prima pornire a dispozitivului, în
general, se găsesc anumite pictograme pentru principalele aplicații de pe dispozitivul
respectiv, cum ar fi Google Play, Camera Photo, Galeria, Contacte, Mesaje, un web
browser, în trecut fiecare firmă își creea propria aplicație web, dar în prezent,
majoritatea firmelor folosesc Google Chrome, etc. Dar și pictograme ale unor aplicații
inutile, folosite pentru a face reclamă unui partener, unui sponsor, acest aspect
exemplifică faptul că An droidul imită într -o mare măsură aspectul altor sisteme de
operare, cum ar fi Windows Phone, Windows mobile, etc. Pentru a -și pune amprenta pe
piață, majoritatea producătorilor schimbă interfața, caracteristile și designul exterior al
dispozitivelor, pentr u a se diferenția de concurenți.
În partea de sus a ecranului se poate găsi o “Bară de stare” care afișează
informații generale despre dispozitiv și conectivitatea sa, cum ar fi, afișarea procentului
bateriei, semnalul de rețea, conectivitatea la datele m obile sau la o rețea wireless.
Această bară poate fi “trasă” în jos pentru a afișa un ecran în care majoritatea
aplicațiilor afișează informații importante sau actualizări, pe dispozitivele mobile acest ă
bară poartă denumirea de “bară de notific ări”.
Notificările sunt informații cât mai scurte, afișate în timp real, afișate de aplicațiile
utilizatorilor , în general atunci când nu sunt utilizate, iar în momentul în care este

Stroe George Victor Despre Android
utilizată, utilizatorii sunt direcționați către un ecran din interiorul aplicaț iei respective
care afișează conținutul care a fost prezentat în notificarea primită.
Încă de la apariția veriunii Android 4.1 Jelly Bean, notificările au devenit
extensibile, acestea permit utilizatorilor să atingă această pictogramă din bara de
notifică ri, iar printr -o simplă glisare, putem extinde informațiile despre notificarea
respectivă chiar în momentul în care este afișată, fără a mai fi nevoie să intrăm în
aplicație.
Ecranul “Toate aplicațiile” listează toate aplicațiile, având posibilitatea de a trage
din lista respectivă aplicația dorită și de a -i putea creea o pictogramă de lansare rapidă
pe ecranul principal.
Ecranul “Recente” creează un fel de meniu, cu ajutorul căruia putem comuta
între aplicațiile utilizate recent, acest lucru fiind foart e util, scutind timp și energie. Din
acest ecran, putem să închidem aplicațiile pe care nu le mai folosim, pentru ca acestea
să nu mai ruleze în fundal și a mări timpul de utilizare al dispozitivului respectiv.
1.3.Caracteristici
Androidul este un sistem de operare de tipul Open Source, având ca software
principal Linux, fiind creeat pentru o gamă largă de dispozitive.
La baza Androidului găsim kernel -ul Linux. Ca de exemplu Runtimeul Android
(ART) se bazează pe kernel -ul Linux pentru diverse funcționalități, cum ar fi fidelitatea și
gestiunea memoriei la un nivel foarte scăzut. Prin folosirea kernel Linux, Androidul
poate profita de caracteristicile cheie de securitate și poate permite altor producători de
dispozitive să dezvolte drivere hardw are pentru un kernel destul de cunoscut.

Stroe George Victor Despre Android
Pentru dispozitivele care rulează versiunea 5.0 (API de nivel 21) Android sau mai
mare, fiecare aplicație rulează în propriul proces, având de asemenea propria instanță a
Runtime -ului Android (ART). Cu ajutorul AR T este posibilă rularea mai multor mașini
virtuale pe dispozitivele cu memorie redusă, prin executarea unor fișiere DEX într -un
format bytecode conceput special pentru Android, acesta fiind optimizat pentru o
amprentă minimă de memorie. Se pot construi une lte de unelte, cum ar fi Jack și se pot
compila sursele Java în bytecode DEX care pot rula pe platforma Android.
Unele dintre caracteristicile principale ale ART includ următoarele :
-compilație ahot -of-time (AOT) și just -in-time (JIT) ;
-colectare optimă de gunoi (GC) ;
-conversia fișierelor Dalvik Executable (DEX) dintr -un pachet de aplicații într -un cod de
mașină mai compact, pe platforma Android 9 (nivel 28 API);
-un mai bun suport pentru depănare, având inclusiv un profil de eșantionare dedicat,
excepți i detaliate de diagnosticare și raportare la accidente, precum și capacitatea de a
seta puncte de supraveghere pentru a monitoriza anumite domenii ;

Stroe George Victor Despre Android
Înaintea versiunii Android 5.0 (API -ul 21), Dalvik a fost denumit drept timpul de
execuție Android. Dacă ap licația rula bine pe ART, asta însemna că ar fi trebuit să
ruleze și pe Dalvik, dar este posibil ca vice-versa să nu se aplice.
Androidul cuprinde un set de biblioteci de bază de execuție, a căror funcționalități
se datorează limbajului de programare Java, având, de asemenea și câteva
caracteristici de limbă Java 8, care sunt utilizate în cadrul API Java.

1.4.Aplicații
Piața Android, Android Market, este similară cu cea de pe iPhone, App Store,
fiind un catalog de aplicații care pot fi descărcate și instalate pe hardware -ul deviceului
dorit prin comunicație fără fir, fără a se utiliza un computer. Inițial au fost acceptate doar
aplicații gratuite, dar acest lucru sa schimbat, aplicațiile fiind disponibile și contra cost
pe Piața Android începând cu d ata de 19 februarie 2009.
Aplicațiile au apărut de la PDA -uri timpurii, prin intermediul jocului simplu Snake,
de pe telefonul Nokia 6110, la primele 500 de aplicații din Apple App Store, când a
debutat în iulie 2008.
Un co -editor al TechCrunch pe nume Matthew Panzarino, a realizat trei faze de
dezvoltare a aplicațiilor care au reușit să ducă tehnologia mobilă de la telefonie la jocuri

Stroe George Victor Despre Android
și unități, la aplicații care urmau să ajungă pe ecranul de pornire al dispozitivelor mobile
și să domine experiența utilizatorilor, aplicațiile încărcate de conținut fiind mai mult
despre maximizarea utulității lor fără a capta atenția.
Un viitor posibil este ca aplicațiile pe care le cunoaștem în ziua de astăzi, la un
moment dat vor înc eta să mai existe, fiind înlocuite de nume de mărci și servicii care ne
oferă perspective intuitive pe parcursul zilei. De exemplu, un flux de știri personalizat
plin de serviciile pe care le utilizăm, prezentate la momentul potrivit.
Ideea multiscreenul ui va deveni “pe tot ecranul” . Dezvoltatorii de aplicații nu se
vor mai concentra pe proiectarea pentru desktop și mobil, în cele din urmă vor ajunge
să proiecteze o singură experiență care se va întinde pe orice terminal conectat la
internet. Asta ne va d uce înapoi la conceptul de cărți și modul în care conținutul
prezentat în acest fel ar putea funcționa bine pentru utilizatorii de pe aproape orice tip
de ecran și ar putea fi semnificativ.
1.5.Hardware
Încă de la început, androidul a fost proiectat pentr u a putea fi compatibil cu o
gamă largă de componente hardware. Aceasta este un lucru foarte importat deoarece,
fiecare producător de dispozitive poate să conceapă și să integreze elemente necesare
pentru dispozitivul Android pe care dorește să -l creeze de pe piață sau chiar dacă este
produs de el.
Fiind o platformă destinată dezvoltării de aplicații pentru telefoanele mobile, în
creearea ei s -a avut în vedere conservarea e nergiei acumulatorului, precum ș i
gestionarea în mod eficient a resurselor de memorie existente.
Pentru a nu suprasolicita procesorul, designerii de celulare au realizat o
componentă separată care să gestioneze complexitatea comunicării mobile. Modem -ul
baseband și radioul sunt sisteme hardware și software care furnizează dispoziti velor
Android o conexiune la telefonia mobilă, lucru ce permmite atât transfer de voce cât și
de date.
Una dintre cele mai interesante componente hardware este sistemul de
poziționare globală (GPS) care este oferit gratis în pachetul de bază. Acesta nu
identifică doar locația telefonului, folosindu -se de sateliții GPS, putem naviga cu
ușurință prin locuri necunoscute, deoarece primim în timp real indicații despre locația

Stroe George Victor Despre Android
curentă și direcția în care trebuie să mergem pentru a ajunge la destinație. Pe lângă
aceste facilități, putem folosi locația pentru a fi ac cesată de alte aplicații drept informație
pentru diferite nevoi.
Majoritatea telefoanelor conțin un slot de memorie detașabil, în care putem
introduce un card, cunoscut sub numele de card SD (Secure Di gital). La fel ca memoria
flash, cardurile SD sunt tipuri de memorie nevolatilă care utilizează tehnologia flash
NAND. Fiind concepute ca elemente portabile, acestea aderă la anumite specificații
fizice, făcând posibil interoperabilitatea cu celelalte disp ozitive. Acest aspect constituie
una dintre notele distinctive vis -a-vis de telefoanele Apple, care nu au un card SD, un
mare dezavantaj deoarece nu au decât memorie flash cu o capacitate de la 4 GB până
la 64 GB. Această alegere făcută de către producător ii Android nu este doar o soluție
mai ieftină ci și practică, acest card putând fi utilizat și de către alte dispozitive, fiind mai
rapid și mai la îndemână transferul de date între ele.
Ecranul dispozitivului Android este interfața sistemului de operare pentru
interacțiunea cu utilizatorul, fiind important nu doar pentru impactul din punct de vedere
vizual, cât și pentru complexitat ea muncii produse pentru a -l crea, dar și pentru
răspunsul pe care -l oferă la atingere. Acesta este într -o continuă dezvoltare, având un
istoric destul de evolutiv, de la un simplu ecran de celular, alb -negru, ajungându -se în
ziua de astăzi la telefoane cu diagonala ecranului de 6 inch și rezoluție 4k, iar pe viitor
se așteaptă ecrane curbate, care se pot transforma din tr-un dispozitiv mobil normal într –
unul flexibil, pe care îl putem utiliza în funcție de necesitate.
Camera telefonului este unul dintre principalele componente, utilizate cel mai des
de majoritatea utilizatorilor, în funcție de preferințele fiecăruia. Ac easta și -a depășit cu
mult atribuțiile cunoscute, acelea de a face poze și de a filma. Majoritatea dispozitivelor
combină camera cu alte aplicații, folosind informațiile oferite de aceasta pentru a putea
realiza alte opera ții. Datele multimedia pot fi cu u șurință încărcate pe internet și
partajate cu alte persoane. Interesantă este utilizarea acestei componente în domeniul
realității augmentale, camera putând fi folosită pentru a identifica un produs pe baza
codului de bare sau a unei clădiri pe baza coordo natelor geografice sau a unor etichete.
Mai important, majoritatea programatorilor din diferite domenii folosesc camera
dispozitivelor android pentru a creea algoritmi, aplicații care să recunoască obiecte din
jur, pe lângă asta au fost prezentați roboți i nteligenți car e utilizează camera pentru a
realiza distanțe dintre obiecte, pentru a purta conversații, etc.

Stroe George Victor Despre Android
Problema auto nomiei dispozitivelor Android a fost tot timpul una dintre cele mai
discutate. Toți producătorii de telefonie mobilă concurează pentr u a creea un dispozitiv
mobil cu o autonomie cât mai mare, care să ofere un timp de încărcare cât mai mic. În
ultimii ani au apărut dispozitive care se încarcă prin wireless, deci încărcarea clasică
prin cablu va fi depășită, urmând ca într -un deceniu sau două să apară tot felul de
dispozitive electrice încărcabile wireless.
Tastatura telefonului mobil a suferit și ea schimbări drastice, de la tastatură
tactilă sa ajuns la tastatură încorporată în tehnologia touchscreen. Aceasta se poate
adapta după poziția telefonului și poate suporta mai multe limbi, existând posibilitatea
de a le comuta rapid și de a prezice cuvintele viitoare, fără a mai fi nevoită introducerea
lor. Pe viitor se așteaptă tastaturi proiectate laser, deci tastaturile fizice vor fi î nlocuite,
în cele din urmă ș i ecranele vor deveni holograme, iar utilizarea lor se va face prin
senzori de mișcare și de poziție.
Alte componente hardware importante sunt constituite difuzorul și microfonul
telefonului. Acestea sunt foarte importante pent ru utilizarea aplicațiilor și pentru purtarea
convorbirilor. Și acestea au suferit o serie de schimbări, de la o versiune la alta, de
exemplu unele dispozitive au două sau trei microfoane, în momentul în care le
combinăm cu Androidul se poate detecta și el imina zgomotul de fundal pentru a oferi o
mai bună calitate a sunetului.
Majoritatea dispozitivelor Android oferă suport pentru USB (Universal Serial Bus)
cu ajutorul căruia telefoanele pot fi conectate la calculator sau la alte dispozitive. Prin
acesta s e poate efectua atât încărcarea bateriei, cât și accesarea memoriei externe, dar
și interne sau a consolei Linux de pe dispozitiv. În același timp, transferul de date este
mult mai rapid decât vechile metode de transfer, cum ar fi bluetooth, wireless, etc.

Stroe George Victor Despre Android

Stroe George Victor Dezvoltare de software
2.Dezvoltare de software
Cu ajutorul aplicațiilor mobile putem atinge noua generație de utilizatori, acestea
dându -le acces facil la informații esențiale pentru ei. Aplicațiile mobile pot fi integrate cu
aplicații web, putând astfel să profităm la maxim de avantajele interconectării. Aplicațiile
mobile pot fi folosite din variate motive îmreună cu aplicațiile web sau website -urile,
pentru generarea de lead -uri, pentru activități operațional e curente sau pentru creșterea
vânzărilor.
Dezvoltarea aplicațiilor mobile se realizează cu o metodologie bazată pe rezultat,
o analiză în profunzime, un design ergonomic și o dezvoltare având la bază ultimele
tehnologii în domeniu.
Aplicația mobilă Android este un soft care are scopul de a rula pe un dispozitiv cu
un sistem de operare Android. În general, sistemul Android este utilizat în cadrul
dispozitivelor mobile, aplicația Android având scopul de a funcționa pe un telefon de tip
smartphone, tabl etă cu sistem de operare Android, navigații pentru mașină, televizoare
Smart, etc.
Aplicațiile Android au o funcționalitate foarte mare, acestea pot fi dezvoltate
pentru divers e business -uri care îș i doresc să mențină la curent utilizatorii, prin
intermed iul unei platforme ușor de accesat, utilizân d telefonul mobil. Luăm ca exemp lu
realizarea unor aplicații web pentru magazine online, acestea vor integra în cadrul soft –
ului pent ru crearea aplicației web o serie de factori cum ar fi : informații de contact a le
companiei, nume firmă, adresa de contact, număr de telefon, website principal, etc. Și
oportunitatea de a achiziționa produse prin intermediul aplicației mobile, datorită
existenței unor categorii de produse, pagini de produs cu capacitatea de a adăuga în
coș produsele dorite, alegerea modalității de plată și implicit plasarea comenzii finale.
2.1.Componentele unei aplicații Android
Componentele de arhitectură Android sunt o colecție de biblioteci care ne ajută
să creă m aplicații optime, verificabile și întreținute. Se începe cu clase pentru
gestionarea ciclului de viață al componentei UI și manipularea persistenței datelor.
Avem următoarele caracteristici :

Stroe George Victor Dezvoltare de software
-gestionarea cu ușurință a ciclului de viață al aplicației. Componentele noi bazate pe
ciclul de viață, ne ajută să ne gestionăm activitățile și să fragmentăm ciclurile de viață ;
-utilizarea LiveData pentru a construi obiecte de date care modifică vizualizări atunci
când baza de date se modifică ;
-magazinul ViewModel legat de datele UI -ului nu sunt di struse de rotația aplicațiilor ;
-Room este o bibliotecă de mapare a obiectelor SQLite. Utilizarea sa este be nefică
pentru a evita codul “boilerplate” și pentru a converti cu ușurință datele tabelului SQLite
în obiecte Java. Sala oferă controale compilate ale intrucțiunilor SQLite și poate returna
observabilele RxJava și LiveData.
Există câteva blocuri de construcție necesare unei aplicații Android. Ac este
componente cuplate în mod liber sunt legate de fișierul manifest al aplicației care
conține descrierea fiecărei componente și modul în care ele interacționează. Fișierul
manifest conține, de asemenea, metadatele aplicaț iei, configurația hardware și cerințele
platformei, bibliotecile externe și permisiunile necesare.
Există următoarele componente principale ale unei aplicații Android :
-Anumite a ctivități. Se spune că ele sunt stratul de prezentare a aplicațiilor noastre.
Interfața de utilizare a aplica ției noastre se bazează pe una sau mai multe extensii ale
clasei de activitate. Folosind fragmente și vizualizări, activitățile stabilesc aspectul și
afișează rezultatul și răspund acțiunilor utilizatorilor. O activitate este implementată ca o
subclasă a a ctivității de clasă.

-O serie de s ervicii. Acești a sunt niște lucrători invizibili ai aplicației noastre. Aceste
componente rulează în backend, actualizând sursele de date și activități, declanțând
notificări și difuzând, de asemenea, intenții. De asemenea, aceștia îndeplinesc anumite
sarcini atunci când aplicațiile nu sunt active. Un serviciu poate fi folosit ca subclasă de
clasă Serviciu :

Stroe George Victor Dezvoltare de software
-Așa-numiții f urnizori de conținut. Acesta este folosit pentru a gestiona și depista datele
de aplicație, de asemenea, de obicei interacțiunea cu baza de date SQL. Aceștia sunt,
de asemenea, responsabili pentru partajarea datelor dincolo de limitele aplicațiilor.
Furnizorii de conținut ai unei anumite aplicații pot fi configurați pentru a permite accesul
altor a plicații, iar furnizorii de conținut expuși de alte aplicații pot fi, de asemenea,
configurați. Un furnizor de conținut ar trebui să fie o subclasă a clasei ContentProvider.

-Un ro l destul de important îl constituie i ntenții le. Este un cadru puternic de t ransmitere
a mesajelor inter -aplicație. Ele sunt utilizate pe scară largă pe întregul Android. Intențiile
pot fi utilizate pentru a porni și pentru a opri activitățile și serviciile, pentru a difuza
mesaje pe întregul sistem sau pentru o activitate explici tă, serviciu sau receptor sau
pentru a solicita efectuarea unei acțiuni asupra unnei anumite date.
-O gamă variată de d ifuzoare receptoare. Ele sunt cunoscute ca fiind ascultători
intențioși, deoare ce acestea permit aplicației cr eate să asculte intențiile care
îndeplinesc criteriile de potrivire specificate de noi. Receptoarele de radiodifuziune fac
ca aplicația noastră să reacționeze la orice intenție primită, făcându -le astfel perfecte
pentru a cre a aplicații bazate pe evenimente.
-Widgets. Acestea sunt componentele mici ale aplicaț iilor vizuale pe care le putem găsi
pe ecranul de start al dispozitivelor. Acestea sunt o variantă specială a receptoarelor de
difuzare care ne permit să creăm componente dinamice, interactive pentru aplicații, pe
care utilizatorii să le poată încorpora pe ecranul lor inițial.
-Notific ări. Ele sunt alertele aplicației care sunt folosite pentru a atrage atenția
utilizatorului asupra unui anumit eveniment special, fără a fura focalizarea sau a
întrerupe activitatea curentă a utilizatorului. Acestea sunt utilizate în general pentru a
atrag e atenția utilizatorului când aplicația nu este vizibilă sau activă, în special din
cadrul unui serviciu sau al unui receptor radio. Drept exeple putem lua pop -up-uri de e –
mail, pop -up Messenger, etc.

Stroe George Victor Dezvoltare de software
2.1.1.Activități
O activitate reprezintă un singur ecr an, având o interfață de utilizator la fel ca
fereastra sau cadrul găsit în Java. Activitatea Android este subclasa din clasa
ContextThemeWrapper.
Cei care au lucrat într -unul din limbajele de programare C, C++ sau Java, atunci
trebuie să fi văzut că prog ramul cr eat pornește de la funcția “principal ()”. Foarte similar,
sistemul Android își inițiază programul într -o Activitate care începe cu un apel pe
metoda onCreate () apel invers. Există o serie de metode de apel invers care inițiază o
activitate și o s ecvență de metode de apel invers care distrug o activitate, așa cum se
arată în următoarea diagramă a ciclului de activitate :

Clasa Activitate define ște următoarele evenimente de apel. Nu este nevoie să
implementăm toate metodele de retur. Cu toate acestea, este important să înțelegem

Stroe George Victor Dezvoltare de software
fiecare dintre ele și să le implementăm pe cele care ne asigură că aplicația se comportă
așa cum se așteaptă utilizator ii.
Avem următoarele apeluri pentru metode de retur :
-onCreate (). Acesta este primul apel invers și este sunat când activitatea este cr eată
pentru prima dată.
-onStart (). Acest apel invers este apelat atunci când activitatea devine vizibilă
utilizatorul ui.
-onResume (). Acesta se numeș te atunci când utilizatorul începe să interacționeze cu
aplicația.
-onPause (). Activitatea întreruptă nu primește informații de la utilizator și nu poate
executa niciun cod și nu a sunat atunci când activitatea curentă est e întreruptă și
activitatea anterioară este reluată.
-onStop (). Acest apel invers este apelat când activitatea nu mai este vizibilă.
-onDestroy (). Acest “callback” este chemat înainte ca activitatea să fie distrusă de
sistem.
-onRestart (). Acest apel de apel este apelat când activitatea se repornește după
oprirea acesteia.
Următorul exemplu ne va ajuta să parcurgem pași simpli pentru a afișa ciclul de
viață al activității pentru aplicații Android. Urmăm pașii următori pentru a modifica
aplicația Android creată în capitolul “Hello World Example” :
1. Vom folosi Android studio pentru a crea o aplicație Android și o vom denumi
“HelloWorld” sub un pachet com.example.helloworld.
2. Modificăm fișierul principal de activitate “MainActivity.java” după cum se expl ică mai
jos. Păstrăm restul fișierelor neschimbate.
3. Vom rula aplicația pentru a lansa emulatorul Android și verificăm rezultatul
modificăruilor efectuate în aplicație.

Stroe George Victor Dezvoltare de software
Avem mai jos fișierul principal de activitate modificat. Acest fișier include fiecare
dintre metodele fundamentale ale ci clului de viață. Metoda Log.d () a fost utilizată
pentru generarea de mesaje log.

O clasă de activitate încarcă toate componentele UI utilizând fișierul XML
disponibil în folderul res / layout al proiectului. Următoarele declarații încarcă
componentele UI din fișierul res / layout / activity_main.xml :

O aplicație poate avea una sau mai multe activități fără restricții. Fiecare
activitate pe car e o definim pentru aplicația cr eată trebuie declarată în fișieru l
“AndroidManifest.xml” și activitatea principală pentru aplicația cr eată trebuie declarată
în manifest cu un <intent -filter> care include acțiunea MAIN și categoria LAUNCHER
după cum urmează:

Stroe George Victor Dezvoltare de software

Dacă una dintre acțiunile noastre PRINCIPALĂ sau LAUNCHER nu este declarată
pentru una dintre activitățile noastre, atunci pictograma aplicașiei nu va apărea în lista
de aplicații din ecranul de pornire.
2.1.2.Fragmente
Un fragment este o piesă a unei activități care permite proiectarea mai modular a
activității. N u va fi greșit dacă spunem că un fragment este un fel de subactivitate.
În continuare sunt prezentate câteva aspect e importante despre fragmentare:
-un fragment are propriul aspect și propriul său comportament cu propriile apeluri de
ciclu de viață.
-putem adăuga sau elimina fragmente dintr -o activitate în timp ce activitatea este în
desfășurare.
-putem combina fragmente multiple într -o singură activitate pentru a crea o interfață UI
multiplă.
-un fragment poate fi folosit în mai multe activități.
-ciclul de viață a fragmentelor este strâns legat de ciclul de viață al activității sale gazdă,
ceea ce înseamnă că atunci când activitatea este întreruptă, toate fragmentele
disponibile în activitate vor fi de asemenea oprite.

Stroe George Victor Dezvoltare de software
-un fragment poate implementa u n comportament care nu are componentă de interfață
utilizator.
-fragmentele au fost adăugate la Android API în versiunea Honeycomb a versiunii de
Android API 11.
Putem crea fragmente prin extinderea clasei Fragment și putem introduce un
fragment în aspectul activității prin declararea fragmentului în fișierul de aspect al
activității, ca element “<fragment>”.
Înainte de introducerea fragmentelor, am avut o limitare , deoarece putem afișa o
singură activitate pe ecran într -un moment dat. Deci nu am reușit să împărțim ecranul
dispozitivului și să controlăm separat diferite părți. Dar, odată cu introducerea
fragmentului, am obținut mai multă flexibilitate și am eliminat limitarea de a avea o
singură activitate pe ecran la un moment dat. Acum putem avea o singură activitate, dar
fiecare poate cuprinde mai multe fragmente care vor avea propriul aspect, evenimente
și ciclu complet de viață.
În continuare este un exemplu ti pic pentru modul în care două module UI definite
de fragmente pot fi combinate într -o singură activitate pentru un design de tabletă, dar
separate pentru un design al receptorului.

Aplicația poate încorpora două fragmente în activitatea A, atunci când r ulează pe
un dispozitiv cu dimensiuni de tabletă. Cu toate acestea, pe un ecran cu dimensiuni de

Stroe George Victor Dezvoltare de software
telefon, nu există spațiu suficient pentru ambele fragmente, astfel încât activitatea A
include numai fragmentul pentru lista de articole și atunci când utiliz atorul selectează un
articol, începe activitatea B, care include cel de -al doilea fragment pentru citirea
articolului.
Fragmentele Android au propriul ciclu de viață, foarte asemănător unei activități
Android. Această secțiune prezintă diferite etape ale ciclului său de viață.

Iată lista metodelor pe care le putem suprascrie în clasa de fragmente:
-onAtch (). Exemplul de fragment este asociat cu o instanță de activitate. Fragmentul și
activitatea nu sunt pe deplin inițial izate. În mod obișnuit, obținem în această metodă o
referință la activitatea care utilizează fragmentul pentru a continua lucrul de inițializare.
-onCreate (). Sistemul numește această metodă la crearea fragmentului. Ar trebui să
inițializăm componente esențiale ale fragmentelor pe care dorim să le păstrăm atunci
când fragmentul este întrerupt sau oprit, apoi reluat.
-onCreateView (). Sistemul solicită acest apel invers atunci când este timpul ca
fragmentul să deseneze interfața sa pentru prima dată. Pentru a desena un UI pentru
fragmentu l nostru, trebuie să returnăm o componentă View din această metodă care
este rădăcina aspectului fragmentului nostru. Putem reveni la zero dacă fragmentul nu
oferă o interfață utilizator.

Stroe George Victor Dezvoltare de software
-onActivityCreated (). Apelul onActivityCreated () este apelat după metoda
onCreateView () atunci când activitatea de gazdă este creată. S -au creat instanțe de
activitate și fragmente, precum și ierarhia de vizualizare a activității. În acest moment,
vizualizarea poate fi accesată cu metoda findViewById (). În această meto dă putem
instanț ia obiecte care necesită un obiect Context.
-onStart (). Metoda onStart () se numește odată ce fragmentul devine vizibil.
-onResume () Fragmentul devine activ.
-onPause (). Sistemul numește această metodă ca fiind prima indicație care speci fică
faptul că utilizatorul părăsește fragmentul. Acesta este, de obicei, locul în care ar trebui
să facem orice schimbări care ar trebui să persiste dincolo de sesiunea curentă a
utilizatorului.
-onStop (). Fragmentul va fi oprin prin apelarea Stop ().
-onDestroyView (). Vizua lizarea fragmentului va fi distrusă după apelarea acestei
metode.
-onDestroy (). Este folosit pentru a face curățenia definitivă a stării fragmentului, dar nu
este garantat să fie apelat de platforma Android.
Utilizarea fragmentelor implică un număr de pași simpli pentru cr earea lor:
-mai întâi, decidem câte fragmente dorim să utilizăm într-o activitate. De exemplu, dac ă
vrem să folosim două fragmente pentru a trata modurile de peisaj și portret ale
dispozitivului.
-în continuare, pe baza numărului de fragmente, creă m clase care vor extinde clasa
“Fragment” . Aceasta are funcțiile de apel invers menționate mai sus. Putem să înlocuim
oricare dintre funcțiile bazate pe cerințele noastre.
-corespunzător fiec ărui fragment, va trebui să creă m fișiere de aspect în fișier XML.
Acestea vor avea aspect pentru framentele definite.
-în cele din urmă , modificăm fișierul de activitate pentru a defini logica reală a înlocuirii
fragmentelor pe baza cerințelor noastre.

Stroe George Victor Dezvoltare de software

2.1.3.Servicii
Un serviciu este o componentă care rulează în fundal pentru a efectua operații
de lungă durată fără a fi nevoie să interacționeze cu utilizatorul și funcționează chiar
dacă aplicația este distrusă. Un serviciu poate lua, în esență, două stări:
-a început. Un serviciu este pornit atunci când o componentă a aplicației, cum ar fi o
activitate, o pornește apelând startService (). Odată pornit, un serviciu poate rula în
fundal pe termen nelimitat, chiar dacă componenta care a pornit -o este distrusă.
-legat. Un serviciu este leg at atunci când o componentă a aplicației se leagă de el
apelând bindServi ce (). Un serviciu legat oferă o interfață client -server care permite
componentelor să interacționeze cu serviciul, să trimită cereri, să obțină rezultate și
chiar să facă acest lucru între procese cu comunicare interprocesă (IPC).
Un serviciu are metode de inversare a ciclului de viață pe care le putem
implementa pentru a monitoriza modificările în starea serviciului și putem efectua lucrul
în stadiul corespunzător. Următoarea diagra mă din stânga arată ciclul de viață atunci
când serviciul este creat cu startService (), iar diagrama din dreapta arată ciclul de viață
atunci când serviciul este creat cu blindService ():

Stroe George Victor Dezvoltare de software

Pentru a crea un serviciu, creă m o clasă Java care extinde clasa de bază a
serviciului sau una dintre subclasele sale existente. Serviciul, clasa de bază definește
diferitele metode de apel invers și cele mai importante sunt prezentate mai jos. Nu este
nevoie să implementăm toate metodele de retur. Cu toate acestea, es te important să
înțelegem fiecare dintre ele și să le implementăm pe cele care ne asigură că aplicația
se comportă așa cum se așteaptă utilizatorii.
Avem următoarele exemple de apeluri returnate:
-onStartCommand (). Sistemul numește această metodă atunci când o altă
componentă, cum ar fi o activitate, solicită pornirea serviciului, sunând la startService ().
Dacă implementăm această metodă, este responsabilitatea noastră să întrerupem
serviciul atunci când lucrăm, apelând metodele stopSelf () sau stopServi ce ().
-onBind (). Sistemul numește această metodă atunci când o altă componentă dorește
să se lege de serviciu apelând bindService (). Dacă implementăm această metodă,
trebuie să furnizăm o interfață pe care clienții o utilizează pentru a comunica cu
serviciul, returnând un obiect Ibinder. Trebuie să implementăm întotdeauna această
metodă, dar dacă nu dorim să permitem legarea, atunci ar trebui să revenim la nul.
-onUnbind (). Sistemul nummește această metodă atunci când toți clienții au deconectat
de la o anumită interfață publicată de serviciu.

Stroe George Victor Dezvoltare de software
-onRebind (). Sistemul numește această metodă atunci când noii clienți s -au conectat la
serviciu, după ce anterior au fost anunțați că toți s -au deconectat prin serviciul
onUnbind(Intent).
-onCreate (). Sistemul n umește această metodă când serviciul este creat pentru prima
dată folosind onStartCommand () sau onBind (). Acest apel este necesar pentru
efectuarea unei setări unice.
-onDestroy (). Sistemul numește această metodă atunci când serviciul nu mai este
utilizat și este distrus. Serviciul nostru ar trebui să implementeze acest lucru pentru a
curăța orice resurse, cum ar fi fire, ascultători înregistrați, receptoare, etc.
Următorul serviciu schelet demonstrează fiecare dintre metodele ciclului de viață:

2.1.4.Intenții și filtre
O intenție Android este o descriere abstractă a unei operații care trebuie
efectuată. Aceasta poate fi folosită cu startActivity pentru a lansa o activitate,
broadcastInternet pentru a o trimite la orice componente BroadcastReceiver i nteresate
și startService (Intent) sau bindService (Intent, ServiceConnection, int) pentru a
comunica cu un serviciu de fundal.
Intenția în sine, un obiect Intent, este o structură de date pasivă care deține o
descriere abstractă a unei operații care trebuie efectuată.
De exemplu, să presupunem că avem o activitate care necesită lansarea unui
client de e -mail și trimite un e -mail utilizând dispozitivul Android. În acest scop,

Stroe George Victor Dezvoltare de software
activitatea noastră va trimite o acțiune ACTION_SEND, împreună cu un selector
adecvat, la Resolverizatorul de intenții Android. Selectorul specificat oferă interfața
potrivită pentru ca utilizatorul să aleagă cum să trimită datele noastre de e -mail.

Sintaxa de mai sus este metoda de apelare startActivity pentru a începe o
activitate de e -mail și rezultatul trebuie să fie așa cum se arată mai jos:

De exemplu, presupunem că avem o activitate care trebuie să deschidă adresa
URL într -un browser web de pe dispozitivul Android. În acest scop, activitatea noastră
va trimite i ntenția ACTION_WEB_SEARCH către Resolverul de intenții Android pentru a
deschide a dresa URL dată în browserul web. Inten t Resolver analizează o listă de
activități și alege una care ar fi cea mai potrivită cu intenția noastră, în acest c az,
activitatea bro wserului web, Intent Resolver apoi trece pagina noastră în browser -ul
web și pornește Activitatea browserului Web.

Exemplul de mai sus va căuta tutorialspoint pe motorul de căutare Android și dă
rezultatul tutorialspoint în activitatea noastră.
Există mecanisme separate pentru a furniza intenții fiecărui tip de componentă,
activități, servicii și receptoare de emisie.

Stroe George Victor Dezvoltare de software
Avem următoarele exemple de metode:
-Context.startActivity (). Obiectul Intent este trecut la această metodă pentru a lansa o
nouă activ itate sau a obține o activitate existentă pentru a face ceva nou.
-Context.startService (). Obiectul Intent este trecut la această metodă pentru a iniția un
serviciu sau pentru a livra noi instrucțiuni unui serviciu în desfășurare.
-Context.sendBroadcast (). Obiectul Intent este trecut la această metodă pentru a
trimite mesajul tuturor receptoarelor de difuzare interesate.
Un obiect de intenție este un pachet de informații care este utilizat de
componenta care primește intenția, precum și de informațiile utilizate de sistemul
Android. Acesta poate conține urmatoarele componente pe baza a ceea ce comunică
sau va efectua:
-acțiune: aceasta este o parte obligatorie a obiectului Intent și este un șir care
desemnează acțiunea care trebuie efectuată sau, în cazu l intențiilor de difuzare,
acțiunea care a avut loc și este raportată. Acțiunea determină în mare măsură modul în
care restul obiectului intenționat este structurat. Clasa Intent definește un număr de
constante de acțiune care corespund diferitelor intenți i. Acțiunea într -un obiect Intent
poate fi setată de metoda setAction () și citită de getAction ().
-date: adaugă o specificație de date la un filtru de intenții. Specificația poate fi doar un
tip de date, atributul mimeType, doar un singur URI sau atât un tip de date, cât și un
URI. Un URI este specificat de atributele separate pentru fiecare parte a acestuia.
Aceste atribute care specif ică formatul adresei URL sunt op ționale, dar și dependente
reciproc. Dacă nu este specificată o schemă pentru filtrul de intenție, toate celelalte
atribute URI sunt ignorate. Dacă nu este suficientă o gazdă pentru filtru, atributul port și
toate atributele căii sunt ignorate.
Metoda setData () specifică datele doar ca URI, setType () o specifică numai ca
tip MIME, iar setDa taAndType () o specifică atât ca un URI, cât și ca tip MIME. URI -ul
este citit de getData() și tipul de getType().
Câteva exemple de perechi de acțiuni,date sunt:
-ACTION_VIEW conținut: // persoane de contact / persoane / 1. Acesta afișează
informații des pre persoana al cărei identificator este “1”.

Stroe George Victor Dezvoltare de software
-Conținutul ACTION_DIAL: // contacte / persoane / 1. Afișează dialerul telefonului cu
persoana completă.
-ACTION_VIEW tel: 123. Afișează dialerul telefonului cu numărul dat completat.
-ACTION_DIAL tel: 123. Afi șează dialerul telefonului cu numărul dat completat.
-ACTION EDIT conținut: // contacte / persoane / 1. Editează informații despre persoana
al cărei identificator este “1”.
-ACTION_VIEW conținut: // contacte / persoane /. Afișează o listă de persoane pe ca re
utilizatorul le poate naviga.
-ACTION_SET_WALLPAPER. Afișează setările pentru setările imaginii de fundal.
-Action_SYNC. Ea va fi sincronă cu datele, valoarea constantă este
android.intent.action.SYNC.
-ACTION_SYSTEM_TUTORIAL. Acesta va porni tutorialul definit de platformă, tutorialul
implicit sau tutorialul de pornire.
-ACTIO N_TIMEZONE_CHANGED. Acționează atunci când fusul orar sa schimbat.
-ACTION_UNINSTALL_PACKAGE. Acesta este folosit pentru a rula programul de
dezinstalare implicit.
Caregoria este o parte opțională a obiectului Intent și este un șir care conține
informații suplimentare despre tipul de componentă care ar trebui să se ocupe de
intenție. Metoda addCategory () plasează o categorie într -un obiect Intent,
removeCategory () șterge o catego rie adăugată anterior, iar getCategories () primește
setul cu toate categoriile aflate în prezent în obiect.
Anumite “Steaguri” fac parte opțional din obiectul Intent și instruiesc sistemul
Android cum să lanseze o activitate și cum să o trateze după lans are.
Avem următoarele exemple de steaguri:
-FLAG_ACTIVITY_CLEAR_TASK. Dacă este setat într -un Intent transferat la
Context.startActivity (), acest steag va cauza ca orice activitate existentă care ar fi
asociată cu activitatea să fie eliminată înainte de începerea activității. Adică activitatea

Stroe George Victor Dezvoltare de software
devine noua rădăcină a unei sarcini altfel goale și toate activitățile vechi sunt terminate.
Acest lucru poate fi utilizat numai împreună cu FLAG_ACTIVITY_NEW_TASK.
-FLAG_ACTIVITY_CLEAR_TOP. Dacă este setat și activ itatea lansată este deja
executată în sarcina curentă, atunci în loc să lanseze o nouă instanță a acelei activități,
toate celelalte activități din partea de sus a acesteia vor fi închise și acest Intent va fi
livrat către activitatea veche ca o nouă inten ție.
-FLAG_ACTIVITY_NEW_TASK. Acest steag este, în general, utilizat de activități care
dorește să prezinte un comportament de tip “lansator” , oferă utilizatorului o listă de
lucruri separate care pot fi realizate, care astfel se desfășoară complet indepen dent de
activitatea care le lansează.
Numele componentei este reprezentat de un câmp opțional este un obiect
android ComponentName reprezentând fie o clasă de activitate, de serviciu sau de
difuzor. Dacă este setat, obiectul Intent este livrat unei instan țe a clasei desemnate,
astfel Android folosește alte informații în obiectul Intent pentru a localiza o țintă
adecvată. Numele componentei este setat de setComponent (), setClass () sau
setClassName () și citit de getComponent ().
Există două tipuri de int enții:

Explicarea intenției explicite va fi conectată la lumea internă a aplicației,
presupunem că dacă dorim să conectăm o activitate la o altă activitate, putem face
acest citat prin intenție explicită, sub imagine conectând prima activitate la cea de-a
doua activitate, făcând click pe buton.

Stroe George Victor Dezvoltare de software

Aceste intenții desemnează componenta țintă după numele său și sunt utilizate
în mod obișnuit pentru mesajele interne ale aplicației, cum ar fi o activitate care
pornește un serviciu subordonat sau care lanse ază o activitate soră.

Implicațiile intenționate nu denumesc o țintă, iar câmpul pentru numele
componentei este lăsat necompletat. Intențiile intenționate sunt adesea folosite pentru a
activa componentele din alte aplicații.

Codul anterior va da următ oarele rezultate:

Stroe George Victor Dezvoltare de software

Componenta țintă care primește intenția poate folosi metoda getExtras () pentru
a obține datele suplimentare trimise de către componenta sursă.

2.1.5.Furnizori de conținut
O componentă furnizor de conținut oferă date la cerere unei alte aplicații,altor
persoane. Aceste cereri sunt tratate de metodele din clasa ContentResolver. Un
furnizor de conținut poate folosi moduri diferite de stocare a datelor și datele pot fi
stocate într -o bază de date, în fișiere sau chiar într -o rețea.

Stroe George Victor Dezvoltare de software

Uneori este necesară partajarea datelor între aplicații. Acesta este locul unde
furnizorii de conținut devin foarte utili.
Furnizorii de conținut ne permit să centralizăm conținutul într -un singur loc și să
avem acces la multe aplicații diferite, după cum este necesar. Un furnizor de conținut se
comportă foarte mult ca o bază de date unde putem interoga, edita conținutul acestuia,
adăuga sau șterge conținut utilizând metodele insert (), update (), delete () și query (). În
majoritatea cazurilor, aceste dat e sunt stocate într -o bază de date SQlite.
Un furnizor de conținut este implementat ca o subclasă a clasei ContentProvider
și trebuie să implementeze un set standard de API -uri care să permită altor aplicații să
efectueze tranzacții.

Pentru a interoga un furnizor de conținut, specificăm șirul de interogare sub
forma unui URI care are următorul format:

Detaliile diferitelor părți ale URI:
-prefix. Aceasta este întotdeauna setată la conținut.

Stroe George Victor Dezvoltare de software
-autoritate. Aceasta specifică numele furnizorului de conținut, de exemplu, contacte,
browser -ul, etc. Pentru furnizorii de conținut terță parte, acest lucru ar putea fi numele
complet calificat, cum ar fi com.tutorialspoint.statusprovider.
-data_type. Aceasta indică tipul de date furnizat de acest furnizor. De exemplu, dacă
primim toate persoanele de contact de la furnizorul de conținut de contacte, atunci calea
de date ar fi “persoane” și URI ar arăta ca acest conținut: // personae de contact /
persoane.
-id. Aceasta specifică înregistrarea specifică solicit ată. De exemplu, dacă căutați
numărul de contact 5 din furnizorul de conținut pentru contacte, atunci URI ar arăta ca
acest conținut: // contacts / people / 5.
Pentru a crea propriul furnizor de conținut trebuie respectați următorii pași:
-Mai întâi trebu ie să creă m o clasă de furnizori de conținut care să extindă
ContentProvidervaseclass.
-În al doilea rând, trebuie să definim adresa URI a furnizorului de conținut care va fi
utilizată pentru a accesa conținutul.
-În continuare, va trebui să creă m o bază d e date proprie pentru a păstra conținutul. De
obicei, Android utilizează o bază de date sSQLite și un cadru pentru a suprascrie
metoda onCreate () care va folosi metoda SQLite Open Helper pentru a crea sau a
deschide baza de date a furnizorului. Când aplic ația noastră este lansată, handle -ul
onCreate () al fiecărui furnizor de conținut este apelat pe firul principal al aplicației.
-Apoi, va trebui să implementăm interogările furnizorului de conținut pentru a efectua
diferite operațiuni specifice bazei de da te.
-În cele din urmă, înregistrăm furnizorul de conținut în fișierul de activitate utilizând
eticheta <provider>.
Iată lista metodelor pe care trebuie să le înlocuim în clasa Furnizor de conținut
pentru a avea funcția Furnizorul de conținut:
-onCreate (). Această metodă se numește când furnizorul este pornit.
-query (). Această metodă primește o solicitare de la un client. Rezultatul este returnat
ca obiect Cursor.

Stroe George Victor Dezvoltare de software
-insert (). Această metodă introduce o nouă înregistrare în furnizorul de conținut.
-delete (). Această metodă șterge o înregistrare existentă de la furnizorul de conținut.
-update (). Această metodă actualizează o înregistrare existentă de la furnizorul de
conținut.
getType (). Această metodă returnează tipul MIME al datelor la URI -ul dat.

Ca exemplu pentru a cr ea propriul contentProvider, trebuie să urmăm următorii
pași, care sunt asemănători cu ceea ce am urmat în timp ce cr eam Hello World
Example:
-Vom folosi Android StudioIDE pentru a crea o aplicație Android și o numim ca aplicația
mea sub un pachet com.example.MyApplication, cu activitate goală.
-Modificăm fișierul principal de activitate MainActivity.java pentru a adăuga două
metode noi onClickAddName () și onClickRetrieveStudents ().
-Creă m un nou fișier java numit StudentsProvider. java sub pachetul
com.example.MyApplication pentru a defini furnizorul nostru real și metodele asociate
acestuia.
-Ne înregistrăm furnizorul de conținut în fișierul AndroidManifest.xml utilizând eticheta
<provider … />.

Stroe George Victor Dezvoltare de software
-Modificăm conținutul implicit al fi șierului res / layout / activity_main.xml pentru a include
un mic GUI pentru a adăuga înregistrările studenților.
-Nu este nevoie să schimbăm șirul , string.xml.Andoid va avea grijă de fișierul string.xml.
-Rulăm aplicația pentru a lansa emilatorul Android și verificăm rezultatul modificărilor
efectuate în aplicație.
2.1.6.Receptoare de emisie
Receptoarele de emisie răspund simplu la mesajele difuzate de la alte aplicații
sau de la sistem în sine. Aceste mesaje sunt numite evenimente sau intenții. De
exemplu, aplicațiile pot, de asemenea, să inițieze emisiuni pentru a p ermite altor
aplicații să afle dac ă unele date au fost descărcate pe dispozitiv și sunt disponibile
pentru a le utiliza, deci acesta este un receptor care va intercepta această comunicar e
și va iniția acțiuni corespunzătoare.
Există următorii doi pași importanți pentru a face lucrările BroadcastReceiver
pentru intențiile transmise de sistem:
-Crearea receptorului de difuzare;
-Înregistrarea receptorului de transmisie;
Există un pas supl imentar în cazul în care intenționăm să implementăm intențiile
persona lizate, atunci va trebui să creă m și să difuzăm aceste intenții.
Un receptor difuzat este implementat ca o subclasă a clasei BroadcastReceiver
și suprascrie metoda onReceive (), în care fiecare mesaj este primit ca parametru
Obiect intenționat.

O aplicație ascultă pentru anumite intenții de difuzare prin înregistrarea unui
receptor transmis în fișierul AndroidManifest.xml. Luăm în considerare că vom înregistra

Stroe George Victor Dezvoltare de software
MyReceiver pentru ev eniment generat de sistem ACTION_BOOT_COMPLETED care
este declanșat de sistem odată ce sistemul Android a finalizat procesul de încărcare.

Acum, ori de câte ori dispozitivul nostru Android devine încărcat, acesta va fi
interceptat de către BroadcastReceiver MyReceiver și logica implementată înăuntru
onReceive () va fi executată.
Există mai multe evenimente generate de sistem, definite drept câmpuri s tatice
finale în clasa Intent. Iată câteva dintre evenimentele, stările importante ale siste mului:
-android.intent.action.BATTERY_CHANGED. Descoperire emisă care conține starea de
încărcare, nivelul și alte informații despre baterie.
-android.intent.action.BATTERY_LOW. Indică starea redusă a bateriei dispozitivului.
-android.intent.action.BATTERY _OKAY. Indică faptul că acumulatorul este în regulă
după ce a fost scăzut.
-android.intent.action.BOOT_COMPLETED. Aceasta este emisă o singură dată, după
ce sistemul sa terminat de încărcat.
-android.intent.action.BUG_REPORT. Afișează activitatea de raport are a unei erori.
-android.intent.action.CALL. Efectuează un apel către cineva specificat de date.

Stroe George Victor Dezvoltare de software
-android.intent.action.CALL_BUTTON. Utilizatorul a apăsat butonul “apel” pentru a
merge la dialer sau alte interfețe utile corespunzătoare pentru a efectua u n apel.
-android.intent.action.DATE_CHANGED. Data sa schimbat.
-android.intent.action.REBOOT. Repornirea dispozitivului.
Dacă dorim ca aplicația să genereze și să trimită intenții persona lizate, atunci va
trebui să creă m și să trimitem aceste intenții utilizând metoda sendBroadcast () din
cadrul cl asei de activitate. Dacă utiliză m metoda sendStickyBroadcast (Intent), intenția
este lipicioasă, adică intenția pe care o trimitem rămâne în jur după terminarea emisiei.

Acest intent com.tutorialspoint.CUST OM_INTENT poate fi, de asemenea,
înregistrat în mod similar cu intenția generată de sistem regsitered.
Drept exemplu pentru a crea BroadcastReceiver pentru a intercepta intenția
personalizată. Odată ce ne familializăm cu intenția personalizată, atunci put em
programa aplicația dorită pentru a intercepta intențiile generate de sistem. Deci, să
parcurgem următorii pași pentru a modi fica aplicația Android cre ată în capitolul Hello
World Example:
-Vom folosi Android Studio pentru a crea o aplicație Android și o numim “My under” cu
pachetul com.example.tutorialspoint7.myapplication așa cum este explicat în capitolul
Hello World Example.
-Modificăm fișierul principal de activitate MainActivity.java p entru a adăuga metoda
broadcastIntent ().
-Creă m un nou fișier java numit MyReceiver.java sub pachetul
com.example.tutorialspoint7.myapplication pentru a defini un BroadcastReceiver.
-O aplicație poate gestiona una sau mai multe intenții personalizate și d e sistem fără
restricții. Fiecare intenție pe care dorim să o interceptăm trebuie înregistrată în fișierul
AndroidManifest.xml utilizând eticheta <receiver … />.

Stroe George Victor Dezvoltare de software
-Modificăm conținutul implicit al fișierului res / layout / activity_main.xml pentru a include
un buton pentru a transmite intenția.
-Nu este nevoie să modificăm fișierul șir, Android Studio o să se ocupe de fișierul
string.xml.
-Rulăm aplicația pentru a lansa emulatorul Android și verificăm rezultatul modificărilor
efectuate în aplicație.
2.1.7.UI Layouts
Blocul de bază pentru interfața cu utilizatorul este un obiect View care este creat
din clasa View, ocupă zonă dreptunghiulară pe ecran și este responsabil pentru desen
și manipulare de evenimente. Vizualizarea este clasa de bază pentru widget -uri, care
sunt folosite pentru a crea componente interactive UI, cum ar fi butoane, câmpuri de
text etc.

ViewGroup este o subclasă de vedere și oferă containerul invizibil, care deține
alte puncte de vedere sau ale ViewGroups și definesc propriet ățile lor de aspect.
La nivelul al treilea avem layout -uri diferite care sunt subclase ale clasei
ViewGroup și un aspect tipic definește structura vizuală pentru o interfață utilizator
Android și poate fi creat fie la ora de rulare folosind obiecte View / ViewGroup, fie putem

Stroe George Victor Dezvoltare de software
să declarăm aspectul folosind fișierul XML principal main_layout.xml care este localizat
în folderul res / layout al proiectului.
Pentru crearea unui GUI bazat pe layouts definite în fișierul XML. Un aspect
poate conține orice tip d e widget -uri, cum ar fi butoane, etichete, casete de text și așa
mai departe. Următorul este un exemplu de fișier XML care are LinearLayout:

Odată ce am creat aspectul, putem încărca resursa de aspect din codul aplicației
create, în implementarea callba ckului Activity.onCreate (), după cum avem:

Există un număr de șayout -uri furnizate de Android, pe care le vom folosi în
aproape toate aplicațiile Android pentru a le oferi o viziune, un aspect diferit:
-aspect liniar. LinearLayout este un grup de vizualizare care aliniază toși copiii într -o
singură direcție, vertical sau orizontal.
-aspectul relativ. RelativLayout este un grup de vizualizare care afișează vederile
copilului în poziții relative.

Stroe George Victor Dezvoltare de software
-aspect tabelar. TableLayout este o vizualizare care g rupează vizualizările în rânduri și
coloane.
-aspect absolut. AbsoluteLayout ne permite să specificăm locația exactă a copiilor.
-aspect cadru. FrameLayout este un loc de substituire pe ecran pe care îl pu tem utiliza
pentru a afișa o singură vizualizare.
-vizualizare listă. ListView este un grup de vizualizare care afișează o listă de elemente
scrollabile.
-vizualizare grilă. GrilView este un grup de vizualizare care afișează elemente într -o
rețea glisantă bidimensională.
Fiecare aspect are un set de atrib ute care definesc proprietățile vizuale ale acelui
aspect. Există puține atribute comune între toate planșele și sunt alte atribute care sunt
specifice acelui aspect. Următoarele sunt atribute comune și vor fi aplicate la toate
planurile:
-Android: id. Ace sta este ID -ul care identifică în mod unic viziunea.
-Android: layout_width. Aceasta este lățimea layout -ului.
-Android: layout_height. Aceasta este înălțimea aspectului.
-Android: layout_marginTop. Aceasta este spațiul suplimentar din partea superioară a
aspectului.
-Android: layout_marginBottom. Acesta este spațiul suplimentar din partea de jos a
planului.
-Android: layout_marginLeft. Acesta este spațiul suplimentar din partea stângă a
aspectului.
-Android: layout_marginRight. Acesta este spațiul suplimen tar din partea dreaptă a
aspectului.
-Android: layout_gravity. Aceasta specifică modul în care pozițiile copilului sunt
poziționate.
-Android: layout_weight. Aceasta specifică cât spațiu suplimentar din structură ar trebui
sp fie alocat vizualizării.

Stroe George Victor Dezvoltare de software
-Andr oid: layout_x. Aceasta specifică coordonatele x ale aspectului.
-Android: layout_y. Aceasta specifică coordonatul y al planului.
-Android: layout_width. Aceasta este lîțimea layout -ului.
-Android: paddingLeft. Aceasta este partea din stânga pentru umplutur ă.
-Android: paddingRight. Aceasta este partea superioară pentru umplutură.
-Android: paddingBottom. Aceasta este partea de jos pentru umplutură.
Aici, lățimea și înălțimea sunt dimensiunea aspectului, vizualizării care poate fi
specificată în termenii dp , pixeli independenți de densitate, sp, pixeli independenți în
funcție de scală, pt, punte care este 1/72 pentru un inch, px, pixeli, mm, milimetri și în
final in, inch.
Putem specifica lățimea și înălțimea cu măsurători exacte, dar, mai ales , vom
folosi una dintre aceste constante pentru a seta lățimea sau înălțimea:
-android: layout_width = wrap_content, ne permite vizualizarea dimensiunii în funcție de
dimensiunile cerute de conținutul său.
-android: layout_width = fill_parent, permite ca vizualizarea n oastră să devină la fel de
importantă ca și cea a părinților.
Atributul Gravity joacă un rol important în poziționarea obiectului de vizualizare și
poate lua unul sau mai multe din următoarele valori constante:
-sus, 0x30, împinge obiectul în partea de su s a recipientului, fără a schimba
dimensiunea acestuia.
-jos, 0x50, împinge obiectul în partea inferioară a recipientului, fără a schimba
dimensiunea acestuia.
-stânga, 0x03, a pasă obiectul în partea stângă, fără a schimba dimensiunea acestuia.
-dreapta, 0 x05, apasă obiectul în partea dreaptă, fără a schimba dimensiunea acestuia.
-centru_vertical, 0x10, așează obiectul în centrul vertical al recipientului, fără a schimba
dimensiunea acestuia.

Stroe George Victor Dezvoltare de software
-fill_vertical, 0x70, crește dimensiunea verticală a obiectuli, d acă este necesar, astfel
încât să umple complet recipientul.
-centru_orizontal, 0x01, așează obiectul în centrul orizontal al containerului, fără a
schimba dimensiunea acestuia.
-fill_orizontal,0x07, crește dimensiunea orizontală a obiectului dacă este nec esar, astfel
încât acesta să umple complet recipientul.
-centru, 0x11, plasează obiectul în centrul containerului în ambele axe verticale și
orizontale, fără a schimba dimensiunea acestuia.
-fill, 0x77, crește dimensiunea orizontală și verticală a obiectul ui, dacă este necesar,
astfel încât să umple complet recipientul.
-clip_vertical, 0x80, opțiune suplimentară care poate fi setată să aibă marginile de sus și
/ sau cele de jos ale copilului tăiate la limitele containerului. Clipul se va baza pe
gravitația verticală, o gravitație de vârf va fixa marginea inferioară, o gravitație de jos va
fixa marginea inferioară și nici una nu va modifica ambele margini.
-clip_orizontal, 0x08, opțiune suplimentară care poate fi setată să aibă merginile stânga
și / sau dreapta ale copilului tăiate în limitele containerului. Clipul se va baza pe
gravitația orizontală, o gravitație din stânga va fixa marginea dreaptă, o gravitație draptă
va fixa marginea din stânga.
-start, 0x00800003, împinge obiectul la începutul recipie ntului, fără a schimba
dimensiunea acestuia.
-sfârșit,0x00800005, împinge obiectul la capătul recipientului, fără a schimba
dimensiunea acestuia.
2.1.8.UI Control
Comenzile de intrare sunt componentele interactive din interfața de utilizator a
aplicației. Android oferă o gamă largă de controale pe care le putem utiliza în interfața
de utilizator, cum ar fi butoanele, câmpurile de text, barele de căutare, caseta de
selectare, butoanele zoom, butoanele de comutare și multe altele.

Stroe George Victor Dezvoltare de software

O vizualizare(View) repr ezintă un obiect de pe ecran cu care utilizatorul poate
interacționa, iar un ViewGroup este un obiect care deține alte obiecte View și
ViewGroup pentru a defini aspectul interfeței utilizator.
Definind aspectul într -un fișier XML care oferă o structură uș or de citit de om,
similar cu HTML. De exemplu, un aspect vertical cu o vizualizare de text si un buton
arată astfel:

Există un număr de controale UI furnizate de Android care ne permit să
construim interfața grafică pentru aplicații:
-TextView. Acest c ontrol este utilizat pentru afișarea textului către utilizator.
-EditText. Este o subclasă predefinită de TextView care include capacități de editare
bogate.
-AutoCompleteTextView. Este o vizualizare similară cu EditText, cu excepția faptului că
aceasta af ișează automat o listă de sugestii de completare în timp ce utilizatorul
introduce textul.

Stroe George Victor Dezvoltare de software
-Button. Un buton care poate fi apăsat de către utilizator pentru a efectua o acțiune.
-ImageButton. Este un AbsoluteLayout care ne permite să specificăm locația exa ctă a
copiilor săi. Aceasta arată un buton cu o imagine care poate fi apăsată de utilizator.
-CheckBox. Un comutator pornit / oprit care poate fi comutat de utilizator. Ar trebui să
utilizăm caseta de selectare când prezentăm utilizatorilor un grup de opți uni selectabile
care nu se exclud reciproc.
-ToggleButton. Un buton pornit / oprit cu un indicator de lumină.
-RadioButton. Are două stări: verificate și neconfirmate.
-RadioGroup. O grupare radio este utilizată pentru a grupa unul sau mai multe butoane
radio.
-ProgressBar. Oferă un feedback vizual despre unele activități în desfășurare, cum ar fi
atunci când efectuăm o activitate în fundal.
-Spinner. O listă derulată care permite utilizatorilor să selecteze o valoare dintr -un set.
-TimePicker. Permite uti lizatorilor să selecteze un moment al zilei, fie în modul 24 de
ore, fie în modul AM / PM.
-DatePicker. Permite utilizatorilor să selecteze o dată a zilei.
Așa cum am explicat precedent, un obiect de vizualizare poate avea un ID unic
atribuit acestuia, c are va identifica vizualizarea unică în arbore. Sintaxa pentru un ID, în
interiorul unei etichete XML este:

Pentru a crea o comandă / vizualizare / widget UI, va trebui să definim o
vizualizare / widget în fișierul de aspect și să îi atribuim un ID unic după cum avem:

Stroe George Victor Dezvoltare de software

Apoi, creăm în cele din urmă o instanță a obiectului control, o capturăm din
layout și folosim următorul cod:

Stroe George Victor Dezvoltarea unei aplicații Android
3.Dezvoltarea unei aplicații Android
Pentru a dezvolta o apllicație de la zero trebuie să avem în vedere următoarele:
1.Ideea. Înainte să începem să trecem la crearea aplicației, evident avem nevoie de o
idee despre ceea ce dorim să facem, o mică schiță. Mult mai important, dacă suntem
începători treb uie să păstrăm lucrurile cât mai simple, trebuie să ne gândim la
cunoștințele pe care le avem și ce am putea crea prin punerea lor în practică.
2.Crearea une i schițe. Cel mai bine, după cr earea unei idei de bază este important să
facem o schiță a aplicație i. Ceea ce presupune mai exact această schiță este
desenarea ecranului aplicației pe o foaie și a fiecărui buton, logo, imagini, fundal, etc.
3.Alegerea unui IDE și configurarea lui. Cea mai ușoară și cea mai utilizată modalitate
de a crea aplicații Androi d este Android Studio (IDE oficial) și Java. Pentru crearea de
jocuri există mai multe platforme, a vând template -uri deja create, c um ar fi Unity, C# ,
etc.
4.Învățarea elementelor de bază. Nu trebuie să fim experți în programare pentru a ne
pune capul la c ontribuție și pentru a crea o aplicație. Cel mai important este să învățăm
chestiile de bază, să ne familializăm cu ele, câteva concepte simple cum ar fi clase,
variabile, declarații condiționale. Revizuirea schiței și notarea ideilor de bază, ce acțiune
trebuie să facă fiecare buton, ce trebuie să introducem, etc.
5.Crearea și procurarea imaginilor. Ar trebui să știm exact materialele de care avem
nevoie. Ne vom baza pe schița procurată pentru a face rost de majoritatea materialelor.
6.Cons truirea layout -ului. Pentru crea rea unui singur ecran sau maxim două de nivel
minimalist, ar trebui să putem finaliza layout -urile de bază într -o zi. Vom crea propriul
aspect în Android Studio utilizând “designerul”.
7.Scrierea codului. Cunoscând elementele de bază și avâ nd deja aspectul aplicației,
acum putem trece la scrierea codului. Cu ajutorul schiței vom scrie acțiunile, legăturile,
tot ceea ce avem nevoie pentru funcționalitatea aplicației.
8.Depistarea de probleme. Trebuie să ne asigurăm că totul este în regulă, iar pentru a
face asta este nevoie de a testa fiecare acțiune, comandă pentru a ne asigura că
funcționează corect.

Stroe George Victor Dezvoltarea unei aplicații Android
9.Customizarea și finalizarea aplicației. Aici putem să facem ultimele retușuri de design,
putem să ne punem amprenta, cu ajutorul unui logo, unui citat, putem să ne facem
aplicația unică.
3.1.Android Studio
Android Studio este mediul oficial de dezvoltare integrat (IDE) pentru dezvoltarea
aplicațiilor Android, bazat pe IntelliJ IDEA. Pe lângă editorul puternic de cod și
instrumentele de dezvo ltare IntelliJ, Android Studio oferă chiar și mai multe caracteristici
care îmbunătățesc productivitatea atunci când construim aplicații Android, cum ar fi:
-un sistem flexibil de construcție bazat pe Gradle.
-un emulator rapid și bogat în caracteristici.
-un mediu unificat în care ne putem dezvolta pentru toate dispozitivele Android.
-Instant Run, pentru a împinge modificările în aplicația în desfășurare fără a construi un
nou APK.
-șabloane de cod și integrare GitHub pentru a ne ajuta să construim caracte ristici
comune ale aplicațiilor și să importăm coduri de probă.
-instrumente și cadre de testare extinse.
-instrumente pentru scame pentru a prinde performanța, gradul de utilizare,
compatibilitatea versiunilor și alte probleme.
-suport C++ și NDK.
-suport încorporat pentru Google Cloud Platform, facilitând integrarea serviciului Google
Cloud Messaging și a aplicației Engine.
Fiecare proiect din Android Studio conține unul sau mai multe module cu fișiere
de cod sursă și fișiere de resurse. Tipurile de module includ:
-module de aplicații Android;
-module de bibliotecă;
-modulele Google App Engine;
Structura unui proiect în Android Studio:

Stroe George Victor Dezvoltarea unei aplicații Android

În mod implicit, aplicația Andoid Studio afișează fișierele de proiect în
vizualizarea proiectului Android, după cum se arată în poza anterioară.
Această vizualizare este organizată de module pentru a oferi acces rapid la fișierele
sursă cheie ale proiectului.
Toate fișierele de construcție sunt vizibile la nivelul superior în cadrul “Gradle
Scripts”, iar fiecare mo dul de aplicație conține următoarele dosare:
-manifest: conține fișierul AndroidManifest.xml.
-java: conține fișierele de cod sursă Java, inclusive codul de testare JUnit.
-Res: conține toate resursele non -cod, cum ar fi layout -uri XML, șiruri de caractere UI și
imagini bitmap.
Structura proiectului Android pe disc diferă de această reprezentare aplatizată.
Pentru a vedea structura reală a fișierului, selectăm Project din meniul derulant Project.
De asemenea, putem personaliza vizualizarea fișierelor de p roiect pentru a ne
concentra asupra aspectelor specific e ale dezvoltării aplicației. De exemplu, selectarea
vizualizării “Probleme” din proiectul nostru afișează linkuri către fișierele sursă care

Stroe George Victor Dezvoltarea unei aplicații Android
conțin erori recunoscute de codificare și sintaxă, cum ar f i o etichetă de închidere a
elementului XML care lipsește într -un fișier de aspect.

Fereastra principală Android Studio este alcătuită din mai multe zone logice
identificate în figura următoare:

1.Bara de instrumente – ne permite să efectuăm o gamă la rgă de acțiuni, inclusiv rularea
aplicației și lansarea de instrumente Android.

Stroe George Victor Dezvoltarea unei aplicații Android
2.Bara de navigare – ne ajută să navigăm prin proiectul nostru și să deschidem fișierele
pentru editare. Aceasta oferă o imagine mai compactă a structurii vizibile în fereastra
Project.
3.Fereastra de editor – este locul în care creă m și modificăm codul. În funcție de tipul de
fișier curent, editorul se poate schimba. De exemplu, atunci când vizualizăm un fișier de
aspect, editorul afișează Editorul de Layout.
4.Bara de ferestre a instrumentului – rulează în afara ferestrei IDE și conține butoanele
care ne permit să extindem sau să restrângem ferestrele individuale ale uneltelor.
5.Fereastra de unelte – oferă acces la sarcini specifice, cum ar fi managementul de
proiect, de căutare, de control al versiunii și multe altele. Le putem extinde și le putem
restrânge.
6.Bara de stare – afișează starea proiectului nostru și IDE în sine, precum și orice
avertismente sau mesaje.
Putem organiza fereastra principală pentru a ne oferi mai mult sp ațiu pe ecran
prin a scunderea sau mutarea bărilor de instrumente și a ferestrelor de instrumente. De
asemenea, putem utiliza scurtături de la tastatură pentru a accesa majoritatea funcțiilor
IDE.
În orice moment, putem căuta codul sursă, bazele de date, a cțiunile, elementele
interfeței utilizator etc., apăsând dublu tasta Shift sau făcând clock pe lupa din colțul din
dreapta sus al ferestrei aplicației Android Studio. Acest lucru poate fi foarte util dacă, de
exemplu, încercăm să localizăm o anumită acțiun e IDE pe care am uitat să o
declanșăm.
În loc să utilizăm perspectivele prestabilite, aplicația Android Studio urmăreșste
complexul nostru și deschide automat ferestrele de instrumente relevante în timp ce
lucrăm. În mod prestabilit, cele mai utilizate fe restre de instrumente sunt fixate pe bara
de ferestre a meniului de la marginea ferestrei aplicației.
Pentru a extinde sau a restrânge o fereastră de instrument, putem face click pe
numele instrumentului în bara de ferestre a acestuia. Putem de asemenea s ă tragem,
să fixăm, să atașăm și să detașăm ferestrele de instrumente.

Stroe George Victor Dezvoltarea unei aplicații Android
Pentru a reveni la aspectul implicit al ferestrei instrumentului, trebuie să facem
click pe Fereastră ->Restaurare aspect prestabilit sau personalizăm aspectul implicit
făcând click pe Fereastră ->Păstrați aspectul curent ca implicit.
Pentru a afișa sau ascunde întreaga bară de ferestre a instrumentului, trebuie să
trecem cu mouse -ul peste pictograma ferestrei și selectăm fereastra de instrumente din
meniu.
De asemenea, putem utiliza comenzile rapide de la tastatură pentru a deschide
ferestrele de intrumente.
Tabelul următor ne prezintă comenzile rapide pentru cele mai frecvente ferestre
utilizate, împreună cu combinația de taste corespunzătoare:

Dacă dorim să ascundem toate barele de instrumente, ferestrele de instrumente
și fișierele de editor, facem click pe Vizualizate ->Introduceți modul liber de distragere.
Acest lucru permite modul Distragere liberă. Pentru a ieși din modul Distragere liberă,
facem click pe Vizualizare ->Ieșire din modul liber de distragere.
Android Studio are trei tipuri de completare a codului, pe care le putem accesa
utilizând comenzile rapide de la tastatură prezentate în tabelul următor:

Stroe George Victor Dezvoltarea unei aplicații Android

De asemenea, putem efectua acțiuni de remediere rapidă și putem afi șa acțiuni
de intenție apăsând Alt + Enter.
Browserul de coduri de probă din Android Studio ne ajută să găsim mostre de
cod de înaltă calitate, furnizate de Google, bazate pe simbolul evidențial în prezent în
proiectul nostru.
În continuare avem câteva s faturi pentru a ne ajuta să ne mutăm la utilizarea
Android Studio:
-Comutăm între fișierele accesate recent utilizând acțiunea Fișiere recente. Apăsăm
Control + E, respectiv Command + E pe un Mac, pentru a afișa acțiunea Fișiere
recente. În mod implicit, e ste selectat ultimul fișier accesat. De asemenea, putem
accesa orice fereastră de instrument prin coloana din stânga în această acțiune.
-Vizualizăm structura fișierului curent utilizând acțiunea File Structure. Activăm acțiunea
apăsând Control + F12, Comm and + F12 pe un Mac. Folosind această acțiune, putem
naviga rapid către orice parte a fișierului curent.
-Căutăm și navigăm la o anumită clasă în proiect utilizând acțiunea Navigați la clasă.
Activarea acestei acțiuni se realizează prin apăsarea Control + N, Command + O pe un
Mac. Navigăm la clasa care acceptă expresii sofisticate, inclusiv căi, linii de navigare,
potrivirea nume lui din mijloc și multe altele. Dacă o numim de două ori la rând, aceasta
ne arată rezultatele din clasele de proiect.
-Navigăm la un fișier sau un dosar utilizând acțiunea Navigare în fișier. Activăm această
acțiune în fișier apăsând Control + Shift + N, Command + Shift + O pe un Mac. Pentru a
căuta mai degrabă foldere decât fișiere, adăugăm un / la sfârșitul e xpresiei.

Stroe George Victor Dezvoltarea unei aplicații Android
-Navigăm la o metodă sau un câmp după nume utilizând acțiunea Navigare la simbol.
Activăm acțiunea Navigați la simbol prin apăsarea tastelor Control + Shift + Alt + N,
Command + Option + O pe un Mac.
-Găsim toate piesele de cod care fac referire la clasă, metodă, câmp, parametru sau
instrucțiune la poziția cursorului curent apăsând Alt + F7, Opțiune + F7 pe un Mac.
Pe măsură ce edităm, aplicația Android Studio aplică automat formate și stiluri
specificate în setările pentru stilul de cod. Putem personaliza setăril e stilului de cod prin
limbajul de programare, incluzând specificarea convențiilor pentru file și indenturi, spații,
înfășurare și linii goale. Pentru a personaliza setările stilului de cod, facem click pe
Fișier ->Setări->Editor ->Stil de cod, Studio Androi d->Preferin țe->Editor ->Stil de cod pe
un Mac.
Deși IDE aplică în mod automat formatarea pe măsură ce lucrăm, putem apela în
mod explicit acțiunea Codului reformat apăsând Control + Alt + L, Opt + Comman d + L
pe un Mac sau auto -indent ăm toate liniile apăsâ nd Control + Alt + I, Control + Opțiune +
I pe un Mac.

Android Studio suportă o varietate de sisteme de control al versiunilor VCS,
inclusiv Git, GitHub, CVS, Mercurial, Subversion și Repositories de surse Google Cloud.
După importarea aplicației în An droid Studio, utilizăm opțiunile de meniu Android
Studio VCS pentru a activa suportul VCS pentru sistemul de control al versiunii dorite, a
crea un depozit, a importa noile fișiere în controlul versiunilor și a efectua alte operații
de control al versiunil or:

Stroe George Victor Dezvoltarea unei aplicații Android
-Din meniul Android Studio VCS, facem click pe Activare integrare control versiune.
-Din meniul derulant, selectăm un sistem de control al versiunii pentru a se asocia cu
rădăcina proiectului, apoi facem click pe OK.
Meniul VCS afișează acum un număr d e opțiuni de control al versiunii bazate pe
sistemul pe care l -am selectat.
Android Studio folosește sistemul Gradle ca bază a sistemului de construcție, cu
mai multe capabilități specifice Android furnizate de pluginul Android pentru Gradle.
Acest sistem de construire rulează ca un instrument integrat din meniul Andoid Studio și
independent de linia de comandă. Putem utiliza caracteristicile sistemului de construcție
pentru a face următoarele:
-Personalizăm, configurăm și extindem procesul de construire;
-Putem crea mai multe fișiere APK pentru aplicația noastră, cu funcții diferite, utilizând
același proiect și module.
-Reutilizăm codul și resursele din cadrul surselor de surse.
Folosind flexibilitatea programului Gradle, putem realiza toate acestea fără a
modifica fișierele sursă de bază ale aplicației. Fișierele pentru crearea fișierelor Android
sunt numite build.gradle. Acestea sunt fișiere text simplu care utilizează sintaxa Groovy
pentru a seta configurarea cu elemente furnizate de pluginul Android p entru Gradle.
Fiecare proiect are un f ișier de construcție de ni vel superior pentru întregul proiect și
fișiere separate de nivel de module pentru fiecare modul. Când importăm un proiect
existent, aplicația Android Studio generează automat fișierele necesa re pentru
construire.
Sistemul de construire ne poate ajuta să creăm versiuni diferite ale aceleiași
aplicații dintr -un singur proiect. Acest lucru este util câ nd avem atât o versiune gratuită ,
cât și o versiune plătită a aplicației noastre sau dacă dorim să distribuim mai multe
fișiere APK pentru diferite configurații de dispozitive pe Google Play.
Suportul multiplu APK ne permite să creăm în mod eficient mai multe fișiere APK
bazate pe densitatea ecranului sau pe ABI. De exemplu, putem crea APK -uri sepa rate
ale unei aplicații pentru densitățile ecranului hdpi și mdpi, considerându -le în același

Stroe George Victor Dezvoltarea unei aplicații Android
timp o singură variantă și permițându -le să partajeze s etările APK, javac, dx și
ProGuard.
Reducerea resurselor în aplicația Android Studio elimină automat resur sele
neutilizate din aplicațiile și bibliotec ile noastre ambalate. De exemplu , dacă aplicația
noastră utilizează serviciile Google Play pentru a accesa funcția Google Drive și în
prezent nu utilizăm Google Sign -In, atunci reducerea resurselor poate elimina diferitele
elemente de trasabil pentru SignIn Button.
Dependențele pentru proiectul nostru sunt specificate prin nume într -un fișier
build.gradle. Gradle se ocupă de găsirea dependențelor noastre și de a le face
disponibile în construire. Avem posibilita tea să declarăm dependențele modulului ,
dependen țele binare de la distanță și dependențe binare locale din build.gradle. Fișierul
nostru Android Studio configurează proiectele pentru a utiliza în mod implicit Maven
Central Repository, această configurație fiind inclusă în fișierul de nivel superior pentru
proiect.
Android Studio ne ajută să depănăm și să îmbunătățim performanța codului
nostru, inclusiv instrumentele inline de depănare și analiza performanțelor.
Utilizând depănarea inline pentru a ne îmbun ătăți codul de acces în viziunea
depănătorului prin verificarea inline a referințelor, a expresiilor și a valorilor variabilelor.
Informațiile depănate în linie includ:
-Valorile variabilelor încorporate;
-Referirea obiectelor care fac trimitere la un obie ct selectat;
-Valorile returnării metodei;
-Valori ale tooltipului;

Stroe George Victor Dezvoltarea unei aplicații Android
Pentru a activa depănarea inline, în fereastra de depănare, facem click pe Setări
și bifăm caseta de selectare pentru Afișați valori în linie.
Android Studio oferă profilatori de performanță pentru a putea urmări cu mai
multă ușurință memoria aplicației și utilizarea CPU -ului, pentru a găsi obiecte
dezalocate, pentru a localiza scurgeri de memorie, pentru a optimiza performanța
grafică și a analiza solicitările de rețea. Dacă aplic ația noastră rulează pe un dispozitiv
sau un emulator, deschidem fila Profiler Android.
Atunci când profităm de utilizarea memoriei în Android Studio, putem iniția
simultan colectarea de gunoi și să aruncăm “Morm ântul Java ” într-un fișier format binar
HPR OF specific Android. Vizualizatorul HPROF afișează clase, instanțe ale fiecărei
clase și un arbore de referință pentru a ne ajuta să urmărim utilizarea memoriei și să
găsim scurgeri de memorie.
Putem utiliza Memory Profiler pentru a urmări alocarea memori ei și pentru a
urmări unde sunt alocate obiecte atunci când efectuăm anumite acțiuni. Cunoașterea
acestor alocări ne permite să optimizăm performanța aplicației și utilizarea memoriei,
ajustând apelurile metodice legate de acele acțiuni.
Ori de câte ori n e compilăm programul, Android Studio rulează în mod automat
configurat Lint și alte inspecții IDE pentru a ne ajuta să identificăm și să corectăm cu
ușurință probleme cu calitatea structurală a codului.
Instrumentul Lint verifică fișierele sursă ale proie ctului Android pentru posibile
erori și îmbunătățiri de optimizare pentru corectitudine, securitate, performanță, utilizare,
accesibilitate și internaționalitate.

Stroe George Victor Dezvoltarea unei aplicații Android
În plus față de cecurile Lint, Android Studio efectuează, de asemenea, inspecții
de cod In telliJ și validează adnotările pentru a eficientiza fluxul de lucru de codare.
Android Studio acceptă adnotări pentru variabile, parametri și valori returnate
pentru a ne ajuta să prindem erori, cum ar fi excepțiile de pointer nul și conflictele de tip
de resurse. SDK Manager Android folderează biblioteca Suport -Adnotări din Repositorul
de asistență Android pentru a fi utilizat cu Android Studio. Android Studio validează
adnotările configurate în timpul inspecției codului.
Când construim și difuzăm aplica ția cu Android Studio, putem vizualiza mesajele
de ieșire adb și mesajele de jurnal de dispozitiv în fereastra Logcat.
Dacă dorim să actualizăm CPU -ul, memoria și performanța rețelei, deschidem Profiler
Android, făcând click pe:
Afișați ->Instrument Windows ->Android Profiler

3.2.Fitness Gym Workout – aplicație dezvoltată pentru
Android
Această aplicație este creată cu scopul de a putea fi utilizată de către persoane
de orice vârstă, fără a întâmpina mari dificultăți. Fitness Gym Workout are un design
simplu și atractiv, având simplul scop de a avea un antrenament cât mai bun și potrivit
la sala de fitness, astfel încât să avem parte de rezultatele mult dorite.
Este greu de găsit o aplicație perfecta pentru sala de fitness, care să ne ajute cu
exerciți i bune, pentru a ne antrena corect și a ne putea dezvolta masa musculară. În
cazul în care antrenorul de fitness nu este present, în cazul în care sunt începători , cea
mai bună soluție este aceea de a utiliza o aplic ație specială, ușor de utilizat .
3.2.1.D escriere, mod de utilizare
Aplicația este rea zlizată cu scopul de a avea un mic sprijin la sala de fitness. În
ziua de astăzi, toată lumea are acces la tehnologie, iar din acest motiv telefonul mobil
nu-i lipsește nimănui, chiar și la sala de fitness. Din acest motiv, marea majoritate a
celor care merg la sală au nevoie de îndrumare, către un program benefic pentru
scopurile fiecăruia. Pornind de la gândul că antrenorul de fitness nu are timp pentru

Stroe George Victor Dezvoltarea unei aplicații Android
toată lumea și ar fi un dezavantaj să pierdem timp aștept ând să ne ajute cu un sfat sau
în legătură cu următo rul exercițiu, am decis să produc această aplicație, fiind uș or de
folosit pentru persoane de orice vârstă.
În principal, aplicația are un mod de utilizare relativ simplu. Aplicația cuprinde un
antrename nt special de 3 luni pentru o bună creștere a masei musculare într -un timp
cât mai scurt. Cele mai multe persoane trec în grabă pe la sala de fitness, cu dorința de
a termina cât mai repe și de a sta un timp cât mai mic.
Aplicația conține 3 meniuri:
-meni ul principal, din care selectăm luna curentă;
-meniul secundar, din care selectăm ziua, din săptămâna curentă;
-meniul de workout, acesta reprezentând workout -ul propriu -zis, exercițiile de urmat
pentru un rezultat cât mai bun;
Acestea sunt prezente într -un mod simplu, cu un design și culori atractive. Sunt
prezente butoane cu acțiuni specific, fiecare deschizând o nouă activitate, care deține
conținutul indicat.
Fiecare apel este realizat în fișierele de cod, respective pentru fiecare main activity,
cum ar fi MainActivity.java, Main2Activity.java, Main3Activity.java.

Stroe George Victor Dezvoltarea unei aplicații Android

3.2.2. Structura aplicației
Aplicația are o structură relativ simplă, aceasta fiind alcătuită din 3 meniuri:
MainActivity, care reprezintă meniul principal, Main2Activity, care reprezintă meniul
secundar și Main3Activity, care reprezintă fereastra de antrenament.
MainActivity, meniul principal cuprinde:
-un design s implu de utilizat;
-un background de tip ImageView:

Stroe George Victor Dezvoltarea unei aplicații Android

-trei ImageButton care deschid fiecare meniul secundar, din care putem selecta ziua de
antrenament:

-trei TextView care cuprind informațiile pentru acțiunile ImageButton corespunzătoare
fiecă ruia:

Stroe George Victor Dezvoltarea unei aplicații Android

Apelarea pentru cel de -al doilea meniu se realizează cu o acțiune de tipul
setOnClickListener, cu ajutorul ImageButton cu id -ul primaLuna.
Pentr u a realiza acest apel, avem acț iunea denumită ”action”, în care este creat un
Intent, care crează lansarea pentru activitatea următoare:

Main2Activity,meniul secundar cuprinde:

Stroe George Victor Dezvoltarea unei aplicații Android

-4 TextView, corespunzătoare fiecărei săptămâni;
-4 RelativeLayout, corespunzătoare fiecărei săptămâni;
-fiecare RelativeLayout conține câte 7 butoane corespunzătoare fiecărei zile de
antrenament. Fiecare dintre acestea deschide fereastra de lucru, workout:

MainActivity3, fereastra de workout conține:

Stroe George Victor Dezvoltarea unei aplicații Android
-o imagine de tip gif pentru reprezentarea exercițiului;
-un TextView pentru numărul de repetări necesare exercițiulu i;
-un TextView pentru informații despre numărul exercițiului current;

-un Buton, cu ajutorul căruia trecem la următorul exercițiu, astfel încât imaginea se
schimbă, dar și conținutul textelor.
-la sfârșitul exercițiilor vom reveni la Main2Activity, iar ziua curentă va fi terminată,
aceasta nu va mai putea fi accesată și va avea o vizibilitate redusă.

Stroe George Victor Dezvoltarea unei aplicații Android
3.2.3.Biblioteci Android Studio
O bibliotecă Android este structural identică cu un modul de aplicații Android.
Aceasta poate include tot ce este necesar pentru a construi o aplicație, inclusiv cod
sursă, fișiere de resurse și un manifest Android. Cu toate acestea, în loc să se
compileze într -un fișier APK care rulează pe un dispozitiv, o bibliotecă Android se
compilează într -un fișier de arhivă Android, A AR, pe care îl putem utiliza ca dependență
pentru un modul de aplicații Android.
Spre deosebire de fișierele JAR, fișierele AAR pot conține resurse Android și un fișier
manifest, care ne permite să îmbinăm în resursele partajate, cum ar fi layout -uri și
desene, în plus față de clasele și metodele Java.
Un modul de bibliotecă este util în următoarele situații:
-când construim mai multe aplicații care utilizează unele dintre aceleași componente,
cum ar fi activități, servicii sau layout -uri UI.
-când construim o aplicație care există în mai multe variante APK, cum ar fi o versiune
gratuită și plătită și avem nevoie de aceleași componente de bază în ambele.
În orice caz, pur și simplu mutăm fișierele pe care dorim să le refolvăm într -un modul de
bibliot ecă, apoi adăugăm biblioteca ca dependență pentru fiecare modul de aplicație.
Conversia unui modul de aplicație la un modul de bibliotecă, dacă avem un
modul de aplicație existent cu tot codul pe care dorim să îl refolosim, îl putem
transforma într -un mod ul de bibliotecă după cum urmează:
-Deschidem bould.gradle fișierul la nivel de modul;
-Ștergem linia pentru applicationId. Doar un modul de aplicații Android poate defini
acest lucru;
-În partea de sus a fișierului, ar trebui să avem următoarele:

Le sch imbăm la următoarele:

Stroe George Victor Dezvoltarea unei aplicații Android

Extensia fișierului pentru un fișier AAR este .aar, iar tipul artefactului ar trebui să
fie la aar. Fișierul în sine este un zip fișier care conține următoarele intrări obligatorii:
-/AndroidManifest.xml;
-/classes.jar;
-/res/;
-/R.txt;
-/public.txt;
În plus, un fișier AAR poate include una sau mai multe din următoarele intrări
opționale:
-/assets/;
-/libs/name.jar;
-/jni/abi_name/name.so, unde abi_name este una dintre ABI -urile acceptate de Android;
-/proguard.txt;
-/lint.jar;

Stroe George Victor Concluzii
Concluzii
Conform celor prezentate, sistemul de operare Android estre într -o continuă
creștere și dezvoltare atât de software, cât și de aplicații.
Fiind cel mai popular s istem de operare pentru mobil, Android a făcut o
avevărată revoluție în lumea mobilă. Într -un timp foarte scurt, peste un miliard de
dispozitive vor folosi această platformă, având în vedere că aceast număr reprezintă
circa 1/7 din populația planetei, aces t număr este cu adevărat uriaș. Peste un milion
jumătate de dispozitive Android sunt activate în fiecare zi și acest număr crește. În
momentulde față, Android este cel mai utilizat sistem de operare pentru telefoanele
mobile, având în vedere noile idei de evoluție acest sistem de operare o să rămână
foarte mult pe primul loc, fiind foarte greu de înlocuit.
Cel mai important lucru este compatibilitatea cu alte dispozitive, acest lucru
făcând posibilă crearea de noi aplicații și dezvoltarea acestora mult mai ușor. Faptul că
Android este Open Source reprezintă un mare avantaj comparativ cu celelalte
dispozitive, din simplele motive de evoluție mult mai rapidă. Este foarte simplu pentru
orice programator în Android să -și creeze noi aplicații, ceva inovator, cev a neprezentat
și în același timp diferit de tot ceea ce există pe piață. În acest fel, dezvoltarea de noi
aplicații va fi mult mai rapidă, fiecare dezvoltator având posibilitatea de a face
parteneriat cu un altul și de a fac e schimb de informații și idei. Îmainte, dezvoltatorii
trebuiau să se îngrijoreze numai despre realizarea de proiecte care funcționau cu
smartphone -uri, iar cu câțiva ani mai târziu au apărut tabletele, după care au fost
introduse dispozitive portabile, ceea ce le -a permis să creeze proi ecte special conectate
pe acele dispozitive.
Dezvoltatorii de software trebuie să -și testeze aplicațiile pe diferite dispozitive,
pentru a verifica funcționalitatea lor, pentru a repara erorile sau pentru a crea greșeli.
Este puțin probabil ca aceștia să dețină mai multe dispozitive pentru a testa o aplicație,
deci este necesar un emulator. Înainte ca Google să schimbe toate situațiile cu
îmbunătățirile lor, făcute special pentru dezvoltatori, toate instrumentele conexe au avut
probleme grave de performanț ă. Emulatoarele nu au fost excepția și a fost obișnuit să
se găsească emuatori lenți, cu probleme de bug -uri și de compatibilitate care au
întârziat procesul de testare al aplicațiilor.

Stroe George Victor Concluzii
În timpul actual, dezvoltatorii de aplicații au la dispoziție o varie tate de
documentații și de emulatoare, template -uri bine puse la punct, astfel încât munca lor să
fie cât mai ușoară și să facă posibilă crearea de noi aplicații cât mai la îndemână.
Principalul mediu de dezvoltare Android recomandat este Android Studio, a cesta având
la dispoziție îmbinarea de tehnologii, funcții, biblioteci, inițializarea unor template -uri
inițiale pentru o muncă cât mai puțină.
În final, succesul acestui sistem de operare mobil Android, se datorează unor ani
grei de muncă și de implement ări de noi teste și actualizări, unele mai bune, altele mai
puțin, dezvoltatorii ținând cont și de cerințele utilizatorilor și de crearea unei interfețe cât
mai simplă pentru a lăsa o mică portiță pentru toți începătorii care doresc să participe la
evoluți e.

Stroe Ge orge Victor Bibliografie
Bibliografie
1.https://developer.android.com/studio 19.06.2019
2. https://www.androidauthority.com/android -app-development -complete -beginners -658469/
16.06.2019
3. http://www.androiddocs.com/tools/studio/index.html 19.06.2019
4. https://developer.android.com/guide/topics/graphics 19.06.2019
5. https://github.com/googlesamples/android -architecture -components/tree/master/BasicSample
19.06.2019
6. https://www.android.com/ 19.06.2019
7. https://www.price.ro/preturi_smartphone -1477.htm 19.06.2019
8. https://developer.android.com/studio/intro 19.06.2019

Similar Posts