Linux alapú mobiltelefonok (Maemo és a többiek)
Készítette: Kovács Gábor <
[email protected] >
Linux a mobilon előny és hátrány ●
● ● ● ● ●
„nagy fejlesztő csapat” Olcsó „megbízható” Sok felület Sok program Könnyű portolhatóság (vs .NET és a win. mob.)
● ●
● ●
Sokan írtóznak tőle Szétszórt fejlesztőgárda Sok irányzat Parancssor
Milyen Linux alapú telefonok vannak? ●
●
● ● ● ● ● ● ●
Android / Droid → Google (G1,G2, Nexus One), Samsung (Galaxy), HTC (Hero, Tattoo), Motorola Droid, Acer Liquid, … Android + XXX → (+ ZiiLabs) ZiiLabs ZII Trinity, (+ UX) Sony Ericsson Xperia X10, LiMo → Emblaze Mobile First Eise, Samsung M1 Maemo → Nokia (v4 → N800, N810) (v5-> N900) MeeGo → Nokia + Intel ??? WebOS → Palm Pre OpenMoko G(PE)^2, Opie, Angstorm ... (Debian)
A Qt története (mobil) ●
Haavard Nord és Eirik Chambe-Eng 1991 –
● ● ●
●
●
Quasar Technologies → Troll Tech → Trolltech
Linux és Windows támogatás 2001 vége, Qt 3.0, Mac OS X 2008 Nokia, Qt Software majd Qt Development Frameworks (cél Symbian S60 platform) 2009 eleje Nokia Linux alapú telefonokon alkalmazza, Maemo 4, N800, N810, majd Maemo 5 N900 (Gtk alap + Qt-s felület) 2010 február Maemo → MeeGo (Intel-el pusztán Qt-s támogatás)
Qt által támogatott platformok ●
●
● ●
● ●
Qt for Linux/X11 – Qt for X Window System (Unix / Linux) Qt for Mac OS X – Qt for Apple Mac OS X. Support for applications on top of Cocoa APIs Qt for Windows – Qt for Microsoft Windows Qt for Embedded Linux – Qt for embedded platforms (PDA, Smartphone, etc.) Qt for Windows CE – Qt for Windows CE Qt for the S60 platform
Várható platformtámogatások ● ● ●
●
●
●
●
Qt for OpenSolaris – Qt for OpenSolaris Qt for Haiku – Qt for Haiku OS Qt for OS/2 – Still incomplete port to the OS/2 eCS platform. Qt-iPhone – Experimental development of Qt for the iPhone. Android-Lighthouse – Experimental development of Qt for Android Qt for webOS – Experimental development of Qt for webOS on Palm Pre Qt for Amazon Kindle DX – Experimental development of Qt for Amazon Kindle DX.
Qt portolása mobilra (1) ● ● ●
●
●
Főleg Python példakódok Viszonylag rossz dokumentáltság Sokban hasonlít az asztali változatra, de van eltrés bőven (Phonon osztály) Nemszetközi fejlesztőcsapat Magyar érdekeltség: Csipa Attila a Qt példakód portolása QtPython alá mobilra
Qt portolása mobilra (2) ●
Sok eddig „nem létező” eszköz támogatásának igénye: – – – – – –
●
Kamera Érintőképernyő Gyroscope GPS Modem (3G) Bluethoot / Infra
Ezek még nem teljes értékűek
Qt portolása mobilra (3) ● ● ● ●
● ●
Kevesebb erőforrás Kisebb kijelző (nagyobb gombok) „Hatékony” forrás (pl videólejátszás, kódolás) Minden bit kincset ér, optimalizálás / assembly (mostanában már nem divat) Gyorsaság (pl: telefonhívás jön) API-k létrehozása az egyes eszközökhöz (egységes??)
Fejlesztőkörnyezet ● ● ●
●
Maemo SDK Scratchbox (armel / x86 alapú debian port) Eclipse plugin Hiányosságok: – GDB nem megy az SDK-ban armel processzoron – Telefonon debuggolás – Telefon bizonyos részeinek zárolása (mass storage, pc suite) – Hildon megjelneítés → af-sb-init.sh start
Hildon
● ● ●
●
Gtk+ -ra épülő megjelenítő Majdnem minden Gtk-s objektum elérhető Nokia saját fejlesztése Elég rossz választás a „Qt-s” telefonhoz, nem igazán összeegyeztethető a két felület
Hildon felület
Phonon ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Phonon::AudioOutput Used to send data to audio output devices Phonon::Effect Used to transform audio streams Phonon::EffectParameterDescribes one parameter of an effect Phonon::EffectWidget Widget to control the parameters of an Effect Phonon::MediaController Controls optional features of a media file/device Phonon::MediaNode The base class for all nodes in a media graph Phonon::MediaObjectInterface for media playback Phonon::MediaSource Multimedia data for media objects Phonon::BackendCapabilities::Notifier Phonon::ObjectDescription Information about Phonon objects Phonon::Path Describes connections between media nodes Phonon::SeekSlider Slider for seeking to positions in media streams Phonon::VideoPlayer Used to perform playback of video Phonon::VideoWidget Widget that is used to display video Phonon::VolumeSlider Slider that is used to control the volume of an audio output device
Phonon használata
●
●
Phonon::MediaObject *music = Phonon::createPlayer(Phonon::MusicCategory, Phonon::MediaSource("/path/mysong.wav")); music->play(); Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory, parentWidget); player->play(url);
Elvárások a felülettel szemben 1 (maemo) ●
●
Widgets must provide information or controls quickly and in an obvious manner; every feature and command should be immediately understandable, and accessible with a single tap. Widgets must provide only the most crucial features; they must be simple and efficient, designed to accomplish only a few tasks – but accomplish those extremely well.
Elvárások a felülettel szemben 2 (maemo) ●
●
Widgets must be as compact in size as possible; even though Maemo 5 offers a generous amount of screen space, users must be able to place several widgets on each screen to minimize the need for excessive screen switching. N.B. Due to the high pixel density of the physical screen, tappable elements must be at least 70x70 pixels in size for convenient finger use.
Elvárások a felülettel szemben 3 (maemo) Widget name
Description Provides one‐ touch access to an Application shortcut application Displays the current date and upcoming calendar events Calendar widget Provides one-touch access to Google search Google widget Displays the current location of the user Location widget on a map
Dimensions (in px) 96x96 352x252 176x146 316x368
Media Player widget Provides Media Player status and controls.338x148 Ovi widget Provides access to Ovi services 490x88 RSS widget Displays the latest RSS feeds 316x368 Presents a tutorial on how to use the Tutorial widget 800x72 device
Példaprogramok (Gtk+ és egy kevés Qt)
Kedvcsináló nokiára való fejlesztéshez :-) ● ● ●
http://www.callingallinnovators.com Külön díjazás a magyar résztvevőknek Határidő május 18