Sunteți pe pagina 1din 14

- Noiunea de Activity

Aproape toate activitile interacioneaz cu utilizatorul, astfel nct clasa de activitate se ocup
de crearea unei ferestre pentru tine n care v putei crea interfata cu setContentView (View). n
timp ce activitile sunt adesea prezentate utilizatorului ca ferestrele full-screen, ele pot fi
folosite i n alte moduri: ca ferestre plutitoare (printr-o tem cu windowIsFloating set) sau
ncorporat n interiorul unei alte activiti (folosind ActivityGroup). Exist dou metode,
aproape toate subclasele de activitate vor pune n aplicare:
onCreate (Bundle) este n cazul n care va iniializa activitatea. Cel mai important,
aici te va intreba de setContentView (int), cu care definete o resurs de aspect UI dvs. i
folosind findViewById (int) pentru a prelua widget-urile din acea interfa care avei
nevoie pentru a interaciona cu programa.
onPause () este n cazul n care va face fa cu utilizatorul lsnd activitatea
dumneavoastr. Cel mai important, modificrile fcute de ctre utilizator ar trebui, n
acest moment s se angajeze (de obicei, la ContentProvider care deine datele).
Pentru a va fi de folos Context.startActivity (), toate clasele de activitate trebuie s aib o
<activitate> - declaraie corespunztoare din AndroidManifest.xml pachetul lor.
- Activity Lifecycle
Activitile desfurate n sistem sunt gestionate ca o stiv de activitate. Cnd se ncepe o
nou activitate, acesta este plasat pe partea de sus a stivei i devine activitatea de rulare activitatea anterioar rmne ntotdeauna sub ea n stiv, i nu va veni n prim-plan din nou
pn la noile ieiri de activitate.

O activitate are, n esen, patru stri:

1. n cazul n care o activitate este n prim-planul ecranului (n partea de sus a stivei),


este activ sau ruleaz.
2. n cazul n care o activitate are focus pierdut, dar este nc vizibil (adic, o nou
activitate fr de dimensiuni normale sau transparente sa se concentreze pe partea de
sus a activitii dvs.), este ntrerupt. O activitate ntrerupt este complet n via
(menine toate informaiile de stat i membru i rmne ataat la managerul de
ferestre), dar poate fi ucis de ctre sistem n situaii extreme, memorie redus.
3. n cazul n care o activitate este complet acoperit de o alt activitate, acesta este
oprit. Ea nc mai pstreaz toate informaiile de stat i membru, cu toate acestea, ea
nu mai este vizibil pentru utilizator este att de fereastra este ascuns i ea va fi de
multe ori ucis de sistem atunci cnd este nevoie de memorie n alt parte.
4. n cazul n care o activitate este ntrerupt sau oprit, sistemul poate renuna la
activitatea din memorie, fie cerndu-i s termine sau uciderea pur i simplu procesul
1

su. Atunci cnd este afiat din nou pentru utilizator, acesta trebuie s fie complet
repornit i readus la starea sa anterioar.
Urmtoarea diagram prezint importante ci de stat ale unei activiti. Dreptunghiurile
ptrate reprezint metode de apelare invers v pot pune n aplicare pentru a efectua operaiuni
n cazul n care activitatea se mic ntre state. Cele mai colorate ovalurile sunt state majore
Activitatea poate fi n.

- Process Lifecycle
Sistemul Android ncearc s menin procesul de aplicare n jurul valorii de atta timp
ct este posibil, dar n cele din urm va trebui s eliminai procesele vechi atunci cnd memoria
ruleaz sczut. Aa cum s-a descris n activitatea durata ciclului de via, decizia cu privire la
procesul de a elimina este intim legat de starea de interaciune a utilizatorului cu ea. n
general, exist patru stri un proces poate s se bazeze n activitile pe care ruleaz n ea,
enumerate aici, n ordinea importanei. Sistemul va ucide procese mai puin importante (cele de
ultima) nainte de a recurge la uciderea unor procese mai importante (cele mai nti).
Activitatea de prim-plan (activitatea n partea de sus a ecranului, pe care utilizatorul este
n prezent care interacioneaz cu acesta) este considerat cel mai important. Procesul su va fi
ucis doar n ultim instan, n cazul n care folosete mai mult memorie dect este disponibil
pe dispozitiv. n general, n acest moment dispozitivul a ajuns la o stare de paginare de
memorie, astfel nct acest lucru este necesar pentru a menine interfaa cu utilizatorul receptiv.

