Facultatea de Electronic, Telecomunica ii i Tehnologia Informa iei
Client de e-mail pe platforma Android ing.xxx Coordonator lect. univ. dr. ing. xxx Bucure ti 2013 Coninut 1 Introducere.......................................................................................................... 3 2 !ervicii de E"mail i Protocoalele !#TP$P%P ...............................................................4 21 Procesele !erverului de e"mail & #T' i #(' .......................................................4 22 )lientul de e"mail............................................................................................ 7 23 P%P vs I#'P................................................................................................. 8 2* Pro+lemele I#'P........................................................................................... 8 3 Platforma 'ndroid................................................................................................. 9 31 )om,onentele de +a-a ale unei a,licatii ,e ,latforma 'ndroid....................................9 311 'ctivitatea.'ctivit/0.................................................................................. 9 312 !ervicii .!ervices0..................................................................................... 9 313 Intentii .Intents0........................................................................................ 9 31* Ba-e de continut .)ontent Providers0.............................................................9 311 2ece,tori de evenimente ,u+lice .Brodcast2eceiver0..........................................9 313 4iget"uri.............................................................................................. 10 32 'rhitectura unei a,licatii 5n 'ndroid...................................................................10 321 'ndroid#anifest6ml............................................................................... 10 322 'ctivitati i (urata ciclului de viata .............................................................10 323 !chim+ari de configuratii.......................................................................... 11 32* )onte6t................................................................................................ 11 * Partea ,ractica & !end#ail..................................................................................... 11 *1 Proiectare & (iagrama de activitati .U#70...........................................................12 *2 'ndroid#anifest6ml..................................................................................... 13 *3 'ctivit/89elcome6ml : 'ctivit/8main6ml........................................................13 ** 4elcomePage;ava : #ain'ctivit/;ava..............................................................17 *1 2ularea a,licatiei.......................................................................................... 19 1 '+revieri i voca+ular ........................................................................................... 21 3 Bi+liografie....................................................................................................... 21 2 1. Introducere <n ,re-ent e6ista toate ,remisele studierii i de-voltarii acestui domeniu al comunicarii ,rin e"mail folosind telefoanele mo+ile care au ca sistem de o,erare ,latforma 'ndroid de-voltata de =oogle 'ceste ,remise ar fi> comunicam tot mai mult, ne dorim ca i comunicarea sa se faca sim,lu i re,ede, tot mai multi dintre noi folosim internetul ,e terminalele mo+ile, 'ndroid detine *0? din ,iata mondiala a sistemelor de o,erare ,e is,o-itivie de ti, smart,hone, 5n tim, ce com,etiorii sai detin> i%! 1@?, 4indo9s 1A?, altii 2*?, 5n conditiile 5n care 5n Euro,a i im,licit 5n 2omania utili-atorii de iPhone .i%!0 sunt mult su+ media glo+ala Boile dis,o-itive a,arute ,e ,iata de ti, ta+leta, duc la folosirea tot mai intensa a sistemului de o,erare 'ndroid i cu siguranta o gama larga de domenii ,recum Pu+licitate, #arCeting, )loud )om,uting, #edicina, Ecologie, etc, vor lua 5n calcul acest mi;loc usor i ra,id de a a;unge la utili-ator, o metoda fiind ,rin mesa;ele de ti, e"mail Un client de e"mail, sau un #ail User 'gent .#U'0 cum este denumit 5n literatura de s,ecialitate este un ,rogram & a,licatie soft9are folosita ,entru a accesa i ,entru a gestiona e"mail"urile unui utili-ator (e asemenea ,utem numi un client de e"mail i o a,licatie 9e+ care ofera gestionarea mesa;elor, i functii de com,unere i rece,tionare, dar termenul cel mai ,otrivit ,entru acest client de e"mail este 9e+mail )ei mai cunoscuti clienti de e"mail ,e ,latforma 4indo9s sau 7inu6 sunt> #icrosoft %utlooC, IB# 7otus Botes, Pegasus #ail, #o-illaDs Thunder+ird, E#ail, Evolution i ',,le IncFs #ail, iar ,e ,latforma 'ndroid sunt E"@ #ail, 'Gua #ail, =mail for 'ndroid, HahooI #ail for 'ndroid, Jotmail for 'ndroid, Profi#ail si #ail(roid !istemul de o,erare 'ndroid este +a-at ,e 7inu6 cu o interfa a de ,rogramare 5n Kava ',licatiile ,e acest sistem de o,erare re,re-inta diferite com,onente care ,ot re"folosi com,onentele altei a,licatii 'stfel se a;unge la conce,tul de LtasCM 5n 'ndroid !,re e6em,lu se ,oate declansa din a,licatia creata o alta a,licatie care este inregistrata 5n sistemul 'ndroid sa trimita mesa;e de ti, e"mail % a,licatie ,oate sa cree-e interfata i comen-ile necesare ,entru com,unerea unu mesa; de ti, e"mail i o alta a,licatie sa efectue-e trimiterea mesa;ului 3 2. Servicii de E-mail i Protocoalele SMTPP!P E"mail"ul, cel mai ,o,ular serviciu din orice retea, a revolutionat modul 5n care oameni comunica ,rin sim,litatea i vite-a Totusi, ,entru a rula ,e un calculator sau un alt dis,o-itiv .smart,hone, ta+leta0 e"mail"ul foloseste cateva a,licatii i servicii (oua e6em,le de ,rotocoale folosite la nivelul ',licatie sunt Post %ffice Protocol .P%P0 i !im,le #ail Transfer Protocol .!#TP0 )a i 5n ca-ul ,rotocolului JTTP, aceste ,rotocoale definesc ,rocese client"server )and cineva scrie un mesa; e"mail, 5n mod normal foloseste o a,licatie numita #ail User 'gent .#U'0 sau un client de e"mail #U' ,ermite mesa;elor sa fie trimise i ,lasea-a mesa;ele ,rimite de clienti 5n cutia ,ostala electronica, acestea fiind doua ,rocese distincte Petru a rece,tiona mesa;e e"mail de la un server de e"mail, clientul de e"mail ,oate folosi P%P 7a trimiterea de mesa;e de ti, e"mail de la client la de la server se foloseste un format al mesa;ului i comen-i definite de ,rotocolul !#TP <n mod normal un client de e" mail ofera functionalitatea am+elor ,rotocoale intr"o singura a,licatie "ig. 1 Client de e-mail # Mail $%er Agent &M$A' 2.1. Proce%ele Serverului de e-mail # MTA i M(A !erverul de e"mail o,erea-a cu doua ,rocese se,arate> - #ail Transfer 'gent .#T'0 - #ail (eliver/ 'gent .#('0 Procesul reali-at de #ail Transfer 'gent .#T'0 ,resu,une inaintarea e"mail"urilor (u,a cum ,utem vedea 5n figura, #T' ,rimeste mesa;e de la #U' sau de la un alt #T' sau un alt server de e"mail Pe +a-a header"ului mesa;ului, acesta determina cum tre+uie sa fie inaintat mesa;ul ,entu a a;unge la destinatie (aca mesa;ul este destinat unui utili-ator a carui casuta de e"mail este ,e serverul local, mesa;ul de e"mail este transmis catre #(' (aca 4 mesa;ul este ,entru un alt utili-ator care nu este 5n serverul local, #T' rutea-a e"mail"ull catre #T'"ul din a,ro,ierea serverului clientului "ig. 2 Server de e-mail # MTA In figura urmatoare vedem cum #ail (eliver/ 'gent .#('0 acce,ta un mesa; de e" mail de la un #ail Transfer 'gent .#T'0 i efectuea-a livrarea ,ro,riu"-isa a mesa;ului #(' rece,tionea-a mesa;ul de la #T' i 5l ,une 5n casuta ,ostala a utili-atorului #(' ,oate re-olve i alte ,ro+leme de rece,tionare ,recum scanare de virusi si filtrare a mesa;elor s,am )ele mai multe comunicatii ,rin mesa;e de ti, e"mail folosesc a,licatii #U', #T' i #(' Totusi e6ista i alte alternative ,entru trimiterea de mesa;e e"mail Un client ,oate fi conectat la un sistem de e"mail ,recum I#B 7otus Botes, Bovell =roou,9ise sau #icrosoft E6change 'ceste sistem de cele mai multe ori au ,ro,riul format de mesa;e de e"mail i clienti lor comunica cu serverul de e"mail folosind un ,rotocol ,ro,riu Pentru a ,utea ,rimi sau trimite mesa;e ,rin Internet, acestea detin un e"mail gate9a/ care face conversiile i re"formatarile necesare % alta alternativa ,entru calculatoarele care nu au #U', acestea se ,ot conecta la un serviciu.client0 de e"mail ,rintr"un +ro9ser 9e+ ,entru a rece,tiona i trimite mesa;e Unele calculatoare ,ot sa rule-e ,ro,riul #T' i sa gestione-e mesa;ele de e"mail dintr"o intreaga retea !,re e6em,lu, daca doua ,ersoane care lucrea-a ,entru aceeasi com,anie isi trimit intre ei mesa;e de e"mail folosind un ,rotocol ,ro,rietar, mesa;ele lor vor ramane 5n sistemul de e" mail al com,aniei, fara sa ias 5n re eaua ,ro,rie 5 "ig. ) Server de e-mail # M(A #esa;ele de e"mail ,oate folosi ,rotocoalele P%P i !#TP P%P i P%P3 .Post %ffice Protocol, versiunea 30 sunt ,rotocoale interne de livrare a e"mail"ului i de cele mai multe ori au arhitectura client$server Ele livrea-a e"mail"ul de la server la client .#U'0 #(' asculta aste,tand ca un client sa se conecte-e la server %data o cone6iunea este sta+ilita, serverul ,oate livra mesa;ul de e"mail clientului !im,le #ail Transfer Protocol .!#TP0 ,e de alta ,arte guvernea-a transferul e6tern de e"mail"uri ,recum trimiterea de la client la serverul de e"mail .#('0, sau trans,ortul de mesa;e e"mail intre serverele de e"mail !#TP ,ermite ca e"mail"uri sa fie trans,ortate ,rin diferite retele, intre diferite ti,uri de servere i a,licatii soft9are ,entru clienti i face ,osi+ila trimiterea de mesa;e ,rin internet Formatul mesa;elor care folosesc ,rotocolul !#TP este unul rigid i foloseste un set de comen-i si ras,unsuri 'ceste comen-i su,orta ,roceduri folosite 5n !#TP ,recum initiarea sesiunii, trimiterea de e"mail"uri, inaintarea .for9ard0 mesa;elor, verificarea numelor casutelor ,ostale i deschiderea sau inchiderea transferurilor )ateva dintre comen-ile s,ecifice ,rotocolului !#TP sunt> - JE7% & identifica ,rocesele clientului !#TP catre serverul !#TP - EJ7% & o noua versiune de JE7% care include e6tinderea serviciilor - #'I7 F2%# & identifica de la cine este mesa;ul - 2)PT T% & identifica cui i se adresea-a mesa;ul - ('T' & identifica cor,ul mesa;ului 6 "ig. * SMTP i P!P 2.2. Clientul de e-mail #ail User 'gent sau clientul de e"mail nu face altceva decat sa accese-e un ,ort ,e serverul de e"mail ,entru a accesa casuta de e"mail de ,e server,folosind unul din ,rotocoalele I#'P sau P%P !erverul de e"mail contine ,e langa serverul !#TP i un server P%P3 sau unul I#'P, am+ele folosite ,entru rece,tia de mesage !#TP asculta la ,ortul 21, P%P3 la ,ortul 110 i I#'P la ,ortul 1*3, iar 5n ,re-ent fiecaruia dintre aceste ,rotocoale ii mai sunt asignate i alte ,orturi )and trimitem i ,rimim un e"mail clientul de e"mail interactionea-a cu serverul !#TP local ,entru a efectua e6,editia !erverul !#TP accesea-a serverul P%P3 sau I#'P al destinatarului, du,a ce a aflat adresa acestuia de la un server (B! care a facut translatia din numele aflat du,a semnul N, s,re e6 LN/ahoocomM cu adresa serverului care se ocu,a de rece,tionarea mesa;elor la acea adresa !,re e6 ,entru serverul Lima,mail/ahoocomM avem adresa L212O2111223M, iar ,entru L,o,mail/ahoocomM avem adresa L1OO1213@23*M 7 2.). P!P v% IMAP (iferenta ma+ora dintre P!P) %i IMAP con%ta in faptul ca, in ca-ul utili-arii P!P) mesa;ele se descarca ,e calculator si nu vor mai re-ida ,e server, eli+erand s,atiul iar in ca-ul utili-arii IMAP mesa;ele vor fi citite direct de ,e server, ,utand fi sterse in orice moment P!P) IMAP Avanta+e P!P), " mesa;ele sunt descarcate local, si ,ot fi citite offline .util in ca-ul unei cone6iuni dial"u,0 " este foarte ,o,ular, e6ista o sumedenie de ,rograme ce ,ot fi utili-ate cu P%P3 Avanta+e IMAP, " adecvat ,entru mo+ilitate #esa;ele si folderele sunt accesi+ile de ,e orice P) conectat la internet, atPta tim, cPt nu sunt Qterse " mesa;ele nu sunt descarcate com,let localR ,uteSi alege ce descrcaSi Qi ce nu (e-avanta+e P!P), " inadecvat ,entru un utili-ator mo+il sau mai multi utili-atori ai aceeasi casute ,ostale Fiindca mesa;ele sunt descrcate local si sterse de ,e server, mesa;ele vor e6ista doar ,e acel calculator ce le"a descarcat " ma;oritatea clientilor P%P3 descarca toate mesa;ele com,let, ceea ce face dificila o,eratia cand aveti mesa;e numeroase si mari (e-avanta+e IMAP, " necesita o cone6iune internet relativ +un ,entru o utili-are ra,id ',ar 5ntar-ieri la accesarea folderelor Qi mesa;elor " la ,astrarea mesa;elor ,e server, csuSa ,oQtal se ,oate um,le relativ re,ede cu mesa;e, ceea ce ,oate duce la ,ierderea mesa;elor ce nu mai 5nca, 5n csuS .Este indicat s nu stocai mesajele citite pe server pentru eliberarea spaiului0 2.*. Pro.lemele IMAP (educem ca varianta cea mai +una ar fi folosirea ,rotocolului I#'P, dar acesta vine cu o ,ro+lema atunci cand ne dorim im,lementarea unui client de e"mail )lientul de e"mail ,e care dorim sa 5l im,lementam se va conecta la serverul I#'P ,rin ,ortul 1*3 )lientul de e"mail generea-a o serie de comen-i te6t ,entru a ,ermite utili-atorului sa liste-e directoarele aflate ,e serverul de e"mail, listea-a toate header"ele mesa;elor, descarca un anumit mesa;, sterge un anumit mesa; sau face o cautare ,rintre mesa;ele de ,e server Pro+lema a,are cand dorim sa citim mesa;e din casuta nefiind conectati la internet Pentru a re-olva aceasta ,ro+lema cei mai multi clienti de e"mail folosesc o metoda de salvare a mesa;elor 5n memoria cache a dis,o-itivului folosit )a e6em,lu, clientul va descarca toate mesa;ele i va de,o-ita intregul lor continut ,e dis,o-itivul local .ca i cand am folosi ,rotocolul P%P30 Totusi mesa;ele nu sunt sterse de ,e serverul I#'P, dar se face o co,ie a lor locala 7a urmatoarea conectare la internet, mesa;ele noi vor fi descarcate, cele rece,tionate 5n ,erioada deconectarii de la internet, i serverul I#'P va actuali-a lista de mesa;e, care sunt citite$necitite, com,use ,entru trimitere$sterse 8 ). Platforma Android ).1. Componentele de .a-a ale unei aplicatii pe platforma Android )om,onentele sunt> 'ctivitati, !ervicii, Intentii, Ba-e de continut, 2ece,tori de evenimente i 9iget"uri 'ceste com,onente ,ot rula se,arat ).1.1. Activitatea&Activit/' % activitatea re,re-inta ,artea vi-i+ila a unei a,licatii 'ndroid 'ctivitatile folosesc Tederile.Tie9s0 i Fragmente.Fragments0 ,entru a crea interfata cu utili-atorul i ,entru a interactiona cu acesta % a,licatie ,e 'ndroid ,oate avea mai multe 'ctivitati ).1.2. Servicii &Service%' !erviciile efectuea-a sarcini 5n fundal fara a oferi o interfata utili-atorilor 'cestea nu ,ot notifica utili-atorii folosind frame9orC"ul de notificari din 'ndroid 'cestea sunt folosite la ,rocesari ce necesita mult tim,, acesta fiind un alt motiv ,entru care lucrea-a 5n fundal ).1.). Intentii &Intent%' Intentiile sunt mesa;e asincrone care ,ermit a,licatiei sa ceara funcionalitati de la diferite com,onente ale sistemului 'ndroid, s,re e6em,lu, de la !ervicii i 'ctivitati % a,licatie ,oate a,ela o com,onenta direct .e6,licit Intent0 sau ,oate sa ceara sistemului 'ndroid sa evalue-e com,onentele inregistrate +a-ate ,e ti,ul intentiei .im,licit Intent0 (e e6em,lu a,licatia ,oate im,lementa trimiterea unui e"mail ,rintr"o intentie i toate com,onentele care ,ermit trimiterea de e"mail"uri, adica toti clientii de e"mail vor fi dis,oni+ile ,entru a fi selectate de utili-ator ',licatiile se inregistrea-a ,e ele insele ,rintr"o intentie ,rin IntentFilter Intentiile ,ermit com+inarea com,onentelor sla+ cu,late ,entru a efectua anumite sarcini ).1.*. 0a-e de continut &Content Provider%' =estionea-a i e6,un date ,entru alte com,onente$,rograme Prin )ontentProvider o a,licatie ,oate sa transfere date cu alta a,licatie 'ndroid contine o +a-a de date !U7ite care este folosita frecvent com,lementar cu )ontentProvider ).1.1. 2eceptori de evenimente pu.lice &0rodca%t2eceiver' Brodcast2eceiver ,oate fi inregistrat ,entru a ,rimi mesa;e i intentii Un Broadcast2eceiver va fi notificat de catre sistemul 'ndroid daca situatia s,ecificata are loc (e e6em,lu un Broadcast2eceiver ,oate fi a,elat odata ce sistemul 'ndroid a terminat ,rocesul de +oot sau daca un a,el telefonic este rece,tionat Brodcast2eceiver re,re-inta deci functii de call+acC ,entru diverse evenimente de sistem 9 ).1.3. 4iget-uri 4iget"urile sunt com,onente interactive care sunt folosite 5n mod s,ecial 5n ecranul de start al sistemului de o,erare 'ndroid <n mod normal aceste 9iget"uri afisea-a anumite date i ,ermit utili-atorilor sa desfasoare activitati ,rin intermediul lor (e e6em,lu, un 9iget ,oate afisa un scurt re-umat al mesa;elor de e"mail noi i daca utili-atorul selectea-a un mesa;, ,oate ,orni clientul de e"mail cu mesa;ul selectat ).2. Ar5itectura unei aplicatii 6n Android ).2.1. AndroidManife%t.xml )om,onentele i setarile unei a,licatii ,e ,latforma 'ndroid sunt descrise 5n fisierul 'ndroid#anifest6ml !,re e6em,lu, toate 'ctivitatile i !erviciile unei a,licatii tre+uie sa fie declarate 5n acest fisier 'cesta mai tre+uie sa contina ,ermisiile necesare rularii a,licatiei (e e6em,lu, daca a,licatia are nevoie de acces la retea, acest fa,t tre+uie mentionat aici 'tri+utul pac7age defineste ,achetul de +a-a ,entru o+iectele Kava la care se face referire 5n acest fisier (aca un o+iect Kava se afla 5n alt ,achet, acesta tre+uie declarat cu numele com,let al ,achetului calificat =oogle Pla/ solicita ca fiecare a,licatie 'ndroid sa ai+a ,ro,riul sau L,acCageM 'stfel ca este un o+icei +un sa folosesti numele domeniului tau ca i nume al ,achetului 'cest fa,t va evita coli-iunile cu alte a,licatii 'ndroid Android,ver%ion8ame si android,ver%ionCode s,ecifica versiunea a,licatiei i numele va-ut de utili-atori Eticheta 9activit/: defineste o activitate ,entru ca o activitate sa ,orneasca odata cu rularea a,licatiei, vom avea codul urmator> .action android:name="android.intent.action.MAIN" 0 (efinitia categoriei android:name="android.intent.category.A!N"#E$" de%ineste fa,tul ca a,licatia este adaugata directorului de a,licatii al dis,o-itivului care rulea-a sistemul 'ndroid Partea u%e%-%d7 din fisierul AndroidManife%t.xml defineste versiunea minima de !oft9are (evelo,ment Eit .!(E0 ,entru care este vala+ila a,licatia 'cest fa,t ,revine ,osi+ile erori survenite 5n urma instalarii a,licatiei ,e dis,o-itive care nu su,orta a,licatia ).2.2. Activitati i (urata ciclului de viata !istemul 'ndroid controlea-a durata de viata a a,licatiei <n orice moment sistemul 'ndroid se ,oate o,ri sau ,oate distruge a,licatia, s,re e6em,lu, din cau-a unui a,el ,rimit !istemul 'ndroid defineste durata de viata a activitatilor ,rin metode ,redefinite )ele mai im,ortante metode sunt> 10 on!aveInstance!tate.0 & a,elata du,a ce 'ctivitatea este o,rita #etoda este folosita ,entru a salva datele astfel ca 'ctivitatea sa isi redo+andeasca starea du,a re",ornire onPause.0 & metoda mereu a,elata daca o 'ctivitate incetea-a, ,oate fi a,elata ,entru a eli+era resurse sau ,entru a salva date on2esume.0 & metoda a,elata daca 'ctivitatea este re",ornita, ,oate fi folosita ,entru a initiali-a anumite cam,uri ).2.). Sc5im.ari de configuratii % 'ctivitate va fi restartata daca o asa numita Lschimare de configuratieM are loc % schim+are de configurare are loc daca un eveniment im,ortant ,entru a,licatie este declansat (e e6em,lu, daca utili-atorul schim+a orientarea dis,o-itivului .vertical sau ori-ontal0 !istemul 'ndroid ,resu,une ca o 'ctivitate e ,osi+il sa foloseasca noile resurse ,entru o noua orientare i astfel re,orneste 'ctivitatile !e ,oate evita re,ornirea a,licatiei ,entru anumite schim+ari de configuratie ,rin urmatoarele linii de cod din AndroidManife%t.xml <activity android:name=".ProgressTestActivity" android:label="@string/app_name" android:configCanges="orientation!"eyboard#idden!"eyboard"$ </activity$ ).2.*. Context )lasa android.content.Context asigura conectarea sistemului 'ndroid i a resurselor ,roiectului 'ceasta este interfata catre informatia glo+ala des,re mediul a,licatiei *. Partea practica # SendMail (eoarece asa cum am aratat 5n lucrare intam,inam dificultati 5n crearea unui client de e" mail chiar daca acesta foloseste ,rotocolul I#'P, adica nu descarca toate mesa;ele de ,e serverul de e"mail asa cum ,rotocolul P%P face, 5n ,artea a,licativa ne vom re-uma la crearea unei a,licatii care sa trimita un mesa;, folosind un client de e"mail de;a e6istent 5n sistem, ,rin declansarea a,licatie care sa trimita mesa;ul e"mail du,a acesta a fost com,us 11 *.1. Proiectare # (iagrama de activitati &$M;' Fig. 5 Diagrama UML de activitati 12 *.2. AndroidManife%t.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android " package="example.sendmailtudor" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <application android:allo!ackup="true" android:icon="@drawable/ic_launcher" android:la"el="@strin/app_name" android:t#eme="@st!le/"pp#heme" > <activit$
<categor$ android:name="android.intent.cateor!.)"*(+,-." /> </intent-filter> </activit$> <activit$ android:name=".&ain"cti/it!"> </activit$> </application> </manifest> 'stfel se defineste o activitate care sa ,orneasca odata cu rularea a,licatiei, ,rin codul> .android:name="android.intent.action.MAIN"0 Iar codul > android:name="android.intent.category.A!N"#E$" de%ineste fa,tul ca a,licatia este adaugata directorului de a,licatii al dis,o-itivului care rulea-a sistemul 'ndroid 4.3. Activity_welcome.xml & Activity_main.xml Pentru a crea o activitate avem mai multe o,tiuni, 7inear7a/out, 2elative7a/out, '+solute7a/out i Frame 7a/out (intre acestea vom alege 7inear 7a/out, acesta fiind cel mai sim,lu la/out e6istent ,e 'ndroid, dar in cadrul careia vor fi integrate si alte ti,uri de controale Interfata grafica a a,licatiilor 'ndroid are ca si com,onente ,rinci,ale <ie= si <ie=>roup )lasa <ie= este clasa de +a-a ,entru su+clasa elementelor numite V9idgetsV, iar <ie=>roup ,entru Vla/outsV 13 "ig. 3 Tie9s i Tie9=rou,s (u,a cum am mentionat in ,artea teoretica anterioare, design"ul interfetelor grafice se reali-ea-a cu a;utorul unor fisiere 6ml in care sunt utili-ate tag"uri s,eciale Pentru a reali-a o noua interfata grafica> clicC drea,ta ,e ,roiectul in care vreti sa adaugati noul design, 8e= -: !t5er -: Android ?M; "ile -: 8ext -: ;inear;a/outExample.xml .re,re-entand numele fisierului0, selectati ;a/out la ti,ul resursei unde va fi creat fisierul si "ini%5 )om,onenta ;inear;a/out detine numeroase ,ro,rietati ,rintre care cele mai im,ortante ar fi> %rientation Fill model =ravit/ Padding 'sadar interfata cu utili-atorul este reali-ata ,rin Lactivit/89elcome6mlM i Lactivit/8main6mlM 14
"ig. @ Interfata cu utili-atorul Aactivit/B=elcome.xmlC i Aactivit/Bmain.xmlC Tarianta 6ml, ,entru Lactivit/89elcome6mlM generata automat 5n Ecli,se va fi urmatoarea> <%&ml version="1.0" encoding="utf-8"%$ <'inear'ayo(t &mlns:android="http://schemas.android.com/apk/res/android" android:layo(t_)idt="match_parent" android:layo(t_eigt="match_parent" android:orientation="vertical" $ <Te&t*ie) android:id="@+id/textVie1" android:layo(t_)idt="fill_parent" android:layo(t_eigt="!"8dp" android:gravity="center" android:te&t="@strin#/elcome_text" android:te&tAppearance="$android:attr/text%ppearance&edium" android:te&tColor="@color/culoare_text" /$ <+(tton android:id="@+id/'utton(tart" android:layo(t_)idt="rap_content" android:layo(t_eigt="rap_content" android:layo(t_gravity="center_hori)ontal" android:te&t ="(tart" /$ <*ie) android:layo(t_)idt="fill_parent" android:layo(t_eigt="80dp"$ </*ie)$ <Te&t*ie) android:id="@+id/textVie!" android:layo(t_)idt="rap_content" android:layo(t_eigt="rap_content" android:te&t="@strin#/autorul_text" /$ </'inear'ayo(t$ 15 Iar ,entru Lactivit/8main6mlM, fisierul generat de Ecli,se va fi> <%&ml version="1.0" encoding="utf-8"%$ <'inear'ayo(t &mlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linear+a,out1" android:layo(t_)idt="fill_parent" android:layo(t_eigt="fill_parent" android:orientation="vertical" $ <Te&t*ie) android:id="@+id/textVie-hone.o" android:layo(t_)idt="rap_content" android:layo(t_eigt="rap_content" android:te&t="/o : " android:te&tAppearance="$android:attr/text%ppearance+ar#e" /$ <,ditTe&t android:id="@+id/edit/ext/o" android:layo(t_)idt="fill_parent" android:layo(t_eigt="rap_content" android:inp(tType="text0mail%ddress" $ <re-(est.oc(s /$ </,ditTe&t$ <Te&t*ie) android:id="@+id/textVie(u'1ect" android:layo(t_)idt="rap_content" android:layo(t_eigt="rap_content" android:te&t="(u'1ect : " android:te&tAppearance="$android:attr/text%ppearance+ar#e" /$ <,ditTe&t android:id="@+id/edit/ext(u'1ect" android:layo(t_)idt="fill_parent" android:layo(t_eigt="rap_content" 16 $ </,ditTe&t$ <Te&t*ie) android:id="@+id/textVie&essa#e" android:layo(t_)idt="rap_content" android:layo(t_eigt="rap_content" android:te&t="&essa#e : " android:te&tAppearance="$android:attr/text%ppearance+ar#e" /$ <,ditTe&t android:id="@+id/edit/ext&essa#e" android:layo(t_)idt="fill_parent" android:layo(t_eigt="rap_content" android:gravity="top" android:inp(tType="text&ulti+ine" android:lines=""" /$ <+(tton android:id="@+id/'utton(end" android:layo(t_)idt="fill_parent" android:layo(t_eigt="rap_content" android:te&t="(end" /$ </'inear'ayo(t$ 4.4. 4elcomePage.+ava D MainActivit/.+ava <n randurile de mai ;os avem codul ,rin care se face trecerea de la activitatea de ,rimire a utili-atorului la activitatea unde acesta ,oate com,une mesa;ul, ,rin a,asarea +utonului L!tartM !curte e6,licatii ale ,rogramului avem 5n randurile ce urmea-a> - setContentVie%&'la$out'acti/it!_welcome( - se asigura ca activit/89elcome6ml este folosit ca i Lla/outM al activitatiiR - ,entru a ,relua referinta la un +uton cu I("ul L+utton!tartM, folosim findVie!$)d%&'id'button0tart(* - cream un ascultator L%n)licCM ,entru +utonR 17 - cea mai im,ortanta ,arte o re,re-inta crearea unei LIntentiiM ,entru a ,orni o noua L'ctivitateM Intentia are nevoie de doi ,arametrii> un conte6t i numele activitatii ,e care dorim sa o ,ornim L+ain,ctivit$'class/ - 5n cele din urma, activitatea noua ,orneste cu ,arametrul L0M <n acest ca- ,utem oferi codului L0M semnificatia ,e care dorim L+ain,ctivit$'classM va citi acest cod i 5l va folosi Lstart,ctivit$-or&esultM inseamna ca activitatea L.elcome/ageM ,oate aste,ta informatii ina,oi de la L+ain,ctivit$M pac"age example'sendmailtudor* import android'app',ctivit$* import android'content')ntent* import android'os'!undle* import android'vie'Vie* import android'vie'Vie'0nClick1istener* import android'idget'!utton* p(blic class .elcome/age e&tends ,ctivit$ 2 !utton "uttonStart* p(blic void onCreate%!undle saved)nstanceState( 2 s(per'onCreate%saved)nstanceState(* setContentVie%&'la$out'acti/it!_welcome(* "uttonStart = %!utton( findVie!$)d%&'id'button0tart(* "uttonStart'set0nClick1istener%ne) Vie'0nClick1istener%( 2 30verride p(blic void onClick%Vie vie( 2 )ntent m$)ntent = ne) )ntent%vie'getContext%(4 +ain,ctivit$'class(* start,ctivit$-or&esult%m$)ntent4 5(* 6 6(* 6 6 7a a,asarea +utonului L!endM toate cam,urile sunt ,reluate 5n varia+ile i sunt transmise unui )lient de email ,entru ca mesa;ul sa fie e6,ediat la destinatie pac"age e&le.sendmailt(dor0 import android.app.Activity0 import android.content.1ntent0 import android.os.+(ndle0 import android.vie).*ie)0 import android.vie).*ie).2nClic"'istener0 import android.)idget.+(tton0 import android.)idget.,ditTe&t0
//need tis to prompts email client only email.setType7"message/rfc>??"80
startActivity71ntent.create2hooser7email: "Coose an ,mail client :"880 = =80 = = 4.5. 2ularea aplicatiei Pentru a testa a,licatia vom folosi 'ndroid Tirtual (evice #anager .'T(0, unde am creat un emulator cu setarile din figura urmatoare 19 "ig. E & )onfiguratie 'ndroid Tirdual (evice #anager 2e-ultatul du,a com,ilarea ,roiectului este ,re-entat 5n urmatoarele doua imagini, re,re-entand ,rintscreen"uri du,a rularea a,licatie 20 "ig. F & 2ularea a,licatiei & 'ndroid Tirtual (evice #anager 1. A.revieri i voca.ular 'T( & 'ndroid Tirtual (evice I#'P & Internet #essage 'ccess Protocol #(' " #ail (eliver/ 'gent #T' " #ail Transfer 'gent #U' " #ail User 'gent & ,ermite mesa;elor sa fie trimise i ,lasea-a mesa;ele ,rimite de clienti 5n cutia ,ostala electronica, acestea fiind doua ,rocese distincte P%P " Post %ffice Protocol " ,rotocolul folosit ,entru ,rimirea .recu,erarea din re ea0 de mesa;e de e"mailR acesta folose te ,ortul T)P 110 21 !#TP & !im,le #ail Transfer Protocol & ,rotocol care este folosit la transmiterea de mesa;e de e"mail i a ata amentelor 'cest ,rotocol folose te ,ortul T)P 21 !,amming & ,resu,une trimiterea de s,am, adica mesa;e nesolicitate, de cele mai multe ori comerciale !U7ite & un lim+a; !tructured Uuer/ 7anguage ,rocedural +a-at ,e lim+a;ul ne,rocedural standardi-at !U7, folosit de catre sistemul de o,erare 'ndroid W#7 " eWtensi+le #arCu, 7anguage 3. 0i.liografie )isco ))B' E6,loration & #odulul 1 htt,>$$com,uterho9stuff9orCscom$e"mail"messaging$emailhtm htt,>$$en9iCi,ediaorg$9iCi$Email8client htt,>$$999vogellacom$articles$'ndroid$articlehtml htt,>$$androidroseduorg htt,>$$999learn"androidcom$ htt,>$$999e"learnro htt,>$$9999arrior,ointcom$+log$200@$01$2*$android"ho9"to"s9itch"+et9een"activities$ 22