Linux na mobilních zařízeních Jozef Mlích Department of Computer Graphics and Multimedia Brno University of Technology, Faculty of Information Technology Božetěchova 2, 612 66 Brno, Czech Republic imlich@fit.vutbr.cz Tvorba aplikací pro mobilní zařízení 27. 10. 2010 TAM 2010 1 / 16
Agenda Motivace Hardware Software Uživatelské rozhraní Další aplikace Middleware (knihovny) Programování / Dema TAM 2010 2 / 16
Motivace Možnost volby často existuje víc distribucí Otevřenost můžeme studovat zdrojáky, když něco nefunguje podle našich představ, tak to můžeme opravit Znovupoužitelnost můžeme spustit desktopové aplikace často stačí jen přizpůsobit uživatelské rozhraní jsou technologie, které už známe z desktopu, nemusíme se učit úplně všechno od nuly TAM 2010 3 / 16
Hardware Experimentální zařízení (Openmoko, Greenphone) Mobilní telefony (N900, Aawa, PalmPre,..) Netbooky (Touchbook,...) IVI In Vehicle Infotainment Hometainment Televize, Topení, Klima,... TAM 2010 4 / 16
Hardware CPU ARMv4, v5, v6, v7,.. (x86) +DSP, +FPU, +GPU +SoC FM příjmač/vysílač Klávesnice + další tlačítka (např. spoušť foťáku) Síť GSM (2G, 2.5G, 3G) Touchscreen Wifi Akcelerometry Bluetooth Gyroskop Audio (sluchátka vs. reprák) GPS Správa napájení Kompas IR/FIR LED USB režim host/device Vibrátor MicroSD, NAND, NOR TAM 2010 5 / 16
Hardware TAM 2010 6 / 16
Software Cross compiling vs. Nativní překlad virtualizační nástroje (scratchbox) knihovny, balíčkování, distribuce aplikací Odlehčené knihovny (busybox) TAM 2010 7 / 16
Uživatelské rozhraní X Server vs. Framebuffer Fake X Server Rychlost? On screen keyboard Session manager (modální dialogy, zavírání okna, seznam úloh) TAM 2010 8 / 16
Software PIM Personal Information Management Integrace kontaktů (email, IM, facebook, volání/sms, kalendář narozeniny) Kalendář Integrace s dalšími službami Youtube, Flicker, Picasa, itunes, Ovi Store, Android Market Navigace, GeoCaching, mapové zdroje (google, openstreetmap, sky), Foursquare GPS TAM 2010 9 / 16
Software Middleware DBUS mdbus s org.freesmartphone.ogsmd /org/freesmartphone/gsm/device org.freesmartphone.gsm.sms.sen dmessage 0049987654321 "test message" [] dbus send... devfs /dev/input/event3 /usr/include/linux/input.h procfs, sysfs echo 1 > /sys/devices/platform/gta02 led.0/leds\:gta02 aux\:red/brightness Telepathy FSO libhildon etc. struct input_event { struct timeval time; u16 type; u16 code; s32 value; }; TAM 2010 10 / 16
Maemo SDK Cross kompilace Překladač (gcc, TI překladač) Virtualizace (např. virtual box, qemu, vmware) Balíčkování Xephyr :2 host cursor screen 800x480x16 dpi 96 ac kb & newgrp sbox /scratchbox/login sb conf select FREMANTLE_ARMEL # výběr překladače export DISPLAY=:2 af sb init.sh start TAM 2010 11 / 16
Package management Motivace: dostat program snadno a rychle k uživateli vyřešit závislosti podepsaný a bezpečný software i komerční aplikace Gentoo (portage) > OpenEmbeded (bitbake, ipk) > Openmoko (opk) RHEL/Fedora (rpm) > Meego Debian (deb) > Hackable:1/Maemo > OVI Store Android (apk) TAM 2010 12 / 16
ALSA alsamixer, alsactl, alsastate Jaké jsou požadavky? control.49 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 3' iface MIXER name 'Mic1 Capture Volume' value 0 } WM8753 Codec Neo Freerunner TAM 2010 13 / 16
Filesystem NAND má jiné fyzikální vlastnosti než klasické disky FAT Běžně foťáky, usb klíče Pozor na patenty! Neumí symlinky a posixové oprávnění Velikostní limity ext2/3/4, reiserfs, XFS Desktopové systémy JFFS2, YAFFS, UBIFS Journalling Flash File System TAM 2010 14 / 16
Shrnutí Výhody a nevýhody Framebufferu/X Serveru? Co je cross compiling? Jaké jsou alternativy? Proč balíčkujeme? Hardwarové rozdíly (audio, síť, další periferie)? Co je procfs, sysfs, dbus? Kde začít s vývojem aplikaci? Proč Linux vs. Android vs. Windows Mobile vs. Symbian? TAM 2010 15 / 16
Literatura http://wiki.openmoko.org Linux From Scratch http://www.linuxfromscratch.org/ Karim Yaghmour, Building Embedded Linux Systems, 1st ed. (O'Reilly Media, 2003). http://natisbad.org/n900/n900 commented hardware specs.html TAM 2010 16 / 16