O activitate vizibila (o activitate care este vizibil pentru utilizator, dar nu i n prim-plan,
cum ar fi o stnd n spatele unui dialog de prim-plan) este considerat extrem de important i nu
vor fi ucise cu excepia cazului n care este necesar pentru a menine activitatea de prim-plan
de funcionare.
O activitate de fond (o activitate care nu este vizibil pentru utilizator i a fost ntrerupt),
nu mai este critic, astfel nct sistemul poate omor n siguran procesul su de a recupera
memoria pentru alte informaii generate sau procese vizibile. n cazul n care procesul su
trebuie s fie ucis, atunci cnd utilizatorul navigheaz napoi la activitatea (fcndu-l vizibil din
nou pe ecran), metoda onCreate (Bundle) va fi numit cu savedInstanceState a furnizat anterior
n onSaveInstanceState (Bundle), astfel nct se poate reporni n aceeai stare ca utilizatorul
ultimul care a prsit.
Un proces gol este una ce gazduieste activitati sau alte componente de aplicaii (cum ar fi
clasele de servicii sau BroadcastReceiver). Acestea sunt ucii foarte repede de sistem ca
memorie devine mai redus. Din acest motiv, orice operaiune de fundal ce faci n afara unei
activiti trebuie s fie executat n contextul unei BroadcastReceiver activitii sau a
Serviciului pentru a se asigura c sistemul tie c trebuie s menin procesul n jurul valorii.
Uneori, o activitate ar putea avea nevoie s fac o operaie de funcionare lung care
exist independent de ciclul de via al activitii n sine. Un exemplu poate fi o aplicaie pentru
camer care v permite s ncrcai o imagine la un site web. ncrcarea poate dura o lung
perioad de timp, iar cererea ar trebui s permit utilizatorului s prseasc aplicaia n timp ce
se execut. Pentru a realiza acest lucru, activitatea dvs. ar trebui s nceap un Serviciu n care
are loc ncrcarea. Acest lucru permite sistemului s acorde prioritate n mod corespunztor
procesul (considernd-o s fie mai important dect alte aplicaii de baz non-vizibile) pe toat
durata ncrcrii, indiferent dac activitatea iniial este ntrerupt, oprit sau terminat.
- Structura Intent-lui
O intenie este un obiect de mesaje putei utiliza pentru a solicita o aciune dintr-o alt
component a aplicaiei. Cu toate c inteniile faciliteaz comunicarea ntre componente n mai
multe moduri, exist trei fundamentale de ntrebuinare cazuri:
Pentru a ncepe o activitate:
O activitate reprezint un singur ecran ntr-o aplicaie. Putei ncepe s o nou instan a
unei activiti prin care trece o intenie de startActivity (). Intent descrie activitatea pentru a
ncepe i poart toate datele necesare.
n cazul n care dorii s primii un rezultat din activitatea cnd se termin, numesc
startActivityForResult (). Activitatea dumneavoastr primete rezultatul ca un obiect de intenie
separat n onActivityResult () apel invers activitatea dumneavoastr. Pentru mai multe
informaii, consultai ghidul de activiti.
Pentru a porni un serviciu:
3

Un serviciu este o component care efectueaz operaiuni n fundal, fr o interfa de


utilizator. Putei iniia un serviciu pentru a efectua o operaiune de o singur dat (cum ar fi
descrcarea unui fiier) prin care trece o intenie de startService (). Intent descrie serviciul
pentru a porni i transporta toate datele necesare.
n cazul n care serviciul este proiectat cu o interfa client-server, putei lega la serviciu
dintr-o alt component prin care trece o intenie de bindService (). Pentru mai multe
informaii, consultai ghidul de servicii.
Pentru a oferi o difuzare:
O transmisie este un mesaj pe care orice aplicaie poate primi. Sistemul ofer diverse
emisiuni pentru evenimente de sistem, cum ar fi atunci cnd sistemul pornete n sus sau
dispozitivul ncepe s se ncarce. V poate oferi o transmisie la alte aplicaii prin care trece o
intenie de sendBroadcast (), sendOrderedBroadcast (), sau sendStickyBroadcast ().
- Intent Resolution (Explicit Intent / Implicit Intent)

