Az Android 2.2 (Froyo) androidos fejlesztői szemmel

Androidra és iPhone fejlesztő embereket is megkerestem azzal, hogy mondják el a véleményüket az Android új verziójáról, a Froyóról. Elsőként egy androidos fejlesztő, Téli Sándor válaszolt.

Véleményét két részre bontotta. Először, mint Android-felhasználó mondott verdiktet: 

Felhasználói szemmel nézve az a véleményem, hogy a Froyo lényeges előrelépés akár az Eclair (2.1)-hez képest is. Rengeteg helyen lehet összefoglalókat olvasni az újdonságokról, ezért most ezeket nem is sorolnám fel. Nekem személy szerint (felhasználóként) a WiFi hotspot funkció és az USB tethering a legfontosabb újítás, de azért korszakalkotónak nem nevezném (akár régebbi Nokiákon is lehetséges volt az SDCard-ra telepítéssel egyetemben).

A Flash már érdekes kérdés. Steve Jobsnak sem biztos, hogy az jár a fejében, amit általában mond. Nyilvánvalóan hasznos a Flash. Nem csak játékok léteznek (és pornó), hanem pl. flash alapú analitikai eszközök is, stb... Ami viszont minket (androidosokat) is aggaszthat az az, hogy nem szorítja-e vissza egy-két komolyan mobilra optimalizált flash játékportál az Android Market játékainak letöltésszámát. Eddig aki pl. tetrisezni akart, az letöltött egy tetrist a Marketről. Eltolódik-e ez a jövőben speciális Flash játék gyűjtőoldalak fele? Ez persze nagyban függ attól is, hogy nagyobb nevű site-ok mennyire mozdulnak rá erre az irányra. Nekem, mint Android fejlesztőnek az lenne a jó, ha nem tennék ezt. ..mint felhasználó, azt kell, hogy mondjam, kell nekem a Flash. Szóval mindkét oldalt meg tudom érteni.

És akkor nézzük, hogy Android-fejlesztőként mi a vélekedés az Android 2.2-ről...

Egyértelműen a JIT compilert tartom a legfontosabb fejlesztésnek a Froyóban. Sőt, az egész Android platform eddigi fejlődési fázisai közül ebben van a legnagyobb fejlődési potenciál, én úgy gondolom. A Nexus One-ra még csak pár napja elérhető a végleges ROM és időnek kell eltelni ahhoz, hogy pl. direkt side-by-side tesztekkel több szempontból kiderüljön, hogy milyen típusú dolgok gyorsulnak a jelenlegi JIT compiler implementációtól. Egy 1GHz-es Snapdragon processzor (pl. Nexus One, Desire) eddig sem sok kívánnivalót hagyott maga után teljesítmény szempontból, de rendkívül nagy lehetőség lehet a JIT compiler kiaknázásában (automatikusan gyorsít ugyan, de azért valószínűleg(!) nem lesz mindegy, hogy kimondottan odafigyel-e rá az ember fejlesztés közben - ehhez is tesztek kellenek). Sokan csak lebegőpontos matematikát emlegetnek a JIT compiler gyorsításai kapcsán, de egy program nagyon sok részén gyorsíthat ezen kívül is.

Ami külön érdekes lehet, hogy a GC (Garbage Collector - ez gyűjti össze a memóriaszemetet) gyorsul-e ettől ill. mennyire gyorsul. A GC felel ugyanis a UI (felhasználói interfész) megakadások jelentős részéért. Amikor minden megáll egy pillanatra (legalább egy tized másorpercre), az bőven elég ahhoz, hogy kellemetlen legyen. Ebben a GC a bűnös általában. Ha ez az idő lerövidülne, az szintén növekedést jelentene a felhasználói élményben. Annyi már most látszik a logokból, hogy a GC még mindig nagyon lassú. Azt viszont, hogy mennyit javult, szintén célzott Eclair update 1 (2.1) vs Froyo (2.2) tesztekkel tudom majd kideríteni. A második legfontosabb dolgonak az Android Market-ben bevezetett crash report funkciót tartom (egy program "elszállás" körülményeinek riportja).

Nagyon kényelmes és hasznos, hogy egyéni crash report begyűjtés/beküldés/nyilvántartás helyett egy beépített funkció gondoskodik erről minden applikáció esetén. Fejlesztők számára érdekes dolgokból nem volt hiány a bejelentésekben. Itt talán még az asztali böngészőből Android eszközre küldött "intent"-eket emelném ki (amikor térkép alkalmazást indított adott koordinátákkal pl.). Ebből még születhetnek kényelmes dolgok, úgy gondolom.

Én 8bit-es demo coderként kezdtem. Ami ott nem fért bele 50 frame/sec-be, az nem volt még kész. Nem is gondolná az ember, hogy élményben mennyi múlik ezen. Nagy hiányosságnak tartom a mai napig, hogy az Androidban huszadrangú a felület folyamatossága. Figyeljük csak meg az iPhone-t. A legelső, leglassabb iPhone is egyet elmondhat magáról: a felület nem akad. Ordít róla, hogy ez a legfontosabb cél. Az 1GHz-es Snapdragon processzor sem tudja pótolni ezt a megközelítést és a 2GHz-es sem fogja. A UI renderinget (pl. OpenGL rendering bevezetése az egész UI-ra vonatkozólag) és az egész ütemezést/prioritásokat át kéne gondolni. Ez nyilván nem én leszek és könnyű ezt mondani, de szeretném, ha ez minél előbb megtörténne.

Ugyanakkor az egész Android platform szenved két dologtól:

1. Fregmentáció

Jelenleg mindenki - aki nem akarja a piaca 34%-át elvesztegetni - az még mindig Android 1.5-re fejleszt. Ez tarthatatlan, úgy gondolom. Az 1.5 nemcsak korszerűtlen már, de alap funkcióit tekintve is rendkívül bug-os. Az IE6-hoz hasonlítanám, ami gyakorlatilag elpúsztíthatatlannak tűnt még akkor is, amikor már régen sokkal jobb browserek léteztek (pl. újabb IE is). Ahogy a Weben, Androidon is igaz az, hogy a fejlesztési időt fölöslegesen elnyújtja ez a jelenség, valamint az új és izgalmas lehetőségek ebből eredő kiaknázhatatlansága sem teszik a fejlesztőket boldoggá. Pl. az előbb emlegetett asztali böngészőből telefonra küldött "intent"-eket is maximum érdekesség képpen próbálja ki az ember addig, amíg az csak az eszközök elenyésző részén működik. Tehát a Froyo újításainak mindegyike csak felhasználó szempontból jelent fejlődést a közeli jövőre nézve. Amíg a gyártók 1.5-ös, 1.6-os telefonokat adnak ki a mai napig, addig a megoldást is csak toljuk magunk előtt.

2. Egymással nem egészen kompatibilis disztribúciók

Elég, ha csak egy példát említek itt: A HTC saját Android változatai, amiket a csodálatos Sense UI-ról szoktunk megismerni. Ez a felhasználóknak örömöt, a kompatibilitást hiába kereső fejlesztőknek pedig rengeteg többletmunkát okoz. Arról nem is beszélve, hogy ez is erősíti a fregmentáció jelenségét. ..hiszen a gyártók részéről ez remek hivatkozási alap egyben arra is, hogy egy-egy új Android verzió megjelenése után miért nem tudnak hónapokig verziót frissíteni az ilyen-olyan speciális ROM-jaikkal eladott készülékeken. Ebben a tekintetben is lehetne a Google szigorú szerintem. Ha valaki testre akar szabni, hát tegye. ..de maga az Android réteg maradjon a gyári, bármikor frissíthető verzió. Android vs iPhone: Úgy gondolom, hogy jót tesznek egymásnak. Egyik rúgdossa a másikat és ez nekünk csak jó. Én az Android-ot szeretem és ismerem sokkal jobban. Ennek vannak technikai és érzelmi okai is, amikben sosem fog mindenki egyetérteni. Nem gondolom, hogy az egyik rövidesen megsemmisítené a másikat, de ezt nem is bánom.

 

Eddig a vélemény. Remélhetőleg az iphone-os fejlesztők is hamarosan válaszolnak, úgyhogy még teljesebb lehet a kép a Froyóval kapcsolatban.

Címkék: dev mobil android froyo
2010.05.25. 10:44. írta: hírbehozó

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Engem ez tart még mindig távol az Androidtól:

"Nagy hiányosságnak tartom a mai napig, hogy az Androidban huszadrangú a felület folyamatossága. Figyeljük csak meg az iPhone-t. A legelső, leglassabb iPhone is egyet elmondhat magáról: a felület nem akad. Ordít róla, hogy ez a legfontosabb cél. Az 1GHz-es Snapdragon processzor sem tudja pótolni ezt a megközelítést és a 2GHz-es sem fogja."
A fragmentációt viszonylag egyszerűen kezelni lehet. Meg kell változtatni az opensourse licenc feltételeit. Azaz aki az Androidot alkalmazta a termékében, köteles az új rendszer hivatalos bemutatását követő 2 hónapon belül elérhetővé tenni a frissítést a saját termékén mondjuk 10-12 generációig. Ehhez pedig ki kell dolgozni a megfelelő szankciórendszert, hogy a gyártók ne vegyék félvállról a határidőt (kötbér, stb.) Nyilván ez a kis szereplők kiesését eredményezné, másfelől akik bennmaradnak, minőségi terméket állítanának elő a szoftver terén is.
"Én 8bit-es demo coderként kezdtem. Ami ott nem fért bele 50 frame/sec-be, az nem volt még kész"

25 frame/sec. szvsz
Szokás kiemelni, de nem hiszem, hogy fejlesztés szempontjából túlzott tragédia lenne, hogy az 1.5-ön is érdemes hogy fusson. Egyrészt nem olyan gyakori, hogy az 1.5 kevés lenne, másrészt könnyen megoldható, hogy ugyanaz az app fusson 1.5-ön is, de adott esetben kihasználja az újabb dolgokat is.

A komoly probléma, hogy most már közel másfél éve semmi hír a fizetős Market bővüléséről, sem vásárolni nem tudunk, sem eladni. Nekem nagyon úgy tűnik, hogy ez nem bénázás hanem egy szándékos stratégia része. Egyrészt az ingyenes tartalom bővüljön, másrészt a programon belüli reklámozásra legyenek nagyon sokan rákényszerítve. Hiszen ez a Google nagy jövedelemforrása és nem a 30% lecsípése.
"Elég, ha csak egy példát említek itt: A HTC saját Android változatai, amiket a csodálatos Sense UI-ról szoktunk megismerni. Ez a felhasználóknak örömöt, a kompatibilitást hiába kereső fejlesztőknek pedig rengeteg többletmunkát okoz."

Ezt nem teljesen értem. A sense miért okozna további fregmentációt, kompatibilitási problémákat? Ez csak egy felület, az OS ugyan az.

Egyébként én azon az állásponton vagyok, hogy minimum 2.1-re kell fejleszteni, mert minél több program nem tud futni 1.x-es androidon, annál nagyobb a nyomás a gyártók felé, hogy kiadjanak új romokat.
@Álmos: Ezt én sem értem, hogy mi a problémát okoz a Sense UI.
Elveszted a potenciális felhasználóid 2/3-át, ilyen áron nem akarsz nyomást gyakorolni.
@Nakhchivan: amíg nem tudok a marketen árulni, addig nekem úgyis mindegy.. :( Ennek kéne leginkább változnia.
Sense UI legnagyobb hibája, h nem rá épül az android os-re hanem bele. ez negy kár (magyarán nem kikapcsolható, nem csak egy egyszerű skin alkalmazás - holott a marketben látható, megoldható lenne)
@smidgen: Ok, de fejlesztés során milyen gondot okozott ez és hogyan oldottad meg?
@smidgen: ezt nem értem. Ugyan (egyelőre) nincs sense-es telóm, de én úgy tudom kikapcsolható, mivel csak egy egyszerű "skin alkalmazás":

www.youtube.com/watch?v=cNQYjiTjfEY
Android fejlesztői szemmel: a sense ui nem "csak" egy felület. Mélyen belenyúl az oprendszerbe.
Több anomáliát is köszönhetünk neki, amik a fejlesztés során, csak a tesztelésnél derülnek ki(vagy nem)...már ha a fejlesztőnek van kapacitása (ismerőse telefonnal), hogy több fajta telefonon is tudjon tesztelni.
Ha csak egy fajta telefonon fejleszt az ember, ezekre sosem derül fény, csak ha a userek elkezdik dobálni fikázó maileket, vagy rosszabb esetben a marketen az 1 csillagokat, és a "destroyed my phone" kommenteket. Még ha jó ötlete is volt az embernek, ez lehet egy app vége.

Amibe én belefutottam: prohardver apróhirdetés menedzselő programnál a userek nem tudnak belépni(egyszerű http post). Nálam Heron működik. Hónapok óta próbálom (sikertelenül) reprodukálni a hibát.

Vagy mondjuk a t-mobil pulson a hang lejátszással vannak gondok, nem indul el "időben" a hanglejátszó. Előfordulhat pár ms késés, és ezt lehet, hogy a felhasználó nem veszi észre. Pl ahol az ui-n a gomboknak van egy rövid (pár ms)csipogás hangeffektje(ami egy eléggé általános dolog), akkor az egy az egyben "kimaradhat" a pulson.

Szóval a komoly fejlesztés androidra úgy kezdődik, hogy végy n db telefont...ezért baj a fragmentálódás. Ha ez nem lenne, akkor a kezdeti fejlesztési költségek a 0-hoz közelítenének(android sdk,ubuntu,eclipse), és a tesztelés is lényegesen gyorsabb lenne.
@sazabi: ha jól értem, még nem sikerült rájönni, hogy mi a bug pontosan. Akkor miből gondolod, hogy a sense-nek köze van hozzá?
@Álmos: mert ha nálam és az emulátoron megy, akkor máshol is mennie kéne :)
De átfogalmazom: izoláltam a (valószínűleg)bugos részt, csak reprodukálni nem sikerült.
Szóval ebben az esetben az emulátor és a hero+sense hibatűrőbb mint a többi telefon.
@sazabi: de ha az emulátorban és a Sense-es telódon is jól megy, akkor valószínűbb, hogy az a készülék a bugos, ahol a hiba fellép. Ilyen Pulse szintű cuccok esetében ezen sajnos nem is csodálkoznék. De a lényeg, hogy NEM a Sense okoz kompatibilitási problémákat, hiszen pont azt mondod, hogy a Sense-es készülék működött a specifikációknak megfelelően :)
@Álmos: szerintem az is hiba, ha valami túl jól működik, mert akkor nem tudsz a többi hibás készülékkel rendesen dolgozni :)
A 2.2 eljöveteléről hogyan fog értesülni az egyszeri Nexus One felhasználó. Meg fog jelenni a piacon a letöltések között? E-mailben kapok egy címez, ahonnan letölthetem? Egy este, miközben alszom, egyszer csak apró, zöldszínű robotocskák jelennek meg az éjjeliszekrényemen pihenő telefonom körül, és feltelepítik nekem rá?
@Gaboro: Automatikusan megjelenik egy üzenet egy 'Install now'gombbal (OTA update). Vagy már régen letöltötted és magad telepítetted kicsit bonyolultabban (Manually Update Your Nexus One To Android 2.2 Froyo).
@Nakhchivan: Kedvelem az egyszerű megoldásokat. Megvárom az üzenetet.

Köszönet!
@Álmos 2010.05.25. 16:31:03:

Akkor mostmár elméletileg (mivel a SenseUI "külön programcsomag" lett) át lehet ezt tenni ROM módosítás nélkül más telefonokra, pl HTC G1 vagy Motorola Droid? Ezt a lépést azért nem értem, mert ugye a SenseUI (avagy a korábbi nevén RosieUI) a HTC névjegye, és ha jól tudom le is védette, ergó más telefonra nem lehetne csak úgy rátenni. Viszont hogyha külön alkalmazásként teszik is bele (habár egyes részei, a fentebb is említett rendszerbe babrálós részcsomagok, még mindig nehezebben hozhatók át), azzal elviekben a saját jogvédettségüket sértik meg, nem? Mivel könnyen hozzáférhetővé teszik, ezáltal szinte segítő kezet nyújtanak a lelkes XDA-s meg MoDaCo-s moddereknek a SenseUI portolásában. Jó megértem a lépés számukra profitáló oldalát, azaz kevesebb lesz azon készülékek száma, ami elveszti a garanciát ROM modding miatt, és még több vásárlója lesz mert végülis szabad kezet ad nekik a választásban, amit eddig nem tehettek meg, de mégis a hátrány nagyobb mint az előny!
Egy példa arra hogy a Sense UI nem kompatibilis teljesen az Android-al. Ha kódból e-mail-t akarsz küldeni akkor ACTION_SEND intent-et használsz Android-ban (a megfelelő adatokkal). Ez az intent megnyitja az e-mail kliens-t (ha több is van választhatsz). Ez működik minden e-mail kliens-el, kivéve a HTC Mail-el ami történetesen az alapértelmezett a Sense UI-on. Arra egy más módszer van hogy előhozd és ezzel ugrott is a kompatibilitás.
@ern0: nevicc moricz!! pal/secam 25 fps ntsc 30fps
Huawei gyártotta Vodafon845-ösömbe, hogyan frissíthetem az Androidot 2.2-re?