Documente Academic
Documente Profesional
Documente Cultură
Intenții nedefinite
Există la fel un tip de apelare a activității care la crearea unui intent nu se utilizează numele clasei,
dar se indică parametrii action, data category, cu anumite valori. Sistemul analizează aceși parametri
și alege varianta corespunzătoare pentru a porni activitatea. De exemplu, dacă este indicată în
parametri o adresă a paginii web, atunci se presupune deschiderea browser-ului. Combinația dintre
valori și parametri definște scopul care vrem să-l atingem. Acestea pot fi accesarea unui link,
trimiterea unei scrisori, apelarea unui număr telefonic etc.
În filtrele intent-ului se pot utiliza parametrii action, data, category. Aceste tipuri de intent este un
mecanism care permite să trimiți cerere la componentele aplicației cu ajutorul activităților. La
apelarea metodei stratActivity(), creîn un astfel de tip de intent, trebuie de specificat activitatea, care
trebuie să se realizeze și la dorință o directorie URI la acetse date care trebuie prelucrate. La fel este
posibilă transferul de date adiționale în altă activitate, utilizînd intent-ul extras.În acest caz pentru
pornirea unei activități sistemul singur va găsi clasa componentului necesar, care mai bine
corespunde activității definite, luând în vedere tipul de date.
Exemplu de creare a unui intent cu activitatea predefinită ACTION_VIEW pentru a porni browser-ul
și de a accesa adresa necesară:
Uri address = Uri.parse("http://developer.alexanderklimov.ru");
Intent openlink = new Intent(Intent.ACTION_VIEW, address);
startActivity(openlink);
ACTION_VIEW permite vizualizarea unei pagini web, în cazul dat. Odată cu declararea adresei
(datele necesare), se efectuează pornirea unei noi activități (browser-ul). În acest timp activitatea
inițială lucrează ca activitate de fundal. În fiecare caz Android singur găsește activitatea necesară
pentru a răspunde la intent, și o inițializează în caz de necesitate. Aplicația la fel poate crea intent-
uri proprii pentru a permite altor aplicații să le apeleze. Sistemul nu garantează prelucrarea intente-
urilor.
Intent-ul conține informații care prezintă interes pentru Android, numele componentei care trebuie
să-l prelucreze intent-ul și setul de parametri pentru pornirea acestui component.
Intent-ul conține următoarele cîmpuri: ComponentName, activitatea, date (uri, mime), categoria, etc.
Pentru a accesa informații din intent se utilizează metoda getIntent(). Dacă intent-ul este nedefinit
(ascuns) atunci poți obține informații despre URL din intent la apelarea metodelor getAction(),
getData(), getExtras().
2. Activities, definiția, exemplu, Linia de viața a unei activități, starile activității (activiti events)
http://developer.android.com/intl/ru/guide/components/activities.html
În Android, o activitate reprezintă o fereastră care conține interfața grafică a aplicației. O aplicație
poate conține 0 sau mai multe activități (tipic, există măcar o activitate), scopul acestora fiind acela
de a interacționa cu utilizatorul. De obicei, o activitate implică un nivel de procesare redus astfel încât
să se asigure operarea aplicației în timp real. În cazul în care aplicația conține mai multe activități,
navigarea între acestea se realizează prin intermediul unor intenții (eng. intents), reținându-se pe
stivă ferestrele anterioare, care se găsesc în fundal. O singură fereastră poate interacționa cu
utilizatorul la un moment dat. Activitatea care se afișează la momentul în care se lansează aplicația
desemnează ferastra principală, toate celelalte fiind accesate prin intermediul acesteia.
O activitate este reprezentată prin intermediul unei clase care extinde Activity. Toate activitățile din
cadrul unei aplicații Android trebuie să fie declarate în fișierul AndroidManifest.xml.
Se observă că pentru fiecare activitate trebuie să se precizeze clasa corespunzătoare (derivată din
Activity), distincția dintre fereastra principală și celelalte ferestre fiind realizată prin intermediul
valorilor pe care le iau elementele action și category din <intent-filter>. Pentru activitatea principală,
acțiunea va fiandroid.intent.action.MAIN, iar categoria android.intent.category.LAUNCHER (în
sensul că această ferastră va fi afișată în momentul în care se accesează pictograma aplicației din
meniul telefonului), în timp ce pentru celelalte activități se vor specifica valorile
android.intent.action.VIEW, respectiv android.intent.category.DEFAULT.
Scopul unei activități este de a interacționa cu utilizatorul. Din momentul în care activitatea apare pe
ecran și până la momentul în care dispare, ea trece printr-o serie de etape, cunoscute sub denumirea
de ciclul de viață al activității.
Clasa Activity definește o serie de evenimente care guvernează ciclul de viață al unei activități, pentru
fiecare dintre acestea fiind apelate metodele corespunzătoare:
onCreate() - apelată în momentul în care activitatea este creată; această metodă va
fi folosită pentru a crea și pentru a instanția obiectele care vor fi utilizate în cadrul
aplicației.
onStart() - apelată în momentul în care activitatea apare pe ecran
onResume() - apelată în momentul în care activitatea începe să interacționeze cu
utilizatorul; această metodă va fi folosită pentru a porni servicii sau cod care trebuie
să ruleze atâta timp cât aplicația este afișată pe ecran.
onPause() - apelată în momentul în care activitatea este suspendată temporar, iar
activitatea precedentă este reluată; această metodă va fi utilizată pentru a opri servicii
sau cod care nu trebuie să ruleze atâta timp cât aplicația nu este afișată pe ecran.
onStop() - apelată în momentul în care activitatea dispare de pe ecran
onDestroy() - apelată înainte ca activitatea să fie distrusă de către sistem (fie manual,
fie automat) din lipsă de memorie; această metodă va fi utilizată pentru a elibera
resurse înainte ca activitatea să fie distrusă.
onRestart() - apelată atunci când activitatea a fost oprită și ulterior repornită
Exemplu (din Android Manifest)
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.NoActionBar"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MyCamera"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
/>
</application>
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// Обработайте отпускание клавиши, верните true, если обработка выполнена
return false;
}
Parametrul keyCode conține codul tastei, care a fost tastată și comparate cu codurile tastelor care se păstrează
în clasa KeyEvent, pentru a prelucra corect evenimentele. După acelați principiu lucrează și metoda
onKeyUp().
Metoda onKeyLongPress() poate fi utlizată, numai în cazul cînd în metoda onKeyDown() a fost implicată
metoda
event.startTracking(), care urmărește comportamentul tastei.
Exemplu de onKeyLongPress():
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
editText.setText("Long Press"); //вывожу текст в текстовом поле
return true;
}
return super.onKeyDown(keyCode, event);
}
public abstract boolean onKeyMultiple (int keyCode, int count, KeyEvent event)
Apelat în cazul când atunci când o mulțime de down/up de același perechi sunt într-un rând. Parametrul count
specifică numărul de perechi returnat de event.getRepeatCount(). Dacă ați ocupat un eveniment returnează true,
dacă doriți ca evenimentul să fie manipula de următorul receiver, se returnează false.
@Override
public boolean onTouch(View v, MotionEvent event) {
x = event.getX();
y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: // нажатие
sDown = "Down: " + x + "," + y;
sMove = ""; sUp = "";
break;
case MotionEvent.ACTION_MOVE: // движение
sMove = "Move: " + x + "," + y;
break;
case MotionEvent.ACTION_UP: // отпускание
case MotionEvent.ACTION_CANCEL:
sMove = "";
sUp = "Up: " + x + "," + y;
break;
}
tv.setText(sDown + "\n" + sMove + "\n" + sUp);
return true;
}
}
MainActivity realizează interfața OnTouchListener pentru prelucra atingerile pe ecran. În onCreate
se crează un nou TextView, care comunică că prelucrarea atingerilor vor fi un Activity. Interfața
OnTouchListener presupune, că Activity realizează metoda onTouch. Pentru început merge View
pentru care este evenimentul de atingere și obiectul MotionEvent cu informația despre eveniment.
Metodele getX și getY dau coordonatele X și Y punctului unde a fost atins ecranul. Metoda getAction
specifică tipul evenimentului de atingere a ecranului:
ACTION_DOWN- atinge ecran;
ACTION_MOVE- mișcarea degetului pe ecran;
ACTION_UP-retragerea degetului de pe ecran;
ACTION_CANCEL-practic niciodată nu se utilizează, apare în cazul unor eșecuri interne,
care trebuie interpretate ca ACTION_UP.
În cazul la ACTION_DOWN, coordonatele punctului unde a fost atins ecranul se scriu în sDown. În
cazul la ACTION_MOVE coordonatele punctului în care este localizat degetul se scriu în sMove.
Dacă degetul se va mișca pe ecran acest text se va schimba în continuu.
În cazul la ACTION_UP și ACTION_CANCEL coordonatele punctului se scriu în sUp, la care
degetul a fost retras. Totul se deduce în TextView. Se returnează valoarea true-singuri am prelucrat
evenimentul.
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
}
<service
android:name=".MyService"
android:enabled="true"
android:exported="true" >
</service>
In MainActivity
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
9. XML
https://ru.wikipedia.org/wiki/XML
XML (eXtensible Markup Language), descendent al SGML (Standard Generalized Markup Language)
este un meta-limbaj utilizat in activitatea de marcare structurala a documentelor, a cărei specificatie a fost
dezvoltata incepand cu 1996 in cadrul Consortiului World Wide Web (W3C), de un grup de cercetare
condus de Jon Bosak de la Sun Microsystems, la care au aderat ulterior o serie de grupuri de experti din
comunitatile academice (Text Encoding Initiative, NCSA, James Clark) si industriale (SUN, IBM,
Netscape, Oracle, Adobe etc.). Prima versiune de XML a fost standardizata in februarie 1998, ulterior
acest standard a mai fost revizuit de doua ori in octombrie 200 si respectiv in februarie 2004.
Documentele XML sunt realizate din unitati de stocare numite entitati, ce contin date parsate sau
neparsate. Datele parsate sunt realizate din caractere, unele dintre ele formand date caracter iar altele
ca marcaje. Marcajele codifica o descriere a schemei de stocare a documentului si structura logica. XML
furnizeaza un mecanism pentru a impune constringeri asupra schemei de stocare si a structurii logice.
1 Elementele
Elementele sunt blocurile de baza ale unui document XML. Pot fi folosite atat pentru a retine informatii,
cat si pentru definirea structurii. Un element incepe cu un tag de start si se termina cu corespunzatorul
tag de sfarsit:
tagul de sfarsit
2 Atribute
Atributele au rolul de a descrie elementele. Putem face o analogie intre atribute – care descriu elemente
si adjective – care descriu substantive.
Atributele in XML sunt aceleasi cu atributele din HTML. De exemplu, un atribut al elementului <table> ar
fi align="center". Atributele sunt localizate in tag-ul de start al unui element, imediat dupa numele
elementului, (acum este evident de ce nu pot apare spatii albe in numele unui element), sunt urmate de
semnul ‘=’, care este urmat de valoare atributului intre ghilimele. Daca valoarea unui atribut nu este intre
ghilimele va fi semnalata eroare de catre analizorul XML, la fel ca si in cazul in care pentru un atribut nu
ar apare si valoarea acestuia.
Pentru un element pot exista oricate atribute, atat timp cat sunt declarate corect. Exemplu
<?xml version="1.0"?>
<BIBLIOTECA>
<CARTE cota="12345">
<TITLU>XML Bible</TITLU>
<AUTOR>Elliotte Rusty Harold</AUTOR>
<EDITURA> IDG Books Worldwide</EDITURA>
<AN_APARITIE>2002</AN_APARITIE>
</CARTE>
</BIBLIOTECA>
3 Comentarii
Comentariile sunt secevente de caractere ce pot aparea oriunde in document in afara altor marcaje
ce sunt utilizate pentru a descrie anumite detalii legate de continutul si structura documentului
programatorului. Ele nu fac parte din datele caracter ale documentului; un procesor XML poate, dar
nu este nevoie, sa dea un acces aplicatiilor la comentarii.
Un comentariu incepe cu secventa <!-- si se incheie cu -->.
10. Async
Prin intermediul clasei AsyncTask se permite mutarea operațiilor costisitoare din punct de vedere al
utilizării procesorului și al memoriei pe fire de execuție rulate în fundal, oferind sincronizarea cu firul de
execuție ce randează interfața grafică, acesta fiind notificat cu privire la progresul realizat cât și cu privire la
momentul în care procesarea a fost terminată.
Întrucât clasa AsyncTask nu este persistentă în cazul (re)pornirii unei activități (situație în care firul
de execuție asociat este distrus), se recomandă utilizarea sa pentru procese de fundal care nu durează o perioadă
de timp prea mare.
O implementare a clasei AsyncTask poate fi parametrizată cu tipurile de date care sunt folosite pentru
intrare, pentru raportarea progresului și pentru ieșire (rezultate).
În situația în care nu se dorește transmiterea unor parametrii de intrare / ieșire sau nu este necesară
raportarea progresului, se poate utiliza valoarea Void pentru toate aceste tipuri.
Este necesară suprascrierea următoarelor metode:
doInBackground() - metoda care va fi executată pe firul de execuție dedicat, care primește
parametrii de intrare de tipul specificat; acesta trebuie să conțină procesările complexe care se
doresc a fi realizate fără a interacționa însă cu firul de execuție principal; notificările sunt
realizate:
prin intermediul metodei publishProgress(), care primește ca parametru progresul
realizat, valorile fiind transmise metodei onProgressUpdate();
prin întoarcerea unui rezultat, atunci când procesarea este terminată, valoarea fiind
transmisă metodei onPostExecute();
onProgressUpdate() - folosită pentru actualizarea interfeței grafice, cu valorile primite de la
metoda publishProgress(); metoda este sincronizată cu firul de execuție principal (care
randează interfața grafică), astfel încât diferitele controale pot fi accesate de aici;
onPostExecute() - apelată în momentul în care procesarea este terminată, primind ca parametru
rezultatul întors de metoda doInBackground(); metoda este sincronizată cu firul de execuție
principal (care randează interfața grafică), astfel încât diferitele controale pot fi accesate de
aici.
private class SomeAsyncTask extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... parameter) {
String result = new String();
int progress = 0;
for (int k = 1; k <= parameter[0].length(); k++) {
progress = k;
result += parameter[0].charAt(parameter[0].length() - k);
try {
Thread.sleep(100);
} catch (InterruptedException interruptedException) {
Log.e(Constants.TAG, "An exception has occurred:
"+interruptedException.getMessage());
}
publishProgress(myProgress); } return result; }
@Override
protected void onProgressUpdate(Integer... progress) {
asyncTextView.setText(progress[0].toString()); }
@Override
protected void onPostExecute(String result) {
asyncTextView.setText(result); } }
Rularea unui obiect de tip AsyncTask se face prin invocarea metodei execute() care primește ca
parametru informațiile care se doresc a fi procesate.
Fiecare obiect de tip AsyncTask poate fi rulat o singură dată. Apelurile ulterioare ale metodei
execute() vor genera excepții.
Sincronizarea este necesara pentru accesul reciproc exclusiv la blocuri de comunicare și de încredere
între fire.
18. UDP
UDP - user datagram protocol reprezintă un protocol din stiva de protocoale la nivel de transport,
adica prin protocolul UDP se realizează comunicarea calculoatoarelor prin transferuri de date.
Diferența dintre UDP și TCP este că UDP nu este sigur dar este rapid.
Întrebari General
.net 3.5 --
foloseste Common Language Runtime (CLR) 2.0,
Au fost adăugate două componente de servicii de date noi, Cadrul Entitate ADO.NET
ADO.NET și a datelor Serviciilor.
Două ansambluri noi de dezvoltare web, System.Web.Abstraction și System.Web.Routing,
au fost adăugate; acestea sunt utilizate în MVC Cadrul ASP.NET și, potrivit surselor, vor fi
utilizate în eliberarea viitoare a ASP.NET Forms
prezentat, de asemenea, un nou set de controale numite "pachete Visual Basic de
alimentare", care a adus înapoi controalele Visual Basic, cum ar fi "Line" și "Shape".
.NET Framework 4
- Extensii paralele pentru a îmbunătăți sprijinul pentru calcul paralel , care vizează multi- core sau
sisteme distribuite.
tehnologii , cum ar fi PLINQ ( Parallel LINQ ) ,
o implementare paralelă a motorului LINQ , și operativ Biblioteca paralel , care expune
construcții paralele prin apeluri de metode .
Noile caracteristici Visual Basic .NET și C # limbă , cum ar fi continuări implicite de linie ,
expediere dinamic , parametrii numiți și parametrii opționali .
Suport pentru Contracte de cod.
Includerea de noi tipuri de a lucra cu aritmetica arbitrar - precizie (
System.Numerics.BigInteger ) și numere complexe ( System.Numerics.Complex ) .
Introduce Common Language Runtime ( CLR ) 4.0 .
Suport nativ pentru compresie Zip (versiunile anterioare susținut algoritmul de compresie,
dar nu formatul arhivă).
Suport pentru tablouri care sunt mai mari de 2 gigaocteți (GO) pe platforme pe 64 de biți.
Această caracteristică poate fi activată în fișierul de configurare cerere.
Performanță mai bună prin fundal de colectare a gunoiului pentru servere. Când utilizați de
colectare a gunoiului de server în .NET Framework 4.5, de colectare a gunoiului de fundal
este activată în mod automat. Consultați secțiunea colectarea gunoiului de fond Server a
fundamentelor de colectarea gunoiului subiect.
Fundal just-in-time (JIT) compilarea, care este disponibil opțional pe procesoare multi-core
pentru a îmbunătăți performanța aplicațiilor.
.net 4.5.1
Puteți utiliza Windows Runtime API-uri în bibliotecile portabile care vizează Ferestre 8.1,
Windows Phone 8.1, și Windows Phone 8.1 Silverlight.
Puteți include (tipuri Windows.UI.XAML) XAML în biblioteci portabile atunci când vizați
pentru Windows 8.1 sau Windows Phone 8.1. Următoarele șabloane XAML sunt suportate:
Blank Page, de resurse dicționar, templated control, și de control al utilizatorului.
Puteți crea o componentă portabil pentru Windows Runtime (fișier .winmd) pentru utilizarea
în aplicații Store care vizează Ferestre 8.1 și Windows Phone 8.1.
Puteți retarget o bibliotecă Windows Store sau Windows Phone Store clasa ca o clasa
Biblioteca portabil.
Pentru mai multe informații despre aceste modificări, a se vedea Cross-Platform Dezvoltare
cu Class Library portabil.
Conținutul .NET Framework seta acum include documentația pentru NET nativ, care este o
tehnologie precompilarea pentru construirea și implementarea de aplicații Windows. .NET
Native compilează aplicațiile dvs. direct la cod nativ, mai degrabă decât la limba intermediar
(IL), pentru o performanță mai bună. Pentru detalii, a se vedea Compilarea Apps cu .NET
Native.
Cadru sursa de referință NET oferă o nouă experiență de navigare și funcționalitate sporită.
Puteți naviga acum prin codul sursă .NET Framework on-line, descărcați de referință pentru
vizionare offline, și pas prin sursele (inclusiv patch-uri și actualizări) în timpul de depanare.
Pentru mai multe informații, consultați intrarea blog un nou aspect pentru .NET sursă de
referință.
Noi caracteristici și îmbunătățiri în .NET Framework 4.5.1 de bază includ:
Redirecționarea automată de legare pentru ansambluri. Începând cu Visual Studio 2013,
când compilați o aplicație care vizează Framework 4.5.1, redirecționări de legare pot fi
adăugate la fișierul de configurare app dacă aplicația dvs. sau a componentelor sale de
referință mai multe versiuni din același ansamblu. Asemenea, puteți activa această
caracteristică pentru proiectele care vizează versiuni mai vechi ale .NET Framework. Pentru
mai multe informații, consultați Cum să: Activarea și dezactivarea automată redirecționare
obligatorii.
Abilitatea de a colecta informații de diagnosticare pentru a ajuta dezvoltatorii îmbunătăți
performanța aplicațiilor server și cloud. Pentru mai multe informații, a se vedea metodele
WriteEventWithRelatedActivityId și WriteEventWithRelatedActivityIdCore din clasa
EventSource.
Abilitatea de a compacta explicit heap obiect mare (LOH) în timpul de colectare a gunoiului.
Pentru mai multe informații, consultați proprietatea
GCSettings.LargeObjectHeapCompactionMode.
Îmbunătățiri suplimentare de performanță, cum ar fi ASP.NET suspendare app, imbunatatiri
JIT multi-core, și de pornire app mai repede după o modificare .NET Framework. Pentru
detalii, a se vedea .NET Framework 4.5.1 anunțarea și aplicația ASP.NET suspenda blog.
21. OOP
Principii OOP
Incapsularea
Incapsularea
Incapsularea se defineste ca fiind inglobarea si ascunderea datelor intr-o clasa(structura).
Ex C#
public class User
{
private string m_name;//aici incapsulam numele utilizatorului si il ascundem
Abstractizarea
Abstractizarea
Putem defini abstractizarea ca fiind procesul de a lua obiecte reale si a le transforma in concepte
virtuale. Clasele si atributele pe care le definesc modeleaza lumea reala intr-un mod abstract. Ca
exemplu putem lua codul de mai sus, clasa User e modelul simplificat al unui utilizator de
computer, ea reprezinta o persoana care poate fi reala si are un nume atasat.
Ex. C#
class Program
{
static void Main(string[] args)
{
User u = new User();
u.Name = "Popescu Ion";
}
}
Mostenirea
Mostenirea
Mostenirea e capacitatea de a crea noi clase pornind de la definitii de obiecte deja existente,
aceste clase nou create au aceleasi proprietati si functionalitati ca si clasele parinte. Intr-un mod
simplist putem spune ca mostenirea ajuta la reutilizarea codului.
Ex. C#
public class Student : User
{
private float m_grade;
class Program
{
static void Main(string[] args)
{
Student s = new Student();
s.Name = "Popescu Ion";
s.Grade = 4.75F;
}
}
Polimorfismul
Dupa cum numele sugereaza e capacitatea obiectelor de a contine functionalitati diferite sub
acelasi nume, ca o consecinta directa a polimorfismului avem redefinirea metodelor, mai exact
aceeasi metoda poate executa actiuni diferite in functie de locul in care este implementata.
Polimorfism
Ex. C#
class Program
{
static void Main(string[] args)
{
User u = new User();
User s = new Student();
Console.WriteLine(u.ToString());
Console.WriteLine(s.ToString());
Console.ReadLine();
}
}
24. Cookies, history, temporary internet files
Un cookie este un fișier de mici dimensiuni, în general alcătuit din litere și cifre, care este descărcat
în memoria unui calculator (sau altui echipament folosit pentru navigare online - telefon mobil,
tabletă, etc), atunci când utilizatorul accesează un anumit site web.
Cookie-urile sunt create atunci când browserul folosit de către un utilizator afișează un anumit site
web. Site-ul web transmite informații către browser, iar acesta creează un fișier text. De fiecare
dată când utilizatorul accesează din nou respectivul site web, browserul accesează și transmite
acest fișier către serverul site-ului web. Altfel spus, cookie-ul poate fi văzut ca un card de
identificare a utilizatorului de Internet, care anunță site-ul web de fiecare dată când utilizatorul se
întoarce pe respectivul site.
Cookie-urile pot asigura o interacțiune mai rapidă și mai ușoară între utilizatori și site-urile web.
Spre exemplu, în momentul autentificării unui utilizator pe un anumit site web, datele de
autentificare sunt stocate într-un cookie; ulterior, utilizatorul poate accesa respectivul site fără să fie
nevoie să se autentifice din nou.
În alte cazuri, cookie-urile pot fi utilizate pentru stocarea de informații referitoare la activitățile
desfășurate de utilizator pe o anumită pagină web, astfel încât acesta să își poată relua ușor
respectivele activități la o accesare ulterioară a site-ului. Cookie-urile spun serverului ce pagini
trebuie să arate utilizatorului, astfel încât acesta să nu fie nevoit să își amintească acest lucru sau
să navigheze întregul site de la început. Astfel, cookie-urile pot fi asimilate unor „semne de carte”
care îi spun utilizatorului exact unde a rămas în cadrul unui site web.
În mod similar, cookie-urile pot stoca informații referitoare la produsele comandate de către
utilizator pe un site de comerț electronic, făcând astfel posibil conceptul de „coș de cumpărături”.
De asemenea, cookie-urile pot oferi site-urilor web posibilitatea de a monitoriza activitățile online
ale utilizatorilor și de a stabili profiluri de utilizatori, care pot fi apoi folosite în scopuri de marketing.
Spre exemplu, pe baza cookie-urilor pot fi identificate produsele și serviciile agreate de către un
utilizator, aceste informații servind ulterior la transmiterea de mesaje publicitare adecvate către
respectivul utilizator.
25. Internet cache, session
În informatică,memoria cache(sau simplu uncache) este o colecţie de date ce sunt o "copie la indigo"
a valorilor originale stocate altundeva sau calculate mai devreme, unde operaţia de aducere din
memorie a datelor originale este costisitoare (datorită timpilor mari de acces la memorie) sau costul
recalculării acestora este mare, în comparaţie cu costul citirii acestora din cache. Cu alte cuvinte, un
cache este o arie temporară de stocare unde datele utilizate în mod frecvent pot fi depozitate pentru
un acces rapid la acestea. Odată ce datele sunt stocate în cache, în viitor vor fi luate de aici şi utilizate
decât să se încerce readucerea datelor originale sau recalcularea acestora, astfel încât timpul mediu
de acces este mai mic.
Android
Kernelul Linux (cu unele modificări) conține driver-ele pentru diferitele componente
hardware (ecran, cameră foto, tastatură, antenă WiFi, memorie flash, dispozitive audio),
fiind responsabil cu gestiunea proceselor, memoriei, perifericelor (audio/video, GPS,
WiFi), dispozitivelor de intrare/ieșire, rețelei și a consumului de energie.
iOS
Kernelul XNU, kernelul lui Darwin (Open source UNIX realizata de Apple). Este un kernel hybrid,
care contine functionalitati din mai multe kerneluri si microkerneluri, aceasta a fost facut pentru a
crea cele mai bune tehnologii asa ca modularizare inalte in iOS, memorie protejate si viteza inalta
de procesare.
30. .NET list
In proiectare electronice, un netlist este o descriere a conectivității al unui circuit electronic. Un
singur netlist este efectiv o colecție de mai multe liste aferente. În forma sa cea mai simplă, un
netlist constă dintr-o listă de terminale ("ace") a componentelor electronice într-un circuit și o listă a
conductoarelor electrice care interconectează terminalele. Un net este un conductor care
interconectează două sau mai multe terminale de componente.
38. Json
JSON este un acronim în limba engleză pentru JavaScript Object Notation, şi este un format de
reprezentare şi interschimb de date între aplicaţii informatice. Este un format text, inteligibil pentru
oameni, utilizat pentru reprezentarea obiectelor şi a altor structuri de date şi este folosit în special pentru
a transmite date structurate prin reţea, procesul purtând numele de serializare. JSON este alternativa
mai simplă, mai facilă decât limbajul XML.