Systemy operacyjne dla telefonów komórkowych i urządzeń...

36
Systemy operacyjne dla telefonów komórkowych i urządzeń typu smartphone Architektura, rozwiązania, koncepcje, rozwijanie aplikacji Marcin Erdmann 2 kwietnia 2008

Transcript of Systemy operacyjne dla telefonów komórkowych i urządzeń...

Page 1: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Systemy operacyjne dla telefonów komórkowych iurządzeń typu smartphone

Architektura, rozwiązania, koncepcje, rozwijanie aplikacji

Marcin Erdmann

2 kwietnia 2008

Page 2: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Plan prezentacji

1 Wstęp2 Definicje3 Podział4 Symbian OS5 Windows Mobile6 iPhone OS7 Android8 Prezentacja programów dla Androida

Page 3: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Smartphone

Smartphone to telefon komórkowy oferujący zaawansowanemożliwości nie spotykane w zwykłych telefonach, częstoposiadajacy funkcjonalność telefonu, organizera i uproszczonychprogramów znanych z komputerów osobistych. Przyjmuje się, żesmartphone posiada kompletny system operacyjny i udostępniaustandaryzowany interfejs programistyczny umożliwiając tymsamym rozwijanie aplikacji.

Page 4: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Podział systemów operacyjnych I

System operacyjny

Umożliwia uruchamianie kodu natywnego dla danego sprzętu

Platforma programistyczna

Nie umożliwia uruchamiania kodu natywnego dla danego sprzętu ajedynie kod interpretowany

Page 5: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Przykłady I

Systemy operacyjne

Access Linux Platform

Openmoko Linux

iPhone OS

Palm OS

Symbian OS

Qtopia

Windows Mobile

Platformy programistyczne

Android

LiMo Platform

Blackberry OS

Page 6: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Podział systemów operacyjnych II

Zamknięty system operacyjny

Nie umożliwia uruchamiania własnych aplikacji

Otwarty system operacyjny

Umożliwia uruchamianie własnych aplikacji

Page 7: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Przykłady II

Zamknięte systemy operacyjne

ISA („Nokia OS”)

Symbian do wersji 5.0 włącznie

iPhone OS do wersji 1.1.4 włącznie

Otwarte systemy operacyjne

Pozostałe

Page 8: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Podział systemów operacyjnych III

Mobilny system operacyjny ogólnego przeznaczenia

Może być również uruchamiany na urządzeniach nie posiadającychfunkcjonalności telefonu komórkowego

System operacyjny dla urządzeń smartphone

Zaprojektowany specjalnie dla urządzeń posiadającychfunkcjonalność telefonu komórkowego

Inne

Systemy dla urządzeń multimedialnych z dodaną funkcjonalnościątelefonu komórkowego

Page 9: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Przykłady III

Mobilne systemy operacyjne ogólnego przeznaczenia

Access Linux Platform

LiMo Platform

Openmoko Linux

Palm OS

Qtopia

Windows Mobile

Page 10: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Przykłady III

Systemy operacyjne dla urządzeń smartphone

Android

BlackBerry OS

Symbian OS

Inne

iPhone OS

Page 11: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Podział systemów operacyjnych IV

Proprietary

Windows Mobile

Palm OS

BlackBerry OS

iPhone OS

Symbian OS

Page 12: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Definicje - Podział systemów operacyjnych IV

Open source

Openmoko Linux

Acess Linux Platform

LiMo Platform

Inne

Android

Qtopia

Page 13: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Opis

Źródła nie są otwarte

W lutym 2007 roku 67% rynku urządzeń smarthponeposiadało system Symbian OS

Złożona architektura

Nieintuicyjne rozwijanie aplikacji

Silnie ukierunkowany na wydajne korzystanie z zasobów

Page 14: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Historia I

Wywodzi się z organizerów Psion z lat 80. i 90.Czerwiec 1998 - Założenie Symbian Ltd.

EricssonNokiaMotorolaPsion

Listopad 2000 - Pierwszy zamknięty telefon Ericsson R380trafia na rynek z systemem ER5u

Czerwiec 2001 - Pierwszy otwarty telefon Nokia 9210Communicator z systemem Symbian 6.0

Początek 2003 - Symbian 7.0, dodano EDGE, IPv6, Java ME