Exist dou tipuri de intenii:


Explicit Intent specifica inteniile explicii componenta pentru a ncepe dup nume
(numele clasei complet calificat). Vei folosi de obicei o intenie explicit de a ncepe o
component n propria aplicaie, pentru c tu tii numele clasei activitii sau serviciul pe care
dorii s nceap. De exemplu, ncepe o nou activitate ca rspuns la o aciune de utilizator sau
de a ncepe un serviciu pentru a descrca un fiier n fundal.

Implicit Intent intenii nu implicite O component specific, ci s declare o aciune


general pentru a efectua, ceea ce permite o component dintr-o alt aplicaie pentru a
manipula. De exemplu, dac dorii s arate utilizatorului o locaie pe o hart, putei utiliza o
intenie implicit de a solicita ca o alt aplicaie capabil s prezinte o anumit locaie pe o
hart.

- Android Manifest
Fiecare aplicaie trebuie s aib un fiier AndroidManifest.xml (cu exact acest nume) n
directorul rdcin. Fiierul manifest ofer informaii eseniale despre aplicaia pentru sistemul
Android, pe care sistemul trebuie s aib nainte de a putea rula orice cod al aplicaiei.
Printre altele, fiierul manifest face urmtoarele:
5

nume ale pachetului Java pentru aplicaie. Numele pachetului servete ca un identificator
unic pentru aplicaie.
Acesta descrie componentele aplicaiei, care includ activitile, serviciile, Receptoare de
radiodifuziune i furnizorii de coninut care compun aplicaia. Ea numete, de asemenea clase
care pun n aplicare fiecare dintre componentele i public capacitile lor, cum ar fi mesajele
pe care le Intent pot ocupa. Aceste declaraii informeaz sistemul Android al componentelor i
condiiile n care acestea pot fi lansate.
Ea determin procesele care gzduiesc componente ale aplicaiei.
Ea declar permisiunile pe care cererea trebuie s le aib pentru a avea acces la pri
protejate ale API-ului i de a interaciona cu alte aplicaii. Ea declar, de asemenea,
permisiunile pe care alii trebuie s le aib pentru a interaciona cu componentele aplicaiei.
Aceasta enumer clasele de instrumentaie care ofer profilare i alte informaii ruleaz
aplicaii. Aceste declaraii sunt prezente n manifest numai n timp ce aplicaia este n curs de
elaborare i sunt eliminate nainte de publicarea cererii.
Ea declar nivelul minim al API Android pe care aplicaia necesit.
Acesta enumer bibliotecile care cererea trebuie s fie conectate mpotriva.
- Noiunea de Context

Windows Phone
- Noiunea de View/Interfa
Aceast clas reprezint blocul de baz pentru componentele de interfa de utilizator. O
View ocup o zon dreptunghiular de pe ecran i este responsabil pentru desen i de
manipulare eveniment. Vedere este clasa de baza pentru widget-uri, care sunt utilizate pentru a
6

