Вы находитесь на странице: 1из 7

Body areas

Body areas
System areas
User areas

Structura unei aplicatii


-

Context
Activity
Fragment
Service
Intent

Contextul:
-

Punctul central al unei aplicatii


Ofera acees la
o Res. Hardware
o Serv sistemului de operare
o Date si fisiere
Este un fisier de tip android.app.Aplication

Activitatea
-

Nu influenteaza timpul de raspuns a aplicatiei


Este asociata unei ferestre
O aplicatie android este formata din una sau mai multe activitati

Fragmentul
-

Interfata grafica
O parte a unei activitati
Asigura consistenta si flexibilitatea unei aplicatii android

Serviciul
-

Ruleaza in background

Intentia
-

Mecanism de comunicare intre activitati si servicii

Activity life Cycle


-

Resumed
o In foreground
o User focus
Paused
o Alta activitate e in focus
o Stopata partial de sistem
Stoped
o Complet in background

Ce poate contine o activitate ?


-

Componente
Extend clasa view
Statice
o TextView
o imageView
dinamece
o button

checkbox

Container
-

view
o
o
tipuri
o
o

poate contine mai multe view-uri


layout
de layout
linealayout
relativelayout

Resurse
-

directoriul res
imagini
o drawable
ldpi
mdpi
hdpi
xdpi
o mipmap
interfete grafice
o layout
constante
o values
raw
o constante nemodificate

INTENTIA

1.
2.
3.

4.
5.
6.

propagata ca mesaj asincron


intentie = actiune + date
invoca*:
o activitati
o servicii
o mesaje de broadcast
action(android name) main, view
category: laungher, default
data:
o host
o mimeType
o path
o schema
type
component
extra: getExtra, putExtra

invoke apeleaza
broadcast difuzare
intent-filter: indica actiunile la care pointeza aplicatia

Mecanisme de invocare
-

precizarea clasei de incarcare


precizarea actiunei
precizarea unui Uri

Lansarea activitatii

Intent (action, uri)


-

StartActivity
StartActivityForResult

Tipuri de acituni :

Wiev
Insert, delete, edit, search
Web_search
Dial
Call
Pick
Send

Transferul intre activitati


-

onPause
onStop: apelat numai ce dupa activitatea
invocata este vizibila
onDestroy: daca este necesara memorie

Componente
-

orice component are acces la:


o intentia care a invocate
o atributele intentiei
o comp. poate primi mai multe intentii
o comp. poate transfera responsabilitatea
catre alta componenta

Fluxurile informationale
-

activitate parinte
o startActivityForResult(intent, code)
o onActivityResult
// pentru a transfera informatii
suplimentare
ca rezultat activity.resultOk sau activity.resultCanceled
activitate copil
o setResult()
// pentru a transfera informatii suplimentare
ca rezultat activity.resultOk sau activity.resultCanceled
o finish()
// indica faptul ca activitatea a fost terminata

Broadcast Intents

sendBroadcast(intent)- trasnmiterea mesajului de broadcast


clasa android.content.BrodcastReceiver
metoda de callback : onReceive(content, intent)
tipuri particulare de intentii:
-

ordonate // cind intentia este procesata secvential de mai multi ascultatori


persistent // obtinerea celor mai recente valori (ex. Bateria, internet)

Intentii native:
-

Action_battery: changed, low, okay ..


Action_boot_completed
Action_camera_button

Servicii
Componenta android invizibila utilizatorului, de regula pentru prelucarea larga de
date, sau de lunga durata, ce nu necesita intentia utilizatorului.
-

Clasa android.app.service
onCreate()
onBind(intent) asociaza serviciul la o alta componenta android
operatii
o startService()
o stopService()
o stopSelf()
int onStartCommand(intent, flags, id) // real. Procesarea serviciilor

categorii de procesari:
-

in prim plan
o startForeground
o stopForeground
in fundal (i/o, cautare, db)
o asyncTask
sincronizarea cu interfata
parametrizarea cu tipuri de date generice
onPreExecute
doInBackground
onProgressUpdate
onPostExecute
o intentservice
onHandleIntent(intent)
fir de executie dedicat p/u fiecare invocare
o loader
procesari asincrone ce implica el. A interfetei grafice
o fire de executie
runOnUiThread(Runnable)
handler accesul la firul de executie

Content Provider:este un anager a seturilor de date din aplicatie, cit in sistemul de fisiere,
SQL-DB .. etc.
Bind a lega
Runtime la rulare

Retea
! Toate operatiile ce se fac cu conexiunea la internet trebuie facute intr-un fir
aparte.
-

asyncTask
thread
runOnUiThread(runnable)

socket handle la network api pentru a utiliza conexiunea pentru interschimb


de date, pu crearea unui socket avem nevoie de protocol, port si adresa.
AsyncTask
-

operatii care nu sunt i/o intensive


ce utilizeaza date locale

Thread
-

operatii care sun I/o intensive


operatii ce utilizeaza procesul

Accesul retelei:
-

android.permission.internet
android.permission.Acces_network_state

http
-

metode:get, head, put, post, delete, trace, connect, options


resursa: url
versiune: http 1.1

header:
-

user-aget
host
authorization
date

body:
1xx
2xx
3xx
4xx
5xx

info
succes
redirect
eroare client
eroare server

Tranfer Http android:


-

httpUrlConnection
o instantierea unui obiect URL // getProtocol, getHost, getPort ..
o deschiderea conex. // OpenConnection,
o oper. De scriere // getOutputStream, getInputStream
o inchiderea conexiunei
apacheHttpComponents

JSON JSONObject, JSONArray


HTML
XML

Platforma arhitecturii

1)Linux Kerenel: binder,display,camera..


2)HAL(hardware abstraction layer): audio, bluetooth, camera, sensors..
3)Native C++libs(OpenGl,Webkit)&Android Runtime(core libraries)
4)Java Api framework:Content providers, view systems, managers(activity, notification)
5)System apps

Utilizarea resurselor (..Res/)


Animator mapa in care salvam properrty animation(animatii pentru orice obiecr,
durata/proprietatea..)
Anim mapa cu tween animations (animatii doar pentru obiecte ale view-ului)
Colors culori
Mipmap imagini p/u diferit dpi
Layout xml layout
Menu diferite meniuri
Raw diferite fisiere
Values - xml fisiere care contin valori simple ca tablouri, culori, stringuri..
Xml alte resurse xml
! Niciodata nu trebuie de salvat resursele direct in mapa res: compilatoru va da eroare.
Calificatori/specificatori:
Mcc si mnc: mcc310, mcc310-mnc004, mcc208-mnc00, ..
Language and region: en, fr, en-rUS, fr-rFR
Layout direction: ldltr, ldrtl
Smallest width: sw<N>dp // sw320dp
Avaible width: w<N>dp
Availble height: h<N>dp
Screen size: small, normal, large, xlarge
.
-

HTTP

Tratarea ev. legate de UI cit si lucru cu ele este realizat de firul de


executie principal
Interceptarea evenimentelor legate de interfata grafica se face prin clasa
view , eventlistener este o interfata a clasei view care contine un
callback. Aunci cind util navigheaza cu ajutorul tatelor sau trackbal,
focusul trece doar obiectelor pentru care isFocusableInTouchMode
Implicit toate componenetele ruleaza intr-un proces dar aceasta se poate
schimba in manifest
2 reguli:
o Nu a bloca firul de executie principal
o Nu a apela intrumentele interfetii Android exterior firului de executie
Pentru accesul firul exec. Principal din alte fire se util:
o Activity.runOnUiThread(runnable)
o View.post(runnable)
o View.postDelayed(runnable, long)

Exemplu de request
GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Header
-

General
requestURL, request Method, status code, remote adress
Request
:Authority, :method, :path, :scheme, accept, accept-encoding,
accept-language, cache-control, cookie, pragma, user-agent

Response
Accept-range, age, cache-control, content*, date, last-modified,
server, status, x-* ..

Relatia Serviciu-intentie-Activitate
-

bindService()
intentia
serviceconection()
mecanism de asociere
o BIND_autocreate
o BIND_adjust_with_acticity
unbindService()

Async Await
-

cu ajutorul la AsyncTask procesele mai costisitoare se pot muta in fire de


executie aparte
o doInBackground()
o onProgressUpdate
o onPostExecute
sincronizarea se face prin mecanismul synchronized
o numai un sigur fir poate executa un bloc de cod la un anumit timp
o metodele: wait, notify, notifyAll

Вам также может понравиться