Page 15: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Historia II

2004 - Psion sprzedaje udziały w Symbian Ltd.

2004 - Symbian 8.0, dodano CDMA, 3G, OpenGL ES

Początek 2005 - Symbian 9.1, dodano obowiązkowepodpisywanie kod

Lipiec 2006 - Symbian 9.3, dodano WiFi, HSDPA

Marzec 2007 - Symbian 9.5, dodano telewizję cyfrową, usługilokalizacji, SQLite

Page 16: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Architektura

Warstwa interfejsu użytkownikaWarstwa usług aplikacyjnych

Java ME

Warstwa systemu operacyjnego

Warstwa usług podstawowych

Usługi jądra i warstwa interfejsu sprzętowego

Page 17: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Jądro

Szeregowanie zadań

Zarządzanie pamięcią

Sterowniki

Określane mianem mikrojądra

Page 18: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Warstwa usług podstawowych

Najniższa warstwa dostępna z poziomu kodu użytkownika

File Server

User Library

Plug-in Framework

Central Repository

DBMS

Usługi kryptograficzne

Page 19: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Rozwijanie aplikacji

Java ME

A to temat na inny wykład, gdyż Java ME nie jestcharakterystyczna tylko dla Symbiana...

C++

Dobre wsparcie dla IDE(CodeWarrior, Carbide.c++,Carbide.vs, Borland IDE for Symbian OS, ...)

Długi czas wejścia w technologięUżywanie charakterystycznych terminów i technik

DescriptorsLeavesCleanup StackActive ObjectsC Classes, T Classes, R Classes

Programowanie zdarzeniowe

Page 20: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Symbian OS - Moje doświadczenia

Pobrałem SDK i Carbide.c++

Uruchomiłem IDE i wygenerowałem domyślny projekt z wzorca

Co było dalej?

Page 21: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Windows Mobile - Opis

W założeniu ma przypominać Windowsy zarówno zfunkcjonalności jak i wyglądu

Zawiera mobilne wersje oprogramowania z komputerówosobiostych (WMP, Office, ...)

Przeznaczony dla palmtopów, smartphonów, odtwarzaczymultimedialnych i komputerów pokładowych w samochodach

Page 22: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Windows Mobile - Historia

Kwiecień 2000 - Pokcet PC 2000 oparty na Windows CE 3.0

Październik 2001 - Pocket PC 2002 oparty na Windows CE 3.0

Czerwiec 2003 - Windows Mobile 2003 oparty na Windows CE4.20

Maj 2005 - Windows Mobile 5.0 oparty na Windows CE 5.0

Luty 2007 - Windows Mobile 6.0 oparty na Windows CE 5.0

Każda kolejna wersja dodawała dużo nowej funkcjonalności imiała przypominać kolejne wersje systemu Windows dlakomputerów osobistych (2000, XP, Vista)

Page 23: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Windows Mobile - Rozwijanie aplikacji

Wspierane IDE to oczywiście Microsoft Visual Studio

Możliwość tworzenia aplikacji kompilowanych do kodunatywnego pisząc w Visual C++

Możliwość tworzenia aplikacji zarządzanych pisząc w językach.NET Framework

Dostępność SDK wraz z emulatorem

Przed Windows Mobile 2003 aplikacje rozwijało się przyużyciu Microsoft eMbedded Visual Tools

Page 24: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

iPhone OS - Opis

Pierwotnie przeznaczony dla produktu firmy Apple pod nazwąiPhone

Obecnie jest także używany w iPodach touch

Oficjalnie wydany 6 Marca 2008 roku wraz z SDK

Wcześniej iPhone nie umożliwiał legalnego wgrywaniawłasnego oprogramowania

Pierwsze wersje zawierały dużo błedów

Kolejne wersje dodawały dużo funkcjonalności, zdawałoby sięzwiązanej czysto ze sprzetem, jak np. możliwość ustawieniawiększej głośności

Page 25: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

iPhoneOS - Rozwijanie aplikacji

SDK dostępne od niedawna

Dostęp do SDK kosztuje $100 i jest dostępny dla ograniczonejliczby programistów z USA

Aplikacje rozwijane w Objective-C

Wsparcie jedynie dla Xcode

Rozwijanie możliwe jedynie pod Mac OS X

