Adobe AIR, Flex si Android
7:38 am in Tutoriale Android de Mihai Corlan
Nota editorului : Mihai Corlan lucreaza pentru Adobe incepand cu 2006. Din iunie 2008 ocupa pozitia de Platform Evangelist in Adobe Systems (Flex, AIR, LCDS, BlazeDS, ColdFusion). Inainte de asta a fost membru in echipa de Flex Builder si senior developer la InterAKT Online (divizie cumparata de Adobe in anul 2006).
Mihai Corlan este autorul a 3 aplicatii Android prezentate in ultimele zile aici in Androider.ro: Android Pictures, Android Remote, aTabSplitter.
La inceputul acestei veri Adobe a lansat pentru prima oara versiunile beta de Flash Player 10.1 si Adobe AIR 2.5 pentru sistemul de operare Android 2.2 (intre timp versiunea finala de Flash Player 10.1 a fost lansata si poate fi instalata din Android Market).
Ce inseamna aceasta pentru dezvoltatorii de aplicatii pentru Android? Inseamna ca pot folosi ActionScript 3 si frameworkul Flex pentru a crea applicatii interactive care ruleaza pe mai multe sisteme hardware si sisteme de operare:
- Windows, MacOS, Linux, Android 2.2
- Computere personale, smartphone, tablete
Uneori trebuie sa adaptezi codul aplicatiei pentru a acomoda diferentele hardware, cel mai comun in cazul in care portezi pentru mobil o aplicatie facuta pentru desktop, trebuie sa iei in considerare schimbari la nivel de interfata cu utilizatorul datorita dimensiunilor mai mici ale ecranului, datorita interfetei bazate bazate pe touch, etc.
Si totusi, chiar si cand trebuie sa faci aceste modificari, ca dezvoltator de aplicatii interactive ai un avantaj enorm pentru ca este nevoie sa inveti si sa stapanesti un singur set de unelte/frameworkuri/limbaje pentru a “atinge” atat de multe si diferite sisteme (in perioada urmatoare platforma Flash se va extinde si pe alte mobile: Windows Mobile, BlackBerry, Nokia, HP/Palm OS). Sa va dau un exemplu: un dezvoltator care a facut un joc in Flash a avut nevoie de mai putin de o zi ca sa adapteze aplicatia pentru Nexus One.
Ce aplicatii poti face folosind AIR pentru Android? Va dau cateva exemple, dar in cele din urma imaginatia este limita cea mai mare: jocuri, aplicatii care consuma si afiseaza date de pe Internet (agregatoare de RSS-uri, clienti Twitter/Facebook/…, aplicatii enterprise care se conecteaza la Exchange server, etc), aplicatii care transforma telefonul Android intr-o telecomanda pentru un alt program/device. Uitati aici un demo cu o aplicatie AIR pentru Android care controleaza un set-top-box Freebox: http://chubby75.com/blog/?p=9
Ai putea crede ca daca folosesti runtime-ul AIR pentru a face aplicatii pentru Android aplicatia rezultata ar oferi o experienta inferioara aplicatiilor native. Experienta personala acumulata realizand aplicatii AIR si din ce am vazut facut de altii ma face sa cred ca in cele mai multe cazuri acest lucru nu este adevarat. Totusi se impune o nuantare:
- AIR ofera o masina virtuala, si ca orice masina virtuala ai o penalitate de performanta comparat cu aceasi functionalitate implementata in cod nativ;
- Adobe a lucrat mult si cu succes, as adauga, in ultimii doi ani impreuna cu producatorii de chipuri si de sisteme de operare pentru mobile pentru a optimiza Flash Player si AIR atunci cand ruleaza pe telefoane. Aceste optimizari vizeaza fie accelerarea hardware prin delegarea de taskuri GPU-ului, fie de optimizare a consumului de baterie si CPU (trecerea in mod sleep cand aplicatia nu mai este activa de exemplu). Aceste lucruri fac posibil sa poti juca un joc Flash pe Android pentru 5-9 ore sau sa poti vedea filme ore in sir.
- Frameworkul Flex curent (4.1) nu este optimizat pentru mobile. Acesta inseamna care atunci cand il folosesti pentru aplicatii pentru mobile aplicatia finala poate consuma mai multa memorie decat daca ai folosi doar ActionScript . De asemenea trebuie sa mai modifici unele controale pentru a functiona similar cu cele native (de exemplu listele). Adobe a anuntat ca urmatoare versiune de Flex (nume de cod Hero) va oferi un framework unificat atat pentru aplicatii desktop cat si aplicatii pentru Android, cu controale care stiu de touch nativ. Inca nu s-a anuntat cand va fi disponibila versiunea finala, doar ca in curand vor fi disponibile specificatiile si nightly-builds publice.
Ultima versiune beta publica de AIR pentru Android pune la dispozitie dezvoltatorilor facilitati ca:
- acces la camera video si microfon
- acces la camera roll
- setarea de permisiuni pentru aplicatie (internet, acces la SD, audio, camera, location, etc)
- accelerare hardware pentru unele taskuri de randare. Foloseste OpenGLES 2 API de pe Android
- custom URI pentru a putea invoca aplicatia din browser sau alta aplicatie
- screen orientation
- GPS
- accelerometru
- multitouch si gesturi
- comunicare pe socketi inclusiv socket server
- peer 2 peer cu multicasting/broadcasting
- stage WebView – afisasrea unei pagini web in interiorul aplicatiei; foloseste browserul nativ
Daca doriti sa incercati AIR 2.5 pentru Android, tot ce aveti de facut este sa va inscrieti in grupul de pre-release.

Nota editorului : Mihai Corlan lucreaza pentru Adobe incepand cu 2006. Din iunie 2008 ocupa pozitia de Platform Evangelist in Adobe Systems (Flex, AIR, LCDS, BlazeDS, ColdFusion). Inainte de asta a fost membru in echipa de Flex Builder si senior developer la InterAKT Online (divizie cumparata de Adobe in anul 2006).

buna ziua! am o mare nelamurire… va rog frumos spuneti-mi si mie cum procedez sa instalez adobe flash player pe un telefon samsung galaxy s cu sistem de operare android 2.1 eclair? am mare nevoie de programul asta sau unul similar daca acesta nu exista pt a putea vizualiza harta instantelor de pe portalul instantelor. dau pe google portalul instantelor si cand vreau sa vizualizez harta imi cere sa instalez adobe flash player si pe “market” nu il gasesc. ma puteti ajuta?multumesc frumos si astept un raspuns am mare nevoie de un program pt. android 2.1 eclair sa pot vizualiza harta de pe portalul instantelor.
@Adi Flash exista doar de la Android 2.2 in sus, ce telefon ai?