Analyzujte, navrhněte a implementujte aplikaci pro sledování spánku dětí „Chůvička“ pro telefony na platformě Android. Od existujících aplikací se bude aplikace odlišovat tímto: • funkční na dual-sim telefonech • možnost přesměrovat příchozí hovory • možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné • možnost využití internetového volání (Skype, Fring, Viber, Line, . . . ) Aplikaci řádně otestujte a zdokumentujte.
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství
Bakalářská práce
Android aplikace pro sledování spánku dětí Pavel Stambrecht
Vedoucí práce: Ing. Martin Komárek
1. dubna 2014
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval(a) samostatně a že jsem uvedl(a) veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů. V souladu s ust. § 46 odst. 6 tohoto zákona tímto uděluji nevýhradní oprávnění (licenci) k užití této mojí práce, a to včetně všech počítačových programů, jež jsou její součástí či přílohou a veškeré jejich dokumentace (dále souhrnně jen „Dílo“), a to všem osobám, které si přejí Dílo užít. Tyto osoby jsou oprávněny Dílo užít jakýmkoli způsobem, který nesnižuje hodnotu Díla a za jakýmkoli účelem (včetně užití k výdělečným účelům). Toto oprávnění je časově, teritoriálně i množstevně neomezené. Každá osoba, která využije výše uvedenou licenci, se však zavazuje udělit ke každému dílu, které vznikne (byť jen zčásti) na základě Díla, úpravou Díla, spojením Díla s jiným dílem, zařazením Díla do díla souborného či spracováním Díla (včetně překladu), licenci alespoň ve výše uvedeném rozsahu a zároveň zpřístupnit zdrojový kód takového díla alespoň srovnatelným způsobem a ve srovnatelném rozsahu, jako je zpřístupněn zdrojový kód Díla.
V Praze dne 1. dubna 2014
.....................
České vysoké učení technické v Praze Fakulta informačních technologií c 2014 Pavel Stambrecht. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Stambrecht, Pavel. Android aplikace pro sledování spánku dětí. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2014.
Abstrakt Cílem mé bakalářské práce je analyzovat, navrhnout, implementovat a otestovat aplikaci pro mobilní telefony s operačním systémem Android. Aplikace bude sloužit ke sledování spánku dětí. Hlavní požadavky na aplikaci jsou funkčnost na DUAL-SIM telefonech, možnost přesměrování příchozích hovorů, možnost nastavení více kontaktů a možnost využití internetového volání. Klíčová slova Android aplikace, hlídání dětí, DUAL-SIM telefon, přesměrování hovorů, internetové volání
Abstract The bachelor’s thesis is focused on analyzing, designing, implementing and testing an application for mobile phones with Android operating system. The application will be used to monitor the sleep of children. Main requirements for the application are DUAL-SIM support,the possibility of forwarding incoming phone calls, the possibility of setting more contacts and the possibility of using an internet calls. Keywords Android application, baby monitoring, DUAL-SIM phones, forwarding calls, internet calls vii
Obsah Úvod
1
1 Cíl práce
3
2 Analýza a návrh 2.1 Platforma Android . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Model požadavků . . . . . . . . . . . . . . . . . . . . . . . . . .
5 5 6
3 Implementace
9
4 Testování
11
Závěr
13
A Seznam použitých zkratek
15
B Obsah přiloženého CD
17
ix
Seznam obrázků
xi
Úvod Hlídání dětí patří a vždy patřilo mezi nejdůležitější činnosti jejich rodičů. Tato aktivita je nejvíce potřeba v době, kdy je dítě malé, nesamostatné a nejvíce zranitelné. Aby bylo o dítě nejlépe postaráno, je nutné mu věnovat téměř neustálou pozornost. Tato činnost je častokrát vyčerpávající a velmi časově náročná, proto se rodiče snaží využít i jiných možností, které by jim hlídání usnadnily. Jednou z nich je elektronická chůvička. Elektronická chůvička, neboli babysitting, je elektronické zařízení, které rodičům pomáhá při hlídání jejich spících dětí a to zejména dětí do tří let. Zařízení se skládá ze dvou komponent. První z nich je vysílač, který je primárně určen k nahrávání a přeposílání dat do přijímače. Druhou komponentou je již zmíněný přijímač, který přijímá, zpracovává a zobrazuje data z vysílače. Nejčastěji se elektronické chůvičky používají k přenosu zvuku a teploty nedaleko dítěte. Avšak existují i zařízení, která měří vlhkost vzduchu, monitorují dýchací činnost dítěte či přenáší real-time video přenos. Elektronické chůvičky již existují i ve formě aplikací do mobilních telefonů. Tyto aplikace se snaží využít mobilní zařízení s operačními systémy k tomu, aby byly z velké části schopny zastávat funkci klasických elektronických chůviček. Jejich hlavní výhodou je rychlá dostupnost a řádově nižší pořizovací cena. Mezi nejrozšířenější operační systémy pro běh těchto i dalších aplikací jsou Android, iOS a Windows mobile. Dnešní trh s Android aplikacemi obsahuje mnoho aplikací, které se touto problematikou zabývají. Avšak většina z nich podporuje pouze informování uživatelů o zvýšené hlasitosti zvuku v blízkosti jejich dítěte pomocí SMS. Další nevýhodou těchto aplikací je nepodporování výběru SIM karty u DUALSIM mobilních zařízeních, ze které jsou odesílány oznámení o hluku. Z těchto důvodů je potřeba vyvinout aplikaci, která by řešila výše zmíněné nevýhody.
1
Kapitola
Cíl práce Cílem mé bakalářské práce je vyvinout Android aplikaci, která pomůže uživatelům s hlídáním jejich spících dětí. Aplikace bude navržena tak, aby umožnila uživatelům spravovat kontakty, na které bude odesíláno oznámení o zvýšené hlasitosti zvuku v blízkosti dítěte. Další vlastností aplikace bude podpora DUAL-SIM mobilních zařízení, což uživateli umožní vybrat si SIM kartu, ze které bude oznámení odesláno (v případě SMS či telefonického oznámení). Jako poslední vlastností aplikace bude podpora oznámení pomocí aplikací umožňujících volání přes internet. Vývoj aplikace bude rozdělen do analýzy, návrhu, implementace a testování aplikace. V analýze aplikace se budu zabývat Android SDK, které je nezbytné pro vývoj aplikací pro operační systém Android. Další oblastí analýzy bude určení požadavků. Konkrétně se budu zabývat funkčními a nefunkčními požadavky. V návrhu aplikace navrhnu model aplikace pomocí diagramu tříd a jednotlivé třídy, včetně jejich funkčnosti, popíši. V části implementace aplikace se budu zabývat popisem implementace a řešeních problémů, které během implementace vzniknou. Na konci implementační části bude vytvořena funkční aplikace schopna provozu. V poslední části vývoje aplikace, testování aplikace, budu testovat kvalitu aplikace pomocí automatických testů a testování běhu aplikace v praxi. Jednotlivé testy a jejich výsledky popíši.
3
1
Kapitola
Analýza a návrh 2.1
Platforma Android
Android je open source platforma, která byla primárně určena pro mobilní zařízení. Zahrnuje v sobě operační systém založený na jádru Linux, middleware, uživatelské rozhraní a aplikace. Jednou z předností platformy Android je možnost použití na různém hardware. Pro vývoj mé aplikace jsem zvolil Android 3.0 a vyšší. Hlavním důvodem mého výběru byla lepší kompatibilita s novějšími verzemi než tomu bylo u starších verzí. K vývoji aplikací pro platformu Android slouží Android SDK. Android SDK poskytuje vývojářům aplikací sadu knihoven API a vývojářské nástroje k sestavení, testování a ladění aplikací. Pro vývoj aplikace s využitím Android SDK jsem zvolil vývojové prostředí Eclipse, jelikož umožňuje rychlou a snadnou instalaci Android SDK pomocí pluginů. Pro testování běhu aplikace existují dvě možnosti. První možností je testování běhu aplikace na reálném zařízení. Druhou možností je využití Android Virtual Device, což je emulátor, který téměř zastává funkci reálných zařízeních. Jeho hlavní nevýhodou je chybějící podpora některých funkcí. Jednou z požadovaných funkcí pro běh mé aplikace, kterou Android Virtual Device nepodporuje, je získávání dat z mikrofonu. Z tohoto důvodu jsem pro běh aplikace zvolil reálné zařízení.
5
2
2. Analýza a návrh
2.2
Model požadavků
Tato část mé bakalářské práce obsahuje popis všech požadavků, které jsou na aplikaci ke sledování spánku dětí kladeny. Požadavky jsou rozděleny na dvě části, a to na požadavky funkční a nefunkční.
2.2.1
Funkční požadavky
Funkční požadavky slouží k určení všech primárních funkcí, které by aplikace měla splňovat. Aplikace, kterou navrhuji by měla splňovat následující funkční požadavky:
• podpora DUAL-SIM mobilních telefonech • měření hlasitosti v decibelech • kalibrace mikrofonu • využití internetového volání • nastavení více kontaktních údajů pro kontaktování • přesměrování příchozích hovorů • nastavení telefonního čísla pro přesměrování Podpora DUAL-SIM telefonech Aplikace by měla podporovat běh na mobilních zařízeních se dvěma SIM kartami. Uživatel by měl mít možnost vybrat si SIM kartu, která by sloužila k odesílání upozornění o hluku (v případě upozornění pomocí SMS či telefonního hovoru). Během analýzy tohoto požadavku jsem na oficiálních webových stránkách pro vývojáře zjistil, že ani jedna Android knihovna nepodporuje správu dvou SIM karet. Všechny DUAL-SIM telefony, které jsou nyní na trhu, mají od výrobců upravený operační systém a nepodporují API k využití těchto funkcí. Z těchto důvodů nyní nelze vyvíjet aplikace určené přímo pro DUAL-SIM mobilní zařízení. Měření hlasitosti v decibelech Aplikace bude v sekvencích získávat data z mikrofonu. Algoritmus pro zpracování dat z mikrofonu vybere vždy maximální naměřenou hodnotu, kterou následně převede do decibelů. 6
2.2. Model požadavků Kalibrace mikrofonu Aplikace bude umožňovat jednoduchou kalibraci mikrofonu. Změnu hlasitosti v decibelech bude možno kalibrovat přidáním či odebráním decibelů v intervalu <-15,15>. Využití internetového volání Aplikace bude umožňovat oznámení o zvýšené hlasitosti i pomocí internetového volání. Z testovaných aplikací Skype, Fring, Viber, Line, Nimbuzz, Qik, Tango, Truphone a Ovo, jsem k oznámení přes internetové volání vybral pouze aplikace Skype, která jako jediná umožňuje zahájení hovoru z jiné aplikace. Nastavení více kontaktních údajů pro kontaktování Pro případ, že by během oznamování byl zvolený kontakt nedostupný, bude aplikace podporovat vložení více kontaktních údajů pro oznámení. Podporované kontaktní údaje budou přes služby SMS, telefonní hovor a Skype. Přesměrování příchozích hovorů Během monitorování hlasitosti zvuku bude muset být telefon blízko u spícího dítěte. Z tohoto důvodu je potřeba implementovat funkci pro přesměrování příchozích hovorů na jiné zařízení. V aplikaci si uživatel bude moct nastavit, zda chce během monitorování příchozí hovory přesměrovat. Nastavení telefonního čísla pro přesměrování V aplikaci si uživatel bude moct zvolit právě jedno telefonní číslo na které se během monitorování hlasitosti zvuku budou automaticky přesměrovávat všechny příchozí hovory.
2.2.2
Nefunkční požadavky
7
Kapitola
Implementace
9
3
Kapitola
Testování
11
4
Závěr
13
Příloha
Seznam použitých zkratek GUI Graphical user interface XML Extensible markup language
15
A
Příloha
Obsah přiloženého CD
17
B