W przyszłości możliwość sprzedawania swoich aplikacji przezAppStore - Apple bierze 30%, my 70%

Page 26: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Opis

Platforma programowa a nie system operacyjny

Oparta o Linuxa 2.6

Bardzo nowa technologia, w fazie intensywnych testów

Brak dostępnej na rynku implementacji sprzętowej

Kod źródłowy ma zostać w pełni otwarty w 2008r. na licencjiApache v2

Page 27: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Historia

Lipiec 2005 - Google kupuje firmę Android Inc.

Google rozpoczyna prace nad platformą dla telefonówkomórkowych, która ma być w przyszłości open source i jestoparta na Linuxie...

Październik 2007 - Google zaprasza m.in. Intela, Motorolę,T-Mobile i NVidię do Open Handset Alliance, która ma sięzajmować rozwiajaniem Androida

Grudzień 2007 - Pierwsze wydanie Android SDK

Luty 2008 - Publiczna prezentacja pierwszych prototypówdziałających pod Androidem na Mobile World Congress

Page 28: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Odbiór w środowisku

Krytyka, za to że Android tak naprawdę nie jest open source

Początkowy brak systemu do zgłaszania bugów

Niektórzy krytykują brak zgodności Androida z J2ME, ale czyoni rozumieją koncepcję...?

A później wszyscy i tak zaczęli kodować...

... może chcą wygrać ten milion dolarów w Android DeveloperChallenge?

Page 29: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Architektura

Aplikacje

Application FrameworkAndroid Runtime

Core LibraryDalvik Vitual Machine

Biblioteki natywne napisane w C i C++

Warstwa abstrakcji od sprzętu - Linux Kernel 2.6

Page 30: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Dlaczego Linux?

Sprawdzony model sterowników, wiele dostępnych sterowników

Popularność

Dostarcza m.in. zarządzanie procesami, zarządzanie pamięcią,model bezpieczeństwa, funkcje sieciowe

Koncepcje rozwiązań Linuxa są sprawdzone i wielokrotnieprzetestowane

„Wystarczy” zatem dostarczyć urządzenie z działającym nanim Linuxem 2.6 i bedzie można uruchomić na nim Androida.

Page 31: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Biblioteki natywne

Rysowanie (Surface Manager, OpenGL ES, SGL)

Multimedia

SQLite

SSL

Silnik przeglądarki WWW (WebKit)

Page 32: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Dalvik Virtual Machine

Zaprojektowana specjalnie dla urządzeń z ograniczonąpamięcią, mocą obliczniową, baterią

Uruchamia specjalny bytecode, powstający z bytecodu Javyprzy compilowaniu aplikacji

Posiada wysoce zoptymalizowany interpreter bytecodu podwzględem wydajności użycia procesora

Każdy program uruchamiany jest w osobnej instancji maszynywirtualnej

Page 33: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - architektura aplikacji

Activity - jeden ekran interfejsu użytkownika

IntentReciever - uruchamia części aplikacji na zdarzenia

Service - zadanie działające w tle przez cały czas życiaaplikacji

ContentProvider - pozwala dzielić dane między procesami iaplikacjami np. baza kontaktów

Page 34: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Ciekawe rozwiązania

Android dostarcza wiele rzeczy niejako „out of the box”, o którychwcześniej programiści urządzeń mobilnych newet nie śmiali śnić:

Location Manager

XMPP Service

Dziecinnie proste dzwonienie i wysyłanie wiadomośći SMS zpoziomu kodu

Notification Manager

Views (Gallery, Map, Browser)

Page 35: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Rozwijanie aplikacji

Nie ma jeszcze telefonów pod tą platformę na rynku - zostajezabawa na emulatorach

SDK mozna za darmo pobrać ze strony projektu

Aplikacje rozwijane w języku Java

Wsparcie dla rozwijania aplikacji w Eclipse - AndroidDevelopment Tools

Bardzo krótki czas wejścia w technologię

Page 36: Systemy operacyjne dla telefonów komórkowych i urządzeń ...sirius.cs.put.poznan.pl/~inf66233/komorki.pdf · Openmoko Linux iPhone OS Palm OS Symbian OS Qtopia Windows Mobile Platformy

Android - Przykłady aplikacji

No to zobaczmy z czym to sie je...