Sunteți pe pagina 1din 22

Universitatea Politehnic Bucure ti

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$

android:name="example.sendmailtudor.$elcome%ae"
android:la"el="@strin/app_name" >
<intent-filter>
<action
android:name="android.intent.action.&"'(" />

<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&ample.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

p(blic class 3ainActivity e&tends Activity 4
18

+(tton b(tton5end0
,ditTe&t te&tTo0
,ditTe&t te&t5(b6ect0
,ditTe&t te&t3essage0

@2verride
p(blic void onCreate7+(ndle saved1nstance5tate8 4
s(per.onCreate7saved1nstance5tate80
setContent*ie)79.layo(t.activit,_main80

b(tton5end = 7+(tton8 find*ie)+y1d79.id.'utton(end80
te&tTo = 7,ditTe&t8 find*ie)+y1d79.id.edit/ext/o80
te&t5(b6ect = 7,ditTe&t8 find*ie)+y1d79.id.edit/ext(u'1ect80
te&t3essage = 7,ditTe&t8 find*ie)+y1d79.id.edit/ext&essa#e80

b(tton5end.set2nClic"'istener7ne) 2nClic"'istener78 4

@2verride
p(blic void onClic"7*ie) v8 4

5tring to = te&tTo.getTe&t78.to5tring780
5tring s(b6ect = te&t5(b6ect.getTe&t78.to5tring780
5tring message = te&t3essage.getTe&t78.to5tring780

1ntent email = ne) 1ntent71ntent.%2/34._(0.580
email.p(t,&tra71ntent.06/7%_0&%3+: ne) 5tring;<4 to=80
email.p(t,&tra71ntent.06/7%_(89:02/: s(b6ect80
email.p(t,&tra71ntent.06/7%_/06/: message80

//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

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