crea componente UI interactive (butoane, cmpuri de text, etc.). ViewGroup subclasa este clasa
de baza pentru machete, care sunt containere invizibile care dein alte puncte de vedere (sau alte
ViewGroups) i definesc proprietile lor de aspect.
Toate punctele de vedere ntr-o fereastr sunt aranjate ntr-un singur arbore. Putei
aduga, vederi, fie de la codul sau prin specificarea unui arbore de vedere n unul sau mai multe
fiiere XML aspect. Exist mai multe subclase specializate de opinii, care acioneaz ca
element de control sau sunt capabile s afieze text, imagini, sau alte tipuri de coninut.
Odat ce ai creat un copac de opinii, exist de obicei cteva tipuri de operaiuni comune
pe care ar dori s le ndeplineasc:
Proprieti Set: de exemplu, stabilirea textului unui TextView. Proprietile disponibile i
metodele pe care le-stabilite vor varia ntre diferitele subclase de opinii. Reinei c proprietile
care sunt cunoscute n timp construi pot fi setate n fiierele cu aspect XML.
Set de focalizare: Cadrul se va ocupa de focalizare se deplaseaz ca rspuns la datele
introduse de utilizator. Pentru a fora se concentreze la o anumit vizualizare, apel requestFocus
().
Create de asculttori: Vizualizare permite clienilor s stabileasc asculttorii care vor fi
notificai atunci cnd se ntmpl ceva interesant la punctul de vedere. De exemplu, toate
punctele de vedere v va permite s setai un asculttor s fie notificat atunci cnd vedere din
ctigurile sau pierderile se concentreze. Avei posibilitatea s nregistrai un astfel de asculttor
folosind setOnFocusChangeListener (android.view.View.OnFocusChangeListener). Alte
subclase vedere ofer asculttorilor mai specializate. De exemplu, un buton expune un
asculttor de a notifica clienii atunci cnd butonul este apsat.
Setai vizibilitatea: Putei ascunde sau afia vederi folosind setVisibility (int).
- XAML (mod de utilizare / componente)
- UI Obj Events (tipuri si caracteristici)
Un asculttor eveniment este o interfa n clasa View, care conine o singur metod de
apel invers. Aceste metode vor fi numite de cadrul Android atunci cnd imaginea la care a fost
nregistrat asculttor este declanat de interaciunea utilizatorului cu elementul n interfaa de
utilizare.
Incluse n interfeele eveniment asculttor sunt urmtoarele metode de apel invers:
pe click()
De la View.OnClickListener. Aceasta se numete atunci cnd utilizatorul atinge fie
elementul (cnd este n modul tactil), sau se concentreaz asupra elementului cu navigare
tastele sau trackball i apas adecvat "Enter" sau preseaz n jos pe trackball.
7

onLongClick ()
De la View.OnLongClickListener. Aceasta se numete, atunci cnd utilizatorul fie atinge
i deine elementul (n modul tactil), sau se concentreaz asupra elementului cu navigare tastele
sau trackball i prese i deine adecvat "Enter" sau prese i deine n jos pe trackball ( pentru o
secund).
onFocusChange ()
De la View.OnFocusChangeListener. Aceasta se numete atunci cnd utilizatorul
navigheaz pe sau departe de elementul, folosind navigare tastele sau trackball.
onKey ()
De la View.OnKeyListener. Aceasta se numete atunci cnd utilizatorul este axat pe
elementul i preseaz sau elibereaz o cheie hardware de pe dispozitiv.
onTouch ()
De la View.OnTouchListener. Aceasta se numete atunci cnd utilizatorul efectueaz o
aciune calificat drept un eveniment de atingere, inclusiv o pres, o eliberare, sau orice gest
micare pe ecran (n limitele elementului).
onCreateContextMenu ()
De la View.OnCreateContextMenuListener. Aceasta se numete atunci cnd un meniu
contextual este construit (ca rezultat al unui susinut "clic lung"). A se vedea discuia cu privire
la meniuri contextuale n ghidul de dezvoltator meniuri.
Aceste metode sunt singurii locuitori ai interfeei lor respective. Pentru a defini una dintre
aceste metode i manipula evenimentele, punerea n aplicare a interfeei cuibrit n activitatea
dumneavoastr sau defini ca o clas anonim. Apoi, trece un exemplu de punere n aplicare
pentru a utiliza metoda View.set ... Asculttor (). (De exemplu, suna setOnClickListener () i sl implementarea a OnClickListener.)
- Layout i Evenimente
Un aspect definete structura vizual pentru o interfa de utilizator, cum ar fi interfaa de
utilizare pentru un widget activitate sau o aplicaie. V poate declara un aspect n dou moduri
Declare elementele UI n XML. Android ofer un vocabular XML simplu, care
corespunde vizualizrii claselor i subclaselor, cum ar fi cele pentru widget-uri i machete.
Instaniai elemente de aspect n timpul rulrii. aplicaia dumneavoastr poate crea View
i ViewGroup obiecte (i manipula proprietile lor) programatic.
Cadrul Android v ofer flexibilitatea de a utiliza una sau ambele metode de declarare i
de gestionare a UI aplicaiei. De exemplu, ai putea declara aspecte implicite ale aplicaiei dvs.
8

n XML, inclusiv elementele de pe ecran, care vor aprea n ele i proprietile lor. Ai putea
aduga apoi codul n aplicaia dumneavoastr, care ar modifica starea obiectelor de ecran,
inclusiv cele declarate n XML, n timpul rulrii.
Ar trebui s ncercai, de asemenea, instrumentul Ierarhie Viewer, pentru depanare layout
- dezvaluie valorile de proprietate de aspect, atrage wireframes cu umplutur / indicatori de
marj, i vederi complete oferite n timp ce depana pe emulator sau dispozitiv.
Instrumentul de layoutopt v permite s analizai rapid aspecte i ierarhii dvs. pentru
ineficienei sau alte probleme.
Avantajul de a UI de declarare n XML este c v permite s se separe mai bine
prezentarea cererii dumneavoastr de cod care controleaz comportamentul su. descrierile UI
sunt externe codul aplicaiei, ceea ce nseamn c putei modifica sau adapta fr a fi nevoie s
modificai codul surs i recompilai. De exemplu, putei crea machete XML pentru diferite
orientri de ecran, diferite dimensiuni ale ecranului dispozitivului, i limbi diferite. n plus,
declararea layout-ul in XML face mai uor de a vizualiza structura UI, deci este mai uor
probleme de depanare. Ca atare, acest document se concentreaz asupra nva cum s declare
aspectul lor in XML. n cazul n care suntei interesat n instantiind Vizualizai obiecte n timpul
rulrii, se refer la ViewGroup i referine Vizualizare clas.
n general, vocabularul XML pentru a declara elementele UI urmrete ndeaproape
structura i denumirea claselor i metodelor, n cazul n care nume de elemente corespund nume
de clase i nume de atribute corespund metodelor. De fapt, corespondena este adesea att de
direct nct s putei ghici ce atribut XML corespunde unei metode de clas, sau ghici ce clas
corespunde unui element XML dat. Cu toate acestea, reinei c nu toate vocabularul este
identic. n unele cazuri, exist diferene de denumire uoare. De exemplu, elementul EditText
are un atribut de text care corespunde EditText.setText ().
Evenimente: Scrierea in XML,Incarcarea in XML resurse, Atribute, Pozitie layout,
Dimensiunea, Padding i Margine, Aspecte comune
General
- Metode Asynchrone (async/await)
- Task and Threads

Threads -Atunci cnd o aplicaie ncepe componente i aplicaia nu are alte componente
care ruleaz, sistemul Android ncepe un nou proces Linux pentru aplicaia cu un singur fir de
executie. n mod implicit, toate componentele aceleiai aplicaii ruleaz n acelai proces i fir
(numit firul "principal"). n cazul n care o component de aplicaie ncepe i exist deja un
proces pentru aceast cerere (deoarece exist o alt component din cererea introductiv),
atunci componenta este pornit n cadrul acestui proces i utilizeaz acelai fir de execuie. Cu
toate acestea, putei aranja pentru diferite componente n aplicaia dumneavoastr pentru a rula
n procese separate, i putei crea fire suplimentare pentru orice proces.
Task -AsyncTask permite utilizarea corect i uoar a firului UI. Aceast clas v
permite s efectuai operaii de fond i s publice rezultatele pe firul UI, fr a fi nevoie s
manipuleze fire i / sau manipulare.

AsyncTask este proiectat pentru a fi o clas de ajutor n jurul subiectului i Handler i nu


constituie un cadru generic de filetare. AsyncTasks ar trebui s fie n mod ideal utilizat pentru
operaii scurte (cteva secunde la maximum.) Dac avei nevoie pentru a menine fire de
funcionare pentru perioade lungi de timp, este foarte recomandat s utilizai diversele API-uri
oferite de pachetul java.util.concurrent, cum ar fi Executant, ThreadPoolExecutor i
FutureTask.

O sarcin asincron este definit printr-un calcul care ruleaza pe un fir de fond i al crui
rezultat este publicat pe firul UI. O sarcin asincron este definit de 3 tipuri generice, numite
Params, progres i rezultate, i 4 etape, numite onPreExecute, doInBackground,
onProgressUpdate i onPostExecute.
- Protocolul HTTP
10

- Metodele i cmpurile prot. HTTP mai sus


Cererile formulate n protocolul HTTP se refera la informatii care se pot afla stocate n diverse baze de date, n diverse
formate, pe diverse calculatoare. Cum anume se traduc n cereri "concrete" date diferite, este o problema care
depaseste protocolul: sarcina lui este doar sa fixeze regulile care trebuie respectate de cele doua aplicatii participante
la un moment dat n comunicare pentru ca sa se poata ntelege fara nici un fel de risc de interpretare eronata a unei
cereri sau a unui raspuns.
1.5.2. Mesajele protocolului HHTP
Atunci cnd se transfera "ceva" utiliznd WWW se specifica o resursa: serverul caruia am vrea sa-i adresam cererea, ce
contine aceasta, cu ce protocol lucram. Pentru ca aceasta cerere sa ajunga la server trebuie sa trimitem un mesaj care
sa contina si resursa specificata mai sus. Mesajul va contine un si r de caractere de forma:
GET

specificare_resursa HTTP/1.1 CRLF

Forma generala a unui mesaj de cerere este conforma schemei de mai sus:
Metoda

resursa

versiune_protocol

CRLF

Versiunea de protocol trebuie specificata deoarece nu toate serverele au implementat ultima versiune sau nu toti
clientii o cunosc. Deci, pentru ca totusi un server "destept" sa se poata ntelege si cu un client mai putin dotat, sau
invers, si fara a renunta la posibilitatile introduse de versiunile (mereu mai) noi ale protocolului, trebuie sa se realizeze

11

mai nti o negociere ntre server si client, relativ la ce stie fiecare si abia apoi sa se desfasoare transferul propriu-zis
de date.

- XML/Json (metode de serializare/deserializare)


XML - n general, vocabularul XML pentru a declara elementele UI urmrete
ndeaproape structura i denumirea claselor i metodelor, n cazul n care nume de elemente
corespund nume de clase i nume de atribute corespund metodelor. De fapt, corespondena este
adesea att de direct nct s putei ghici ce atribut XML corespunde unei metode de clas, sau
ghici ce clas corespunde unui element XML dat. Cu toate acestea, reinei c nu toate
vocabularul este identic. n unele cazuri, exist diferene de denumire uoare. De exemplu,
elementul EditText are un atribut de text care corespunde EditText.setText ().
JSON

12

- notiuni generale i moduri de utilizare RegEx


O reprezentare compilat a unei expresii regulate.

O expresie regulat, specificat ca un ir de caractere, trebuie s fie mai nti compilate


ntr-o instan a acestei clase. Modelul rezultat poate fi apoi utilizat pentru a crea un obiect
Matcher care se poate potrivi secvene de caractere arbitrare n raport cu expresia regulat. Toi
statul implicat n efectuarea unui meci const n matcher, att de multe matchers pot partaja
acelai model.

O secven tipic invocare este, prin urmare,

Model p = Pattern.compile ( "a * b");


Matcher m = p.matcher ( "aaaaab");
boolean b = m.matches ();

O metod de meciuri este definit de aceast clas ca o comoditate atunci cnd o expresie
regulat este folosit doar o dat. Aceast metod compileaz o expresie i se potrivete cu o
secven de intrare mpotriva lui ntr-o singur invocare. Declaratia
13

boolean b = Pattern.matches ( "a * b", "aaaaab");

este echivalent cu cele trei declaraii de mai sus, dei pentru repetate se potrivete este
mai puin eficient, deoarece nu permite modelul compilat s fie reutilizat.
Instane din aceast clas sunt imuabile i sunt sigure pentru a fi utilizate de ctre mai
multe fire de executie concurente. Instane ale clasei Matcher nu sunt sigure pentru o astfel de
utilizare.
- HTML Parsing/xPath

14

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