Sunteți pe pagina 1din 3

Test2 sub1.

Componentele de baza ale unei Aplicatii sistemului Android

Cele mai importante componente ale unei aplicatii Android sunt:

Activity(Activitate)

Fiecare ecran din program este o extensie a clasei Activity. Activităţile utilizează elemente de vizualizare (Views) pentru a forma o interfaţă grafică care afişează informaţii
şi răspunde la acţiunile utilizatorului.Services (Servicii) Componentele serviciilor rulează în fundal şi trimit date activităţilor ce permit actualizarea informaţiilor expuse şi
declanşarea de notificări atunci când un eveniment aşteptat are loc. Acestea pot rula chiar şi atunci când activităţile nu sunt active sau vizibile.

Content Providers (Furnizori de conţinut) Furnizorii de conţinut sunt utilizaţi pentru a administra şi partaja bazele de date ale aplicaţiei. Asta înseamnă că fiecare aplicaţie
poate expune date ce pot fi utilizate ulterior de alte aplicaţii.

Intents Cu ajutorul acestor resurse este posibilă difuzarea de mesaje la nivel de sistem, către o activitate sau un serviciu ţintă, manifestându-se astfel intenţia de a avea o
acţiune efectuată.

Broadcast Receivers (Consumatori de intenţii difuzate) Dacă se crează sau se înregistrează un Broadcast Receiver, aplicaţia va începe să aştepte intenţiile difuzate ce
prezintă criteriul specificat şi va răspunde la acţiunile acestora.

Widgets Componente vizuale ce pot fi adăugate pe ecranul telefonului mobil

Notifications (Notificări) Notificările sunt utilizate în scopul atenţionării utilizatorilor asupra unui eveniment aşteptat, fără ca activităţile curente să-şi piardă focalizarea
sau să fieîntrerupte.

--Ciclul de viata al unei activitati

Ciclul de viata al unei activitati descrie starea in care o activitate poate fi la un moment dat:

Running-Activitatea a fost creata (onCreate()),pornita (onStart()) si este afisata pe ecranul aparatului;in cazul in care activitatea a mai fost utilizata si aplicatia a salvat
starea accesteia(onSaveInstanceState()),activitatea este reluata din acel punct(onRestoreInstanceState() si on Resume()); in acceasta stare utilizatorul interactioneaza cu
activitatea prin intermediul interfetei dispozitivului(tastatura,touchscreen, display);

Paused-Activitatea pierde prim-planul (onPause()),deoarece o alta activitate este executata, cum ar fi o fereastra de dialog, de asemenea,in cazul, in care aparatul intra in
modul sleep, activitatea este oprita temporar;activitatea isi poate relua executia(onResume()) si este plasata inapoi in prim-plan;

Stopped-Activitatea nu mai este in uz si pentru ca este oprita(onStop()) nu este vizibila;pentru a fi reactivata (ea déjà exista),activitatea trebuie sa fie epornita(onRestart()
si onStart()) si reluata(onResume());

Destroved-Activitatea este distrusa (onDestroy()) si memoria s-a eliberat,deoarece nu mai este necesara sau sistemul are nevoie de memorie suplimentara pentru
rutinele proprii sau pentru alte activitati;deoarece managementul memoriei este un aspect important pentru sistemul de operare Linuxal dispozitivului mobil,procesul
care gazduieste o activitate intrerupta, prita sau distrusa, poate fi terminat pentru a elibera memorie pentru noi activitati;doar procesele ce gestioneaza activitati sunt
protejate;

Activitatea are mai multe stari intre care exista tranzitii clare. In ciuda faptului ca lucrurile pot arata complicat , in realitate ele sunt mult mai simple daca ne concentram
pe urmatoarele elemente:

O singura activitate poate fi in prim- plan la un moment dat;

Doar sistemul gestioneaza starile si tranzitiile unei activitati si nu programatorul(nu in mod direct, deoarece atunci cand se lanseaza o activitate noua se modifica implicit
starea activitatii curente)

Sistemul va anunta atunci cand activitatea isi schimba starea prin intermediul handler-elor(metode de forma onXXX())pentru evanimentele de tip tranzitie;programatorul
poate adauga propriul cod pentru supradefinirea acestor metode:

onCreate(Bundle)-apela; cand activitatea este creata folosind argumentul metodei de tip Bundle exista posibilitatea sa restabiliti starea activitatii,care a fost salvata intr-o
sesiune anterioara;dupa ce activitatea a fost create, va fi pornita(onStart());

onStart()-apelata in cazul in care activitatea urmeaza sa fie afisata;din acest punct , activitatea poate veni in prim plan (onResume()) sau ramane ascunsa in fundal
(onStop());

onRestoreInstanceState(Bundle)-apeleta in cazul in care activitatea este initializata cu datele dintr-o stare anterioara, ce a fost salvata; in mod implicit, sistemul
restaureaza starea interfetei cu utilizatorul(starea controalelor vizuale, pozitia cursorului,etc);

onResume()-apelata cand activitatea este vizibila iar utilizatorul poate interactiona cu aceasta;din aceasta stare ,activitatea poate fi plasata in fundal, devenind
intrerupta(onPause);

onRestart ()-apelata in cazul in care activitatea revine in prim-plan dintr-o stare oprita(stopped); dupa aceasta activitatea este pornita(onStart() din nou;

onPaused()-apelata atunci cand sistemul aduce in prim-plan o alta activitate;

activitatea curenta este mutate in fundal si mai tarziu poate fi oprita(onStop() sau repornita si afisata(onResume());

acesta este un moment bun pentru a salva datele aplicatiei intr-un mediu de stocare persistent(fisiere, baze de date)deoarece dupa aceasta faza de activitate poate fi
terminata si distrusa fara a se anunta acest lucru;
test2

onSaveInstanceState(Bundle)-apelata pentru a salva starea curenta a activitatii;in mod implicit , sistemul salveaza starea interfetei cu utilizatorul;

onStop()-apelata in cazul in care activitatea nu mai este utilizata si nu mai este vizibila deoarece o alta activitate ineractioneaza cu utilizatorul; din acest punct, activitatea
poate fi repornita(onRestart()) sau distrusa (onDestroy();

onDestroy()-apelata in cazul in care activitatea este distrusa , iar memoria sa eliberata;

acest lucru se pate intampla in cazul in care sistemul necesita mai multa memorie sau daca programatorul termina explicit activitatea apeland metoda finish() din clasa
Activity;

Deoarece tranzitiile dintre straturi sunt descrise prin apeluri catre diferite metode de tipul onXXX(),ciclul de viata al unei activitati poate fi descris de succesiunea posibila
a acestor apeluri.

--algoritm de gestionare android: De exemplu, o aplicație care trebuie să monitorizeze mesajele SMS primite ar specifica:

<manifest

xmlns:android="http://schemas.android.com/apk/res

/android"

package="com.android.app.myapp" >

<uses-permission

android:name="android.permission.RECEIVE_SMS" />

...

</manifest>

--subiect2 Clasele android in interferte grafice

În cadrul unei aplicații Android, o interfață grafică conține elemente care au capabilitatea de a afișa informații către utilizator, în diferite formate, respectiv de a interacționa
cu acesta, preluând datele necesare realizării diverselor fluxuri operaționale din cadrul aplicației. Există și o categorie specială de controale grafice, responsabile numai cu
gestiunea mecanismului de dispunere a celorlalte componente, determinând modul în care vor fi plasate în cadrul ferestrei precum și coordonatele la care vor fi poziționate.

Structura unei interfețe grafice este arborescentă. Întotdeauna, elementul rădăcină va fi un control care gestionează modul în care sunt dispuse componentele sale, în timp
ce elementele frunză sunt controale grafice propriu-zise, vizibile pe ecran, cu o funcționalitate bine delimitată. Pe toate celelalte niveluri (intermediare) din această ierarhie
se pot regăsi elemente de ambele tipuri (atât elemente grafice cât și mecanisme de dispunere a conținutului - care controlează în acest fel o secțiune din cadrul interfeței
cu utilizatorul).

Clasa android.view.View reprezintă baza pentru construirea oricărei interfețe grafice dintr-o aplicație Android. Ea definește o zonă rectangulară a dispozitivului de afișare
(ecran), majoritatea controalelor grafice și a mecanismelor de dispunere a conținutului fiind derivate din aceasta.

1. Cele mai multe elemente grafice sunt definite în pachetul android.widget, fiind implementate controale care implementează cele mai multe dintre funcționalitățile
uzuale (etichete, câmpuri text, controale pentru redarea de conținut multimediat - imagini, filme -, butoane, elemente pentru gestiunea datei calendaristice și a timpului).
Trebuie să se facă distincția între control, afișat în interfața grafică a unei activități, definit în pachetul android.widget și extensiile aplicațiilor, afișate în ecranul principal al
dispozitivului mobil, cunoscute sub denumirea de widget-uri, dar care fac parte din clasa android.appwidget.AppWidget.

2. Controalele pentru gestiunea mecanismului de dispunere a conținutului au rolul de a determina modul în care sunt afișate elementele conținute. Acestea sunt derivate
din clasa android.view.ViewGroup, definind mai multe reguli prin care se determină poziția la care vor fi plasate componentele pe care le includ.
--Mecanisme pentru construirea unei interfețe grafice

O interfață grafică poate fi construită în două moduri:

1.prin definirea elementelor componente și a modului lor de dispunere în cadrul unui fișier .xml, asociat fiecarei activități (sau fragment) în parte, situație adecvată
cazurilor în care interfața grafică este statică;

2.programatic, prin instanțierea unor obiecte de tipul elementelor componente direct în codul sursă (cu stabilirea proprietăților respective) al activității (sau
fragmentului), abordare potrivită pentru situațiile în care interfața grafică are o structură dinamică (este actualizată în funcție de unele condiții specifice identificate în
momentul execuției).

De regulă, se preferă ca interfața grafică să fie definită în cadrul unui fișier .xml pentru fiecare fereastră din cadrul aplicației Android, întrucât acesta este mult mai ușor de
întreținut, separând sarcinile ce țin de proiectare propriu-zisă de cele care țin de programare (putând fi realizate astfel de persoane diferite). Totuși, pentru situațiile în
care interfața grafică nu este cunoscută la momentul compilării sau pentru cazul în care interfața grafică trebuie modificată în funcție de anumite condiții identificate în
momentul compilării, pot fi utilizate metode programatice spre a obține o astfel de funcționalitate.
Test2
-- Dezvoltarea programatică a unei interfețe grafice

O interfață grafică poate fi definită și în codul sursă, într-un mod similar. Se creează inițial un obiect container (de tip Layout, derivat
din android.view.ViewGroup) care va cuprinde toate controalele, acesta fiind argumentul cu care va fi apelată metoda setContentView().

Pentru fiecare control vor fi specificate (manual, prin apelul metodei corespunzătoare) diferitele caracteristici, asociindu-i-se și un identificator (uzual, acesta poate fi
orice număr întreg). Pentru fiecare proprietate a unui control grafic, sunt definite programatic metodele de tip getter și setter corespunzătoare.

n situația în care unui control nu i se asociază un identificator prin apelul metodei setId(), valoarea acestui parametru va fi NO_ID, astfel încât acesta nu va mai putea fi
referit în cod (spre exemplu, pentru poziționarea elementelor interfeței grafice relativ, unele față de altele).

Ulterior, controlul va trebui asociat containerului din care face parte, prin intermediul metodei addView(), specificându-se modul în care va fi poziționat (precum și
dimensiunile sale) prin intermediul unui obiect de tip LayoutParams, specific mecanismului de dispunere respectiv.

S-ar putea să vă placă și

  • Algoritmica
    Algoritmica
    Document85 pagini
    Algoritmica
    Klaudiu
    Încă nu există evaluări
  • Intrebarea 1
    Intrebarea 1
    Document2 pagini
    Intrebarea 1
    vvx
    Încă nu există evaluări
  • Intrbarea 2
    Intrbarea 2
    Document1 pagină
    Intrbarea 2
    vvx
    Încă nu există evaluări
  • Tema 5
    Tema 5
    Document14 pagini
    Tema 5
    vvx
    Încă nu există evaluări
  • Tema 3
    Tema 3
    Document18 pagini
    Tema 3
    vvx
    Încă nu există evaluări
  • Tema 6
    Tema 6
    Document14 pagini
    Tema 6
    vvx
    Încă nu există evaluări
  • Tema 2.2
    Tema 2.2
    Document8 pagini
    Tema 2.2
    vvx
    Încă nu există evaluări
  • Tema 5
    Tema 5
    Document14 pagini
    Tema 5
    vvx
    Încă nu există evaluări
  • Intrebarea 4
    Intrebarea 4
    Document1 pagină
    Intrebarea 4
    vvx
    Încă nu există evaluări
  • Intrebarea 5
    Intrebarea 5
    Document2 pagini
    Intrebarea 5
    vvx
    Încă nu există evaluări
  • Tema 5
    Tema 5
    Document14 pagini
    Tema 5
    vvx
    Încă nu există evaluări
  • Tema 4
    Tema 4
    Document14 pagini
    Tema 4
    vvx
    Încă nu există evaluări
  • Tema 4
    Tema 4
    Document14 pagini
    Tema 4
    vvx
    Încă nu există evaluări
  • Tema 2.1
    Tema 2.1
    Document14 pagini
    Tema 2.1
    vvx
    Încă nu există evaluări
  • Tema 2.2
    Tema 2.2
    Document8 pagini
    Tema 2.2
    vvx
    Încă nu există evaluări
  • Tema 9
    Tema 9
    Document13 pagini
    Tema 9
    vvx
    Încă nu există evaluări
  • Tema 1.1
    Tema 1.1
    Document6 pagini
    Tema 1.1
    vvx
    Încă nu există evaluări
  • Countsort TALAB1
    Countsort TALAB1
    Document2 pagini
    Countsort TALAB1
    vvx
    Încă nu există evaluări
  • Tema 1.2
    Tema 1.2
    Document7 pagini
    Tema 1.2
    vvx
    Încă nu există evaluări
  • Cuvmax
    Cuvmax
    Document2 pagini
    Cuvmax
    vvx
    Încă nu există evaluări
  • Paritate PDF
    Paritate PDF
    Document1 pagină
    Paritate PDF
    vvx
    Încă nu există evaluări
  • Integrale Si Ecuatii Diferentiale PDF
    Integrale Si Ecuatii Diferentiale PDF
    Document51 pagini
    Integrale Si Ecuatii Diferentiale PDF
    vvx
    Încă nu există evaluări
  • Formular 1
    Formular 1
    Document1 pagină
    Formular 1
    vvx
    Încă nu există evaluări
  • Analiza Matematica I - Chis Codruta PDF
    Analiza Matematica I - Chis Codruta PDF
    Document101 pagini
    Analiza Matematica I - Chis Codruta PDF
    Silviu Boga
    Încă nu există evaluări
  • 08 Template
    08 Template
    Document8 pagini
    08 Template
    vvx
    Încă nu există evaluări
  • Comenzi Linux
    Comenzi Linux
    Document2 pagini
    Comenzi Linux
    vvx
    Încă nu există evaluări
  • Orar Licenta - Absolventi - 2020 2021 1
    Orar Licenta - Absolventi - 2020 2021 1
    Document3 pagini
    Orar Licenta - Absolventi - 2020 2021 1
    vvx
    Încă nu există evaluări
  • Comenzi Linux
    Comenzi Linux
    Document2 pagini
    Comenzi Linux
    vvx
    Încă nu există evaluări
  • Formular 1
    Formular 1
    Document1 pagină
    Formular 1
    vvx
    Încă nu există evaluări
  • 18.10.19 Desen
    18.10.19 Desen
    Document1 pagină
    18.10.19 Desen
    vvx
    Încă nu există evaluări