Mobil operációs rendszerek Hidasi Balázs Szendrei Gábor
Mitıl okos egy telefon? Nem egyértelmően meghatározható Leginkább: Mobiltelefon fejlett képességekkel, már-már PC szerő funkcionalitással Függ magától a készüléktıl és az OS-tıl is Nincs rá standard, hogy mikortól nevezünk egy mobilt okosnak Alap követelmény: fusson rajta multitask oprendszer Ma már szinte minden telefonra jellemzı És akkor az iphone okos? Jelenlegi smartphone OS platformok Symbian Jelenleg: S60 és UIQ, régebben az S80 is RIM Blackberry Windows Mobile iphone OS Linux Palm OS Brew Android
Világpiac: Okostelefon eladások végfelhasználóknak, operációs rendszer szerint, 2007 2009. március
Világpiac: Okostelefon eladások végfelhasználóknak, operációs rendszer szerint, 2008 2009. március
Mobil operációs rendszerek sajátosságai (I) Jó energiagazdálkodás, olcsó multitasking Eszközök korlátai Kis számítási kapacitás Kismérető memória Kis akkumulátor kapacitás Szolgáltatások eléréséhez kliens szerver architektúra Megbízhatóság Nincs lehetıség utólagos javításra (SP, patch) Erıforrásvesztés (memóriaszivárgás) nem lehet Magas rendelkezésreállás Ritkán kelljen rebootolni Gyors legyen a bootolás
Mobil operációs rendszerek sajátosságai (II) PIM funkciók OS szintő kezelése Naptár, kontaktok, jegyzetek, stb. Legfıbb cél: kommunikáció Változatos típusok támogatása GSM, UMTS, WLAN, Infra, Bluetooth, stb. Kapcsolatok rugalmas kezelése Bármikor megszakadhat Offiline/online üzemmód Testreszabhatóság Új eszközökhöz Több gyártó használhatja
Symbian - történelem Az elsı mobil operációs rendszer 1980-as évek: Psion cég megalapulása Menedzser kalkulátorok Flight simulator 1990-es évek: 90: 16 bites oprendszer (SIBO) 97: 32 bites oprendszer (EPOC) 98: Symbian társaság: Psion, Nokia, Erricson, Motorola 2000: Symbian 6.0 01: Symbian 6.1 02: Symbian 7.0 04: Symbian 8.X 05: Symbian 9.0-9.1 06: Symbian 9.2-9.3 07-08: Symbian 9.4-9.5 A 9.7-estıl a megnyitását tervezik
Symbian - architektúra
Symbian - osztályhierarchia CBase Core CCoeAppUiBase Application architecture, Control environment CApaApplication AppDllUid() CApaDocument CCoeAppUi CCoeControl Draw() Uikon (Eikon) CEikApplication CreateDocumentL() CEikDocument CreateAppUiL() CEikAppUi HandleCommandL() Avkon (Series 60) CAknApplication CAknDocument CAknAppUi GUI Alkalmazás megfelelı osztályai
Symbian - platformok Nokia S60 Jelenleg az összes Nokia okostelefonon ez fut Legfrissebb: 3rd Edition FP2 (2008) S80 A communicatorok korábbi platformja (nagy képernyı, teljes billentyőzet) Az E90 debütálása óta nem létezik (az már S60-nal jelent meg) N-Gage S60-ra épülı önálló játék-platfrom (2003-2005) Terv: betörés a kézi konzolok piacára 2007-tıl beépítve az S60 szolgáltatásai közé Az S40 nem okostelefon platform UIQ Technology (tulajok: Sony Ericsson, Motorola) UIQ (User Interface Quartz) Az elsı UIQ 2.0-s telefon: Sony Ericsson P800 (2002) Legfrissebb: UIQ 3.3 (2008) Használja: Sony Ericsson, Motorola, BenQ
Symbian S60 felhasználói szemmel Kényelmesen használható UI Logikus menü struktúra Kezdetben is szép UI A kezelés nagyban hasonlít a nem okos Nokia telefonokra (könnyő megszokni) Gyorsabb (volt) a legtöbb konkurensnél A konkurensekhez képest sok szolgáltatás és alkalmazás egészen néhány évvel ezelıttig A konkurensek kezdik behozni a lemaradást A Nokia nem tudja megırizni a fölényét Néhány rosszabb minıségő telefon Kevés fejlesztés a szolgáltatások terén Más platformokra is egyre több alkalmazás jelenik meg Elmaradás a legújabb technológiák terén (pl.: érintı képernyı)
Symbian fejlesztıi szemmel (I) Symbian C++ nyelven programozható C++ -ra hasonlító nyelv A Java ME alatt írt programok az összes java kompatibilis telefonon (lényegében: minden mobil) futnak Kis teljesítményő, jócskán elavult C++ fordítóra optimalizálták Mára feleslegessé vált megkötések Kétszeres konstruktor Nincs kivételkezelés Sok alacsony szintő megoldás Flag sorozatok beállítása Okos megoldások Beépített string osztályok Aszinkronitás kezelése könnyő (ActiveObject) Sok újabb funkció magas szinten elérhetı (pl.: kamera kép mentése egy függvény hívással)
Symbian fejlesztıi szemmel (II) Fejlesztés menete Program írása Tesztelés emulátoron Tesztelés mobil eszközön SDK Ingyenesen letölthetı minden verzióhoz Nagyszámú írásos anyag Hivatalos demók, sugók, tutorialok Aktív fejlesztıi közösség: http://forum.nokia.com Fejlesztıkörnyezet Ma már teljesen ingyenes rengeteg támogató funkcióval Korábban csak az alap változat volt ingyenes
Symbian fejlesztıi szemmel (III) Emulátor Kommunikáció, kamera tesztelésére nem használható Kivétel: 3rd Edition MR, ami a neten keresztül a WLAN kapcsolatot szimulálja Néha eltérıen viselkedik, mint a tényleges készülék Debuggolni viszont csak itt hatékony Debuggolás eszközön Elvileg a mostani fejlesztıi környezet támogatja Szervizkábeles összekötés Korábbi telefonok esetén nem megoldható Felugró figyelmeztetéseket helyezhetünk el a kódban, és így követhetjük a program futását, ha már sejtjük a hiba helyét
Symbian fejlesztıi szemmel (IV) Kompatibilitás 1st Edition és 2nd Edition FP3 között visszamenıleg nagyjából van Itt is van sajnos, ami másként mőködik 3rd Edition teljesen inkompatibilis a korábbiakkal Korábbi programok nem futnak Jelentıs változások jelentek meg az alkalmazások szerkezetében Az OS belseje Sok helyen furcsa megoldások ( gányolás ) Egy adott készülékre az OS a stabil verzióba írogatással, részek kihagyásával készül Így elvileg az azonos verziószámú OS-t futtató különbözı készülékek között is kisebb inkompatibilitások vannak Curse of silence
Symbian összefogalás Fejlesztı Elavult megoldások miatt a fejlesztés nehézkes a natív nyelven De éppen emiatt keresett tudás Inkompatibilitás miatt egy dolgot többször is meg kell csinálni Felhasználó Korábban kétségkívül a legkedveltebb platform sok szolgáltatással és alkalmazással Az újítások elmaradtak, más platformok ma már többet nyújthatnak Egyes készülékek gyenge minısége elrettenti a vevıket A korábbi piacvezetı elveszíti az elınyét A versenytársak lassan elérték és túlszárnyalták A számítási kapacitás növekedésével a Symbian megkötései értelmetlenül megnehezítik a fejlesztést Az alapoktól történı újraírás segíthetne, de túl sokáig tartana És közben itt az új vetélytárs, a teljesen új Android
Android - történelem 2005 július: a Google felvásárolja az Android Inc-t 2007. november 5: Open Handset Alliance megalakulása Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel, NVIDIA 2007. novembere: elızetes SDK és emulátor elérhetıvé tétele a fejlesztıknek 2008 elején: Android Developer Challenge Megindul az alkalmazások fejlesztés már a készülékek kiadása elıtt 2008. október 21: Megnyitják az Android platform teljes forráskódját 2008. december: új tagok lépnek be az OHA-ba Sony Ericsson, Vodafone, ARM, Asustek, Toshiba, Garmin, stb. Összesen 34 tagja van az OHA-nak Az elsı (és eddig egyetlen) készülék, a HTC Dream 2008. októberben jelent meg az USA-ban
Android - alapok Mobil platform Linux alapokon Rengeteg elérhetı szolgáltatás és függvénykönyvtár (API) A kód nagy részét a Google-nél írták Összes Google szolgáltatás elérhetı (pl.: Google Maps API) Bár Linux alapú, de annyira speciális, hogy más Linux könyvtárak/alkalmazások nem használhatóak rajta Java nyelven programozható A byte kód a kis erıforrás igényő Dalvik virtuális gépen fut Minden alkalmazásnak saját kis virtuális gép Mindenki csak a saját dolgait látja De nem kompatibilis a Java SE/ME szabványokkal, saját, a Google által kifejlesztett library-ket használ C-ben is programozható és így a legalacsonyabb szintő funkciók is elérhetıek, de ez a mód nem támogatott Nagyon nyitott Akár a menürendszer is lecserélhetı
Android - architektúra
Android alkalmazásfejlesztés (I) Komponens szemlélet Alkalmazás bármely kis része elindítható (megfelelı jogosultság esetén) Újrafelhasználhatóság Nincs belépési pont (main) Komponensek Activity Vizuális UI, amin keresztül a user valamit megtehet (UI+tevékenység) Pl.: Zeneszámok listája, amibıl választva elindul a lejátszás Service Háttérben meg nem határozott ideig futó folyamat Pl.: A zenelejátszóban a lejátszás folyamata Broadcast receiver Broadcast eseményeket figyelı és arra reagáló komponens Pl.: Ha merül az akku, a zenelejátszó lejjebb veszi a hangerıt, vagy leáll Content provider Alkalmazás adatainak egy részét elérhetıvé teszi más alkalmazások számára Pl.: Külön programból mehet a tracklist szerkesztése
Android alkalmazásfejlesztés (II) Biztonság Minden alkalmazás külön fut Külön processz Külön Java VM Alkalmazás adatait alapesetben csak az alkalmazás látja Linux ID minden alkalmazásnak és megfelelı jogosultságok beállítása Erıforráskezelés Alkalmazás processze elindul, ha bármely komponensét el kell indítani Leáll, ha már nincs rá szükség, vagy ha szükség van az erıforrásokra Az OS jól kezeli: nehéz memóriát szivárogtatni Fejlesztés Java nyelven UI egyszerően leírható XML-ben Az egyik legjobb emulátor Még a telefonok közti kommunikáció is szimulálható Legfrissebb SDK elérhetı Rengeteg tutorial, leírás, példa alkalmazások Folyamatosan növekvı fejlesztıi közösség
Android az elsı készülék (HTC Dream, T-Mobile G1) Megjelenés 2008. október: USA, UK 2009. eleje: Más EU országok Képességek 3.2 érintésérzékeny képernyı QWERTY billentyőzet Micro SD bıvíthetıség Ma már szokásos dolgok: kamera, GPS, gyorsulásmérı, stb. Vegyes fogadtatás Sok panasz a kialakításra (mőanyag, nem túl tartós) GPS-hez kihajtható antenna van Az Android felületét általában dícsérték Átlátható, szép, könnyen kezelhetı Szolgáltatások tetszettek a tesztereknek
Android - összefoglalás Kétségkívül a legmodernebb és legígéretesebb platform Könnyő alkalmazást fejleszteni Komponens alapú fejlesztés Java alapú kódolás Mőködik a debuggolás emulátoron Nyílt forráskód Veszély a szétbarmolásra Esély a folyamatos fejlıdésre, gyors hibajavításra A Google áll mögötte Webes szolgáltatások beépítve Népszerő, így egyfajta garancia a minıségre Könnyen kezelhetı, letisztult felület Komoly esély arra, hogy gyorsan egyeduralkodó lesz, hasonlóan az 2-5 évvel ezelıtti Symbianhoz Az átállást megnehezíti a megszokás és a platformok közötti inkompatibilitás
Windows Mobile hardver platformok Pocket PC Eredetileg erre tervezték Ezközök mobil telefon képességgel és anélkül Smartphone Pocket PC 2002-vel jelent meg Eredetileg érintıképernyı nélkül Alacsony felbontású kijelzıvel Portable Media Center (2006-ig) Windows Media Center és WMP integráció Zenék hordozása, Zune elıdje Autók (2006-tól) Kommunikáció, szórakoztatás, információ Ford SYNC
Windows CE Operációs rendszer minigépekre és beágyazott rendszerekhez Külön OS, nem lecsupaszított Windows Real-time rendszer, determinisztikus IT Futtatási egység: szál Windows CE for Handheld PC 3.0 (WinCE 2.11 mag)
Windows CE 4.2 architektúra
Pocket PC 2000 Windows CE 3.0 mag Windows Mobile kezdete UI újratervezése Billentyőzet nélkül QVGA (240x320) Compact Flash, MMC MIPS/ARM/SH-3 Esztétikai hasonlóság Win98/ME/2000
Windows Mobile 2003/SE Windows CE 4.2 mag Bluetooth, Pocket Outlook, Pocket IE fejlesztése WMP 9, MIDI csengıhangok Álló/Fekvı nézet Pocket PC-re, VGA Wi-Fi Protected Access (WPA)
Windows Mobile 5.0 Windows CE 5.0 mag.net Compact Framework Nem felejtı memóriák használata Office Mobile WMP 10 DirectShow DirectPush
Windows Mobile 6.0/6.1 Windows CE 5.2 mag Windows Mobile 6.0: Esztétikailag Vistára hasonlít Javított stabilitás AJAX, JavaScript támogatás HTML email Windows Mobile 6.1: Teljesítmény javítás Új home screen Push mail szávszélesség optimalizálás Windows Mobile 6.1 Professional Windows Mobile 6.1 Standard
Windows Mobile 6.5 Kisebb frissítések a 6.1-hez képest My Phone (SkyBox) Windows Marketplace for Mobile (SkyMarket) Egyszerőbb használat ujjal Teljes IE 6 Zune funkcionalitás várható Widget engine
Windows Mobile felhasználói szemmel Lassan fejlıdik a felhasználói felülete Kevés újítás az évek során Sok gyártó saját felületet fejleszt Eddig túl kicsi elemek a felületen az ujjal érintéshez 6.5 már javít ezen Nincs multi-touch 3 évvel lemaradva 2010-ben megjelenı 7.0 remélhetıleg már támogatni fogja Taszkok a háttérben Rengeteg alkalmazás nehezen hozzáférhetıek az átlag felhasználónak Windows Marketplace for Mobile 30/70% bevétel megosztás Fix díj/5 db alkalmazás feltöltés (beleértve a frissítéseket is!)
Window Mobile fejlesztıi szemmel Natív kód: Microsoft Visual C++ Nehezebben visszafejthetı Menedzselt kód:.net Compact Framework.NET Framework része Közös komponensek Egyszerőbb fejlesztés Szerver oldali kód Internet Explorer Mobile Widget engine Web technológiák (HTML+JavaScript) Home screen pluginekként, vagy teljes képernyıs alkalmazásokként W3C szabvány alapján Windows Mobile SDK-k Emulátor Debugger Lelkes fejlesztıi közösségek (pl. xda-developers.com, HTC)
Windows Mobile - összefoglalás Érett platform Rengeteg hardveren elérhetı Beépített céges technológiák (Exchange stb.) Ismerıs fejlesztı környezetek (Visual Studio) OEM-ek által készített saját IU felületek A konkurenciához képest elmaradó felhasználói élmény Telefonként néha nehézkesen használható Sok alkalmazás, de jelenleg nehezen elérhetıek Csak rezisztív érintıképernyı-technológiát támogat
Bevezetı Apple által fejlesztett OS az iphone-ra és az ipod Touch-ra 2007. január 9: készülék bejelentése 2007. június 29: elsı eladások (USA) 2007. november: Európa nagyobb piacai 2008. július 11: iphone 3G megjelenése 2009. nyár: iphone 3.0 firmware 2009. márc. 17: 25.000 alkalmazás, 800 millió letöltés, ~15 millió eladott készülék
iphone OS felhasználói szemmel (I) Felhasználói felület Újdonság, új kategóriát teremt Közvetlen manipuláció kézzel Csúsztatás, érintés, összecsípés, stb. Elemek: csúszkák, gombok, kapcsolók Érintésre azonnali reakció, kapacitív képernyı Multi-touch támogatása Gyorsulásérzékelı képernyı fogatására
iphone OS felhasználói szemmel (II) A képernyı részei: Állapotsor Térerı, hálózat, idı, aksi Home screen ( SpringBoard ) Alkalmazások ikonjai Dokkoló Gyakran használt ikonok Korlátozott multitasking Virtuális billentyőzet Beépített alkalmazások E-mail (html, pdf, doc, xls, ppt, push) Fényképezı (videó felvétel nem támogatott; geo tagging)
iphone OS 3.0 Rendszerszintő keresés Kivágás és beillesztés (szöveg, fényképek, SMS) MMS Push értesítések Alkalmazáson belüli micropayment Jobb GPS kezelési lehetıség az alkalmazásoknak Utca szintő navigáció Nem lehet a Maps programra ráépíteni P2P networking Közvetlen adatcsere Többszereplıs játékok Stereo Buetooth támogatás
iphone OS fejlesztıi szemmel (I) ARM alapú CPU OpenGL ES 1.1 (PowerVR 3D grafikus gyorsító hardver) Natív, harmadik fél által fejlesztett alkalmazások: csak az App Store-on keresztül támogatottak hivatalosan jailbreaking (Installer) Web alkalmazások AJAX, stb. Safari Az egész OS kevesebb mint fél GB-ot foglal A Mac OS X-bıl származik, közös Core OS rész ( Darwin ) De az alkalmazásokat külön iphone-ra fejleszteni és fordítani 4 réteg: Cocoa Touch Media Layer Core services Core OS
iphone OS fejlesztıi szemmel (II) Cocoa Touch Multi-touch események és vezérlık Gyorsulásérzékelı támogatás Kamera támogatás Különbözı nyelvek kezelése Media Layer OpenAL Hang rögzítés és keverés Videó lejátszás Képformátumok támogatása Quartz (2D renderelés és composition engine) Core Animation OpenGL ES
iphone OS fejlesztıi szemmel (III) Core Services Hálózatkezelés Beágyazott SQLite adatbázis kezelı GeoLocation Szálak kezelése Core OS (OS X Kernel) TCP/IP Sockets Power Management Fájl rendszer Biztonsági funkciók
iphone OS fejlesztıi szemmel (IV) 2008. március 6: iphone SDK Natív alkalmazások fejlesztése Intel Mac és Mac OS X Leopard szükséges a fejlesztéshez Xcode fejlesztıkörnyezet iphone szimulátor Maga az SDK ingyenes Fejlesztéshez be kell lépni az iphone Developer Programba App Sotre szolgáltatások 30/70% bevétel megosztás Ingenes alkalmazások után nem kell fizeni Engedélyeztetés GPLv3 Nem használható (aláíró kulcsokat is terjeszteni kéne)
iphone OS - összefoglalás Fejlıdı, népszerő platform Exchange, Cisco VPN, távoli adatmegsemmisítés Kapacitív érintıképernyı-technológia támogatása Multi-touch támogatása Nincs hardver választék Nem biztos, hogy mindenki igényeit kielégíti Vannak még hiányosságok (pl. videó rögzítés)
Források Wikipedia http://forum.nokia.com http://www.uiq.com http://www.android.com http://developer.android.com http://www.hpcfactor.com/support/windowsce/ http://msdn.microsoft.com/en-us/library/ms920098.aspx http://asia.cnet.com/reviews/mobilephones/0,39050603,62052293,0 0.htm
Érdekességek
Windows 3.1 Nokia N95-ön
VMware MVP: Windows CE és Android egyszerre Nokia N800-on