Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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ályhierarchiaCBase
CApaApplication
AppDllUid()
CApaDocument CCoeAppUi CCoeControl
Draw()
CEikApplication
CreateDocumentL()
CEikDocument
CreateAppUiL()
CEikAppUi
HandleCommandL()
CCoeAppUiBase
CAknApplication CAknDocument CAknAppUi
Application architecture,
Control environment
Uikon (Eikon)
Avkon (Series 60)
Alkalmazás megfelelı osztályai
Core
GUI
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
� 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
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
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,00.htm
Érdekességek
Windows 3.1 Nokia N95-ön
VMware MVP: Windows CE és Android egyszerre Nokia N800-on