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
Nincs rá standard, hogy mikortól nevezünk egy mobilt okosnak Alap követelmény: fusson rajta multitask oprendszer
Függ magától a készüléktıl és az OS-tıl is
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
Szolgáltatások eléréséhez kliens szerver architektúra
Megbízhatóság
Kis számítási kapacitás Kismérető memória Kis akkumulátor kapacitás
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
Kapcsolatok rugalmas kezelése
GSM, UMTS, WLAN, Infra, Bluetooth, stb. 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
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
Flight simulator
‘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
CApaDocument
CCoeAppUi
AppDllUid()
CEikApplication
CCoeControl
Draw()
CEikDocument
CEikAppUi
Uikon (Eikon) CreateDocumentL()
CAknApplication
CreateAppUiL()
CAknDocument
HandleCommandL()
CAknAppUi
Avkon (Series 60)
Alkalmazás megfelelı osztályai
GUI
Symbian - platformok
Nokia
S60
S80
Jelenleg az összes Nokia okostelefonon ez fut Legfrissebb: 3rd Edition FP2 (2008) 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
Nincs kivételkezelés Sok alacsony szintő megoldás
Kétszeres konstruktor
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
3rd Edition teljesen inkompatibilis a korábbiakkal
Itt is van sajnos, ami másként mőködik 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ı
Felhasználó
Elavult megoldások miatt a fejlesztés nehézkes a natív nyelven
Korábban kétségkívül a legkedveltebb platform sok szolgáltatással és alkalmazással
De éppen emiatt keresett tudás
Az újítások elmaradtak, más platformok ma már többet nyújthatnak
Inkompatibilitás miatt egy dolgot többször is meg kell csinálni
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
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
Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel, NVIDIA
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
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
Összes Google szolgáltatás elérhetı (pl.: Google Maps API)
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
Service
Háttérben meg nem határozott ideig futó folyamat Pl.: A zenelejátszóban a lejátszás folyamata
Broadcast receiver
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
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
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
Külön processz Külön Java VM
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
Képességek
2008. október: USA, UK 2009. eleje: Más EU országok 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
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
Komponens alapú fejlesztés Java alapú kódolás Mőködik a debuggolás emulátoron
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
Smartphone
Pocket PC 2002-vel jelent meg Eredetileg érintıképernyı nélkül Alacsony felbontású kijelzıvel
Portable Media Center (2006-ig)
Eredetileg erre tervezték Ezközök mobil telefon képességgel és anélkül
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
Eddig túl kicsi elemek a felületen az ujjal érintéshez
6.5 már javít ezen
Nincs multi-touch
Kevés újítás az évek során Sok gyártó saját felületet fejleszt
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
Szerver oldali kód
Közös komponensek Egyszerőbb fejlesztés
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
Home screen („SpringBoard”)
Alkalmazások ikonjai
Dokkoló
Térerı, hálózat, idı, aksi
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
P2P networking
Utca szintő navigáció Nem lehet a Maps programra ráépíteni 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:
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”)
csak az App Store-on keresztül támogatottak hivatalosan „jailbreaking” (Installer)
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