ˇ ˇeska ´ univerzita v Cesk ´ ch Bude ˇjovic´ıch Jihoc y Pedagogick´a fakulta Katedra informatiky
Tvorba mobiln´ıch aplikac´ı v Java a HTML5 pro Android OS Creation of mobile applications in Java and HTML5 for Android OS Bakal´aˇrsk´a pr´ace
Vedouc´ı pr´ ace: PaedDr. Petr Pexa, Ph.D. Vypracoval: Ondˇrej Plucar ˇ e Budˇejovice 2016 Cesk´
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze svoji bakal´aˇrskou pr´aci jsem vypracoval samostatnˇe pouze s pouˇzit´ım pramen˚ u a literatury uveden´ ych v seznamu citovan´e literatury. Prohlaˇsuji, ˇze v souladu s S 47b z´akona ˇc. 111/1998 Sb. v platn´em znˇen´ı souhlas´ım se zveˇrejnˇen´ım sv´e bakal´aˇrsk´e pr´ace, a to v nezkr´acen´e podobˇe elektronickou cestou ve veˇrejnˇe pˇr´ıstupn´e ˇca´sti datab´aze STAG provozoˇ ych Budˇejovic´ıch na jej´ıch internetovan´e Jihoˇceskou univerzitou v Cesk´ v´ ych str´ank´ach, a to se zachov´an´ım m´eho autorsk´eho pr´ava k odevzdan´emu textu t´eto kvalifikaˇcn´ı pr´ace. Souhlas´ım d´ale s t´ım, aby tout´eˇz elektronickou cestou byly v souladu s uveden´ ym ustanoven´ım z´akona ˇc. 111/1998 Sb. zveˇrejnˇeny posudky ˇskolitele a oponent˚ u pr´ace i z´aznam o pr˚ ubˇehu a v´ ysledku obhajoby kvalifikaˇcn´ı pr´ace. Rovnˇeˇz souhlas´ım s porovn´an´ım textu m´e kvalifikaˇcn´ı pr´ace s datab´az´ı kvalifikaˇcn´ıch prac´ı Theses.cz provozovanou N´arodn´ım registrem vysokoˇskolsk´ ych kvalifikaˇcn´ıch prac´ı a syst´emem na odhalov´an´ı plagi´at˚ u.
ˇ ych Budˇejovic´ıch dne 29. prosince 2015 V Cesk´
Ondˇrej Plucar
Abstrakt C´ılem bakal´aˇrsk´e pr´ace bude rozbor tvorby aplikac´ı pro mobiln´ı zaˇr´ızen´ı s Android OS a provedeno porovn´an´ı aktu´aln´ı technologie Java s perspektivn´ı variantou pomoc´ı HTML5/CSS/JavaScript. V´ ystupem pr´ace bude sada praktick´ ych pˇr´ıklad˚ u a konkr´etn´ı aplikace katedry informatiky PF JU pro Android OS vˇcetnˇe mobiln´ı verze jej´ıho webu v HTML5 a otestov´ana jej´ı funkˇcnost v aktu´aln´ıch verz´ıch mobiln´ıch operaˇcn´ıch syst´em˚ u Windows Phone, Windows 8, Android OS a iOS. V r´amci pr´ace bude tak´e proveden pr˚ uzkum ˇ e zamˇeˇren´ y na rozˇs´ıˇren´ı t´eto technologie mezi odbornou veˇrejnost´ı v Cesk´ republice.
Kl´ıˇ cov´ a slova Android, google, play, java, eclipse, studio, mobiln´ı, aplikace, operaˇcn´ı, syst´em, framework, struktura, emul´ator .
Abstract The goal of my bachelor’s degree paper is an analysis of the production of applications for mobile phone appliances with Android OS and a comparison of the recent Java technology with a perspective variant which will be made with the help of HTML5/CSS/JavaScript. A series of practical examples and concrete applications for Android including a mobile version of its webpage in HTML5 will be the result of my paper for the Department of Informatics (Faculty of Education, University of South Bohemia). Its functionality will be tested in recent versions of mobile operating systems such as Windows Phone, Windows 8, Android OS and iOS. An investigation into the enlargement of this technology among the expert community in the Czech Republic will also be conducted as part of my work
Keywords Android, google, play, java, eclipse, studio, mobile, application, operating, system, framework, structure, emulator
Podˇ ekov´ an´ı R´ad bych touto formou podˇekoval vedouc´ımu m´e z´avˇereˇcn´e pr´ace panu PaedDr. Petru Pexovi, Ph.D. za odborn´e veden´ı pˇri zpracov´an´ı pr´ace, cenn´e rady, ochotu a trpˇelivost pˇri veden´ı m´e pr´ace.
Obsah ´ 1 Uvod 1.1 C´ıle pr´ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 V´ ychodiska pr´ace . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Metody pr´ace . . . . . . . . . . . . . . . . . . . . . . . . . .
12 12 13 13
2 HTML 2.1 HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 14
3 CSS 3.1 CSS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 16
4 Java 4.1 Kde ji z´ıskat . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Verze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Vizu´aln´ı v´ yvojov´a prostˇred´ı . . . . . . . . . . . . . . . . . .
17 17 17 18
5 Android 5.1 Z´akladn´ı ˇca´sti . . . . . . . . . . . . . . 5.1.1 Aktivity . . . . . . . . . . . . . 5.1.2 Sluˇzby . . . . . . . . . . . . . . 5.1.3 Poskytovatel´e obsahu . . . . . . 5.1.4 Z´amˇery . . . . . . . . . . . . . ˇ asti uˇzivatelsk´e . . . . . . . . . . . . 5.2 C´ 5.2.1 Uloˇziˇstˇe . . . . . . . . . . . . . 5.2.2 S´ıt’ . . . . . . . . . . . . . . . . 5.2.3 Multim´edia . . . . . . . . . . . 5.2.4 Sluˇzby urˇcen´ı zemˇepisn´e polohy 5.2.5 Telefonn´ı sluˇzby . . . . . . . . . 5.3 Architektura . . . . . . . . . . . . . . . 5.3.1 Linux Kernel . . . . . . . . . . 5.3.2 Libraries . . . . . . . . . . . . . 5.3.3 Android Runtime . . . . . . . . 5.3.4 Application Framework . . . . . 5.3.5 Aplikace . . . . . . . . . . . . .
19 19 20 20 20 21 21 21 21 22 22 22 22 22 23 23 23 24
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
5.4
Historie verz´ı Androidu . . . . . . . . . 5.4.1 Android 1.5 Cupcake . . . . . . 5.4.2 Android 1.6 Donut . . . . . . . 5.4.3 Android 2.0/2.1 Eclair . . . . . 5.4.4 Android 2.2 Froyo . . . . . . . . 5.4.5 Android 2.3 Gingerbread . . . . 5.4.6 Android 3.0 Honeycomb . . . . 5.4.7 Android 4.0 IceCream Sandwich 5.4.8 Android 4.2 Jelly Bean . . . . . 5.4.9 Android 4.4 KitKat . . . . . . . 5.4.10 Android 5.0 Lollipop . . . . . .
. . . . . . . . . . .
24 24 25 25 25 25 26 26 26 26 26
6 Poˇ zadavky pro v´ yvoj aplikac´ı 6.1 Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Instalace . . . . . . . . . . . . . . . . . . . . . . . . .
28 28 29
7 Technologie Android Studia 7.1 Responsivn´ı IDE . . . . . 7.2 Gradle . . . . . . . . . . . 7.3 Design aktivit . . . . . . . 7.4 Emul´ator . . . . . . . . . 7.5 Lokalizace aplikac´ı . . . .
. . . . .
32 32 32 32 33 34
. . . . . . . . . . .
35 35 35 38 41 44 47 48 49 52 53 54
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
8 Praktick´ aˇ c´ ast 8.1 Sada praktick´ ych pˇr´ıklad˚ u . . . . . . 8.1.1 GPS Lokace . . . . . . . . . . 8.1.2 OCR Scanner . . . . . . . . . 8.1.3 SQLite datab´aze . . . . . . . 8.2 Nativn´ı aplikace katedry informatiky 8.2.1 Metodika aplikace . . . . . . . 8.2.2 Testov´an´ı . . . . . . . . . . . 8.2.3 Publikov´an´ı na Google Play . 8.3 Responzivn´ı web katedry informatiky 8.3.1 Metodika responzivity . . . . 8.3.2 Testov´an´ı . . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
8.4
Porovn´an´ı HTML5 a Java . . . . . . . . . . . . . . . . . . .
9 Z´ avˇ er
54 56
´ 1 UVOD
1
´ Uvod
Pˇred pˇr´ıchodem chytr´ ych mobiln´ıch zaˇr´ızen´ı byla situace web˚ u jednoduˇsˇs´ı, protoˇze vˇetˇsina lid´ı pouˇz´ıvala poˇc´ıtaˇc nebo notebook. Rozmˇery obrazovek byly v´ıcem´enˇe standartn´ı a obsah zobrazen´ı byl na ˇs´ıˇrku. Pro mobiln´ı telefony a tablety s mal´ ymi displeji, se musel obsah webu pˇrizp˚ usobit aktu´alnˇe pouˇzit´emu zobrazovac´ımu zaˇr´ızen´ı. Pokud by tak nebylo uˇcinˇeno, klasick´a webov´a str´anka s fixn´ım designem by nutila uˇzivatele rolovat nejen nahoru a dol˚ u, ale i doprava a doleva. Pokud chceme obsah webu pˇrizp˚ usobit je moˇzno vytvoˇrit responzivn´ı web. C´ılem bakal´aˇrsk´e pr´ace bude rozbor tvorby aplikac´ı pro mobiln´ı zaˇr´ızen´ı s operaˇcn´ım syst´emem Android a provedeno porovn´an´ı aktu´aln´ı technologie Java s perspektivn´ı variantou pomoc´ı HTML5/CSS/JavaScript. V´ ystupem pr´ace bude sada praktick´ ych pˇr´ıklad˚ u a konkr´etn´ı aplikace katedry informatiky PF JU pro Android OS vˇcetnˇe mobiln´ı verze jej´ıho webu v HTML5 a otestov´ana jej´ı funkˇcnost v aktu´aln´ıch verz´ıch mobiln´ıch operaˇcn´ıch syst´em˚ u Windows Phone, Windows 8, Android OS a iOS. V r´amci pr´ace bude tak´e proveden pr˚ uzkum zamˇeˇren´ y na rozˇs´ıˇren´ı t´eto technologie mezi odbornou ˇ e republice. veˇrejnost´ı v Cesk´ Praktickou ˇca´st bakal´aˇrsk´e pr´ace bude tvoˇrit nativn´ı aplikace, realizovan´a pomoc´ı responzivn´ıho webu, kter´ y je tak´e souˇca´st´ı bakal´aˇrsk´e pr´ace. Dalˇs´ı ˇca´st´ı pr´ace bude pˇredstaven´ı sady praktick´ ych pˇr´ıklad˚ u v objˇektovˇe orientovan´em programovac´ım jazyce Java.
1.1
C´ıle pr´ ace
C´ılem bakal´aˇrsk´e pr´ace bude pˇredstavit operaˇcn´ı syst´em Android, vytv´aˇren´ı aplikac´ı pro operaˇcn´ı syst´em od firmy Google Inc. a vyzkouˇset tak moˇznosti v´ yvoje nejen pro mobiln´ı zaˇr´ızen´ı, ale i pro zaˇr´ızen´ı s vˇetˇs´ı u ´hlopˇr´ıˇckou napˇr. tablety. V pr´aci bude pops´ana architektura a podpora framework operaˇcn´ıho syst´emu Android. Nakonec bude zpracov´ana instalace potˇrebn´eho programov´eho prostˇred´ı pro samotn´ y v´ yvoj nativn´ıch aplikac´ı a porovn´av´an´ı ve v´ yvojov´em prostˇred´ı s programovac´ım jazykem Java a HTML5. Nativn´ı aplikace bude publikov´ana na port´alu Google Play. Hlavn´ım c´ılem bakal´aˇrsk´e pr´ace bude hotov´a nativn´ı aplikace pro katedru 12
´ 1 UVOD ˇ ych Budˇejovic´ıch. Aplikace bude dostupn´a zdarma informatiky PF JU v Cesk´ na aplikaˇcn´ım a webov´em port´alu Google Play a data budou automaticky aktualizov´ana z webov´eho port´alu KIN PF JU.
1.2
V´ ychodiska pr´ ace
Pod´ıl chytr´ ych telefon˚ u v cel´em svˇetˇe nar˚ ust´a a jejich uˇzivatel´e se tak zaˇcali popt´avat st´ale v´ıce po rozmanitˇejˇs´ım spektru nativn´ıch aplikac´ı, jako jsou mobiln´ı hry, firemn´ı aplikace, praktick´e aplikace vyuˇz´ıvaj´ıc´ı GPS a tak´e vˇsemoˇzn´e z´abavn´e aplikace pro dˇeti i dospˇel´e. Mobiln´ı aplikace pro Android jsou v souˇcastn´e dobˇe nejrozˇs´ıˇrenˇejˇs´ı na svˇetˇe. Podle statistik z roku 2013 mˇely pod´ıl na trhu neuvˇeˇriteln´ ych 81 procent. V souˇcasn´e dobˇe v´ıce v´ yvoj´aˇr˚ u programuje v programovac´ım jazyce Java. Ot´azka pro v´ yvoj´aˇre zn´ı, jestli zaˇc´ıt programovat nativn´ı aplikace v HTML5 nebo z˚ ustat u st´avaj´ıc´ıho jazyku Java.
1.3
Metody pr´ ace
´ Uvodn´ ı sezn´amen´ı s operaˇcn´ım syst´emem Android a jeho histori´ı. Pot´e pˇredstaven´ı architektury operaˇcn´ıho syst´emu Android, podpora framework a s n´ı i vrstvy v syst´emu, kter´e usnadn´ı v´ yvoj aplikac´ı. Pr´ace bude zahrnovat vˇse potˇrebn´e k programov´an´ı a publikov´an´ı aplikac´ı potˇrebn´e a s n´ı i nˇekolik jednoduch´ ych pˇr´ıklad˚ u o programov´e struktuˇre. Nakonec programov´an´ı v programovac´ım jazyce Java a HTML5, kter´a bude publikov´ana na aplikaˇcn´ı port´al Google Play.
13
2 HTML
2
HTML
Prvn´ı verze jazyka HTML1 se objevila v roce 1991. Jej´ı autoˇri Tim Berners–Lee a Robert Caillau ji vytvoˇrili jako souˇc´ast projektu WWW2 , kter´ y mˇel umoˇznit vˇedc˚ um komunikaci a sd´ılen´ı v´ ysledk˚ u v´ yzkumu. V roce 1992 pˇrich´azej´ı prvn´ı prohl´ıˇzeˇce WWW str´anek. Tyto prohl´ıˇzeˇce byly ˇra´dkov´e a zat´ım nemˇeli grafiku. N´avrh HTML 2.0 spolu s grafick´ ym internetov´ ym prohl´ıˇzeˇcem se poprv´e objevuj´ı v roce 1993. Prvn´ı grafick´ y internetov´ y prohl´ıˇzeˇc dostal n´azev NCSA MOSAC. Nov´ y grafick´ y prohl´ıˇzeˇc Netscape byl veˇrejnosti pˇredstaven v n´asleduj´ıc´ım roce. Tento WWW prohl´ıˇzeˇc byl n´asledn´ıkem celosvˇetov´eho prvn´ıho webov´eho prohl´ıˇzeˇce Mosaic. HTML 2.0 byl ofici´alnˇe uveden v roce 1995. Netscape zav´ad´ı v tom sam´em roce neofici´aln´ı rozˇs´ıˇren´ı verze 2.0, zn´am´e jako HTML 3.0. V kvˇetnu 1996 se objevila ofici´aln´ı specifikace HTML 3.2 (kter´ y je kombinac´ı HTML 2.0 a tabulek), Microsoft v dan´em obdob´ı vypouˇst´ı sv˚ uj prvn´ı prohl´ıˇzeˇc s n´azvem MsIE. Dalˇs´ı verze 4.0 vych´az´ı v ˇcervenci 1997 (verze 3.2 vylepˇsen´a o rozˇs´ıˇren´ı tabulek a formul´aˇr˚ u, d´ale doplnˇen´a o r´amy, kask´adov´e styly a skriptov´an´ı). V roce 1999 byla vyd´ana zat´ım posledn´ı ofici´aln´ı verze HTML 4.1, s n´ıˇz pravdˇepodobnˇe konˇc´ı cel´ y v´ yvoj HTML. Ale nekonˇc´ı HTML samo o sobˇe, stalo se z´akladem pro nov´e jazyky, napˇr. pro XHTML3 , kter´ y je velice 4 podobn´ y HTML, nebo pro mnohem sloˇzitˇejˇs´ı XML . V souˇcasnosti m´ame moˇznost velk´eho v´ ybˇeru programovac´ıch jazyk˚ u, ale vˇsechny maj´ı jistou spojitost s HTML, protoˇze ho ve vˇetˇs´ı ˇci menˇs´ı m´ıˇre pouˇz´ıvaj´ı. [1]
2.1
HTML5
HTML5 je souˇcasnou verz´ı znaˇckovac´ıho jazyka HTML slouˇz´ıc´ıho pro tvorbu webov´ ych str´anek. Oproti pˇredchoz´ı verze HTML4 pˇrin´aˇs´ı podstatn´e zmˇeny, pˇriˇcemˇz nejd˚ uleˇzitˇejˇs´ı patˇr´ı podpora pˇrehr´avan´ı multim´edi´ı v prohl´ıˇzeˇci a podpora pro aplikace, kter´e funguj´ı i bez pˇripojen´ı k internetu. Charakte1
HyperText Markup Language - znaˇckovac´ı jazyk pro tvorbu webov´ ych str´anek World Wide Web - svˇetov´ a rozs´ ahl´a s´ıt’ 3 Extensible Hypertext Markup Language - rozˇsiˇriteln´ y hypertextov´ y znaˇckovac´ı jazyk 4 Extensible Markup Language - rozˇsiˇriteln´ y znaˇckovac´ı jazyk 2
14
2 HTML
ristika HTML5 je sloˇzena z nˇekolika v´ıcem´enˇe nez´avisl´ ych ˇc´ast´ı. Nov´e HTML znaˇcky s´emanticky definuj´ıc´ı strukturu str´anky, perzistentn´ı u ´loˇziˇstˇe formou asociativn´ıho pole, relaˇcn´ı datab´aze s podporou transakc´ı, podpora offline aplikac´ı. Nˇekter´e z navrˇzen´ ych funkc´ı HTML5 implementovalo rozˇs´ıˇren´ı pro prohl´ıˇzeˇce Google Gears. Google se rozhodl v´ yvoj Gears postupnˇe pozastavit ve prospˇech nativn´ı podpory HTML5 ze strany prohl´ıˇzeˇc˚ u. HTML5 m´a za c´ıl dodrˇzovat jednotliv´e principy pro pˇrehlednost, jednoduchost a celkovou dokonalost modern´ıch webov´ ych str´ank´ach. Specifikace je nestabiln´ı a mˇen´ı se, ale vˇzdy s ohledem na principy jako jsou: kom´ celem HTML5 je zaloˇzen´ı pabilita, uˇziteˇcnost, spolupr´ace a pˇr´ıstupnost. Uˇ nov´ ych funkc´ı HTML, CSS, DOM5 , JavaScirptu, sn´ıˇzen´ı potˇreby extern´ıch plugin˚ u, jednoduˇs´ı zpracov´an´ı chyb neˇz v pˇredchoz´ıch verz´ı, HTML5 nez´avisl´e na ˇr´ızen´ı a proces v´ yvoje viditeln´e pro veˇrejnost. [2]
5
Document Object Model - objektov´ y model dokumentu
15
3 CSS
3
CSS
Jazyk CSS6 vstoupil do svˇeta tvorby webov´ ych str´anek poˇc´atkem 21. stolet´ı. Navrhla jej spoleˇcnost W3C7 . Autorem prvn´ıho n´avrhu byl H´lkon Wium Lie. Aktu´alnˇe existuj´ı verze CSS1, CSS2 a CSS3. Kask´adov´e styly jsou jazykem, kter´ y je urˇcen´ y k popisov´an´ı vzhledu element˚ u jazyk˚ u HTML, XHTML a XML. C´ılem vzniku CSS bylo oddˇelen´ı vzhledu webov´e str´anky od jej´ıho v´ yznamu. Kask´adov´e styly maj´ı za u ´kol popisov´an´ı vzhledu prvk˚ u str´anky, narozd´ıl od znaˇckovac´ıch jazyk˚ u, kter´e maj´ı obsahu dod´avat v´ yznam. [3]
3.1
CSS3
CSS3 je nejnovˇejˇs´ı verze od roku 2005. Tv˚ urci CSS zjistili chyby u verze CSS2 a tak zmˇenili z´asadnˇe zp˚ usob vzniku tˇret´ı verze CSS. Cel´a specifikace CSS3 je rozdˇelena do modul˚ u a kaˇzd´ y z modul˚ u m´a vlastn´ı v´ yvojov´ y cyklus, kter´ y se skl´ad´a z pracovn´ıho n´avrhu, posledn´ı v´ yzvy, kandid´at k doporuˇcen´ı, navrˇzen´ y k doporuˇcen´ y a doporuˇcen´ı. Specifikace CSS3 umoˇzn ˇuje tak rychlejˇs´ı, pruˇznˇejˇs´ı a efektivnˇejˇs´ı zmˇeny ve specifikaci jako reakce na potˇreby v´ yvoj´aˇr˚ u webov´ ych str´anek a zpˇetnou vazbu od v´ yrobc˚ u prohl´ıˇzeˇc˚ u pˇri implementaci nov´ ych vlastnost´ı. [2]
6 7
Cascading Style Sheets - kask´ adov´e styly World Wide Web Consortium - mezin´arodn´ı konsorcium
16
4 JAVA
4
Java
Java je objektovˇe orientovan´ y programovac´ı jazyk, kter´ y byl pˇredstaven veˇrejnosti v roce 1995 firmou Sun Microsystems veden´ y J. Goslingem. P˚ uvodnˇe byl tento jazyk urˇcen k programov´an´ı pro vestavˇen´e syst´emy a mˇel se jmenovat Oak podle stromu, kter´ y rostl pˇred oknem pana Goslinga. Vzhledem k tomu, ˇze tento n´azev byl obsazen, rozhodli se jeho tv˚ urci pro n´azev Java, podle americk´e varianty espressa. Logem se pochopitelnˇe stal kouˇr´ıc´ı hrnek k´avy. Z´akladem jej´ıho u ´spˇechu bylo pouˇz´ıv´an´ı v prostˇred´ı internetu, zejm´ena vzhledem k moˇznostem zabezpeˇcen´ı. V souˇcastnosti se Java pouˇz´ıv´a v mnoho oblastech. Vedle bˇeˇzn´ ych aplikac´ı se v n´ı p´ıˇs´ı aplety tz. kr´atk´e programy, kter´e lze vkl´adat do webov´ ych str´anek. D´ale servlety coˇz jsou programy, kter´e bˇeˇz´ı na webov´ ych serverech a aplikac´ı, kter´e se skl´adaj´ı z nˇekolika program˚ u bˇeˇz´ıc´ıch na r˚ uzn´ ych poˇc´ıtaˇc´ıch a komunikuj´ıc´ıch spolu prostˇredn´ıctv´ım s´ıtˇe. [4]
4.1
Kde ji z´ıskat
Jazyk Java je k dispozici zdarma. Vˇse, co potˇrebujete k programov´an´ı v Javˇe, lze st´ahnout z internetov´e adresy http//:java.sun.com. Pˇri staˇzen´ı J2SE5 najdete i instrukce pro instalaci. N´astroje pro programov´an´ı v jazyce Java se obvykle oznaˇcuj´ı zkratkou JDK8 . [4]
4.2
Verze
Od roku 1995 bylo publikov´ano nˇekolik verz´ı jazyka Java a JDK. Z nich se m˚ uˇzeme nejsp´ı setkat s verzemi JDK 1.0.2, 1.1.8, 1.2.2, 1.3.2, 1.4.2 a 1.5.x verze JDK 1.0 a 1.1 se pˇr´ıliˇs nepouˇz´ıvaj´ı. Od JDK 1.2 se hovoˇr´ı o jazyce Java 2, kter´a pˇrinesla podstatnˇe kvalitnˇejˇs´ı implementaci nˇekter´ ych knihoven napˇr. knihovny kontejner˚ u. Jej´ı souˇca´st´ı je tak´e knihovna JFC/Swing, kter´a obsahuje komponenty pro elegatnˇejˇs´ı vytv´aˇren´ı grafick´eho uˇzivatelsk´eho rozhran´ı aplikac´ı. Od JDK 1.4 se rozliˇsuj´ı r˚ uzn´e edice. Vedle standardn´ı edice se m˚ uˇzeme setkat s edic´ı pro podnikov´e aplikace a s edic´ı pro 8
Java Development Kit - produkt Oracle Corporation
17
4 JAVA
mobiln´ı zaˇr´ızen´ı. [4]
4.3
Vizu´ aln´ı v´ yvojov´ a prostˇ red´ı
Java umoˇznuje programov´an´ı v r˚ uzn´ ych vizu´aln´ıch v´ yvojov´ ych n´astroj´ıch 9 ˇcasto oznaˇcov´ana zkratkou RAD . Velikou v´ yhodou je to, ˇze usnadˇ nuje vytv´aˇren´ı okenn´ıch aplikac´ı. Kdyˇz vizu´alnˇe sestav´ıte pˇredem pˇripraven´ y komponent jako z´aklad sv´eho programu, vytvoˇr´ı se automaticky odpov´ıdaj´ıc´ı zdrojov´ y k´od. Vˇetˇs´ına v´ yvojov´ ych prostˇred´ıch lze z´ıskat zdarma. Jde napˇr. o Boralnd JBuilder Personal Edition, kde je zapotˇreb´ı se zaregistrovat jako ˇclen borlandsk´e v´ yvoj´aˇrsk´e komunity, abyste prostˇred´ı mohli pouˇz´ıvat za komerˇcn´ım u ´ˇcelem. Dalˇs´ım v´ yvojov´ ym prostˇred´ım je NetBeans, kter´e lze pro nekomerˇcn´ı u ´ˇcely z´ıskat zdarma na internetov´ ych str´ank´ach www.netbeans.com. Speci´alnˇe pro v´ yuku Javy je urˇceno prostˇred´ı BlueJ, kter´e lze z´ıskat na www.bluej.org. [4]
9
Rapid Application Development - rychl´ y v´ yvoj aplikac´ı
18
5 ANDROID
5
Android
Android je mobiln´ı operaˇcn´ı syst´em zaloˇzen´ y na j´adˇre Linuxu, kter´ y je dostupn´ y jako otevˇren´ y software tz. open source. Vyv´ıj´ı jej konsorcium Open Handset Alliance, jehoˇz c´ılem je progresivn´ı rozvoj mobiln´ıch technologi´ı, kter´e budou m´ıt v´ yraznˇe niˇzˇs´ı n´aklady na v´ yvoj a distribuci, a z´aroveˇ n spotˇrebitel˚ um pˇrinese inovativn´ı uˇzivatelsky pˇr´ıvˇetiv´e prostˇred´ı. Pˇri v´ yvoji syst´emu byla br´ana v u ´vahu omezen´ı, kter´ ymi disponuj´ı klasick´a mobiln´ı zaˇr´ızen´ı, jako v´ ydrˇz baterie, menˇs´ı v´ ykonnost a m´alo dostupn´e pamˇeti. Samotn´a platforma Android d´av´a k dispozici nejen operaˇcn´ı syst´em s uˇzivatelsk´ ym prostˇred´ım pro koncov´e uˇzivatele, ale i kompletn´ı ˇreˇsen´ı nasazen´ı operaˇcn´ıho syst´emu (specifikace ovladaˇc˚ u aj.) pro mobiln´ı oper´atory a v´ yrobce zaˇr´ızen´ı a v neposledn´ı ˇradˇe pro v´ yvoj´aˇre aplikac´ı poskytuje efektivn´ı n´astroje pro jejich v´ yvoj – Software Development Kit. Spoleˇcnost Android Inc. byla zaloˇzena v Kalifornii v ˇr´ıjnu 2003 Andym Rubinem, Richem Minerem, Nickem Searsem a Chrisem Whitem. Google Inc. v srpnu roku 2005 odkoupil v t´e dobˇe nepˇr´ıliˇs zn´amou startup“ firmu ” Android Inc. a udˇelal z n´ı svoji dceˇrinou spoleˇcnost. Po odkupu spoleˇcnosti t´ ym Googlu pod veden´ım Andyho Rubina vyvinul platformu zaloˇzenou na Linuxov´em j´adˇre a v z´aˇr´ı roku 2007 Google z´ıskal nˇekolik patent˚ u v oblasti mobiln´ıch technologi´ı. Odborn´a veˇrejnost zaˇcala po akvizici spekulovat, ˇze Google chce t´ımto krokem vstoupit na trh chytr´ ych“ ” mobiln´ıch telefon˚ u a chyst´a vyd´an´ı vlastn´ıho telefonu. Android v naˇsem svˇetˇe najdete na kaˇzd´em rohu, at’ uˇz v chytr´ ych telefonech, tabletech, televiz´ıch a set-top boxech s technologi´ı Google TV. Brzy se vˇsak doˇck´ame operaˇcn´ıho syst´emu i v automobilech, syst´emech letadel a dokonce v robotech. Hlavn´ı oblast´ı uplatnˇen´ı syst´emu Android budou i nad´ale zaˇr´ızen´ı s menˇs´ımi obrazovkami s hardwarovou kl´avesnic´ı ˇci bez n´ı. [5]
5.1
Z´ akladn´ı ˇ c´ asti
Pˇri programov´an´ı aplikac´ı pro poˇc´ıtaˇce m´a v´ yvoj´aˇr pro sebe celou vlastn´ı dom´enu. Sice vyuˇz´ıv´a funkce poskytovan´e operaˇcn´ım syst´emem, ale ostatn´ı programy, kter´e mohou bˇeˇzet v poˇc´ıtaˇci souˇcasnˇe s jeho aplikac´ı, z vˇetˇs´ı 19
5 ANDROID
ˇc´asti v podstatˇe ignoruje. A pokud s jin´ ymi programy jeho aplikace interaguje, vˇetˇsinou se jedn´a o komunikaci se syst´emem MySQL10 nebo jin´ ymi datab´azemi, na kter´e vyuˇz´ıv´a rozhran´ı API11 . Syst´em Android vyuˇz´ıv´a podobn´e koncepce, ale jsou jinak trukturov´any, aby telefony byly odolnˇejˇs´ı v˚ uˇci chyb´am. Operaˇcn´ı syst´em Android se skl´ad´a ze ˇctyˇr ˇc´ast´ı: aktivity, sluˇzby, poskytovatel´e obsahu a z´amˇery. [5] 5.1.1
Aktivity
Stavebn´ımi bloky uˇzivatelsk´eho rozhran´ı jsou aktivity. Aktivitu si m˚ uˇzeme pˇredstavit jako entitu syst´emu Android analogickou k oknu nebo dialgu klasick´e aplikace pro poˇc´ıtaˇce. Syst´em Android je navrˇzen tak, aby podporoval mnoˇzstv´ı nen´aroˇcn´ ych aktivit, takˇze uˇzivatel m˚ uˇze otev´ırat aktivitu klepnut´ım a vr´atit se do dˇr´ıve otevˇren´ ych aktivit pomoc´ı tlaˇc´ıtka Zpˇet. [5] 5.1.2
Sluˇ zby
Sluˇzby jsou oproti tomu navrˇzeny k neust´al´emu provozu, v pˇr´ıpadˇe potˇreby nez´avisle na aktivit´ach, a podobaj´ı se sluˇzb´am nebo d´emon˚ um jin´ ych operaˇcn´ıch syst´em˚ u. Sluˇzbu lze pouˇz´ıt napˇr´ıklad ke kontrole dostupn´ ych aktualizac´ı RSS12 nebo k pˇrehr´av´an´ı hudby na pozad´ı, dokonce i kdyˇz jeho ˇr´ıd´ıc´ı aktivita jiˇz nebˇeˇz´ı. [5] 5.1.3
Poskytovatel´ e obsahu
Poskytovatel´e obsahu poskytuj´ı u ´roveˇ n abstrakce pro jak´akoliv data uloˇzen´a v zaˇr´ızen´ı. V´ yvojov´ y model aplikac´ı pro Android v´as podporuje v tom, abyste sv´a data kromˇe sv´ ych aplikac´ı zpˇr´ıstupnili i ostatn´ım aplikac´ım. Dos´ahnout toho m˚ uˇzete pr´avˇe vytvoˇren´ım poskytovatele obsahu, kter´ y v´am umoˇzn´ı zachovat si u ´plnou kontrolu nad zp˚ usobem pˇr´ıstupu k vaˇsim dat˚ um. Poskytovatelem obsahu m˚ uˇze b´ yt cokoliv, poˇc´ınaje webov´ ymi kan´aly pˇres 13 m´ıstn´ı datab´azi SQLite aˇz po komplikovanˇejˇs´ı varianty. [5] 10
MySQL - datab´ azov´ y syst´em Application Programming Interface - rozhran´ı pro programov´an´ı aplikac´ı 12 Rich Site Summary - informaˇcn´ı kan´al 13 SQLite - relaˇcn´ı datab´ azov´ y syst´em 11
20
5 ANDROID
5.1.4
Z´ amˇ ery
Z´amˇery jsou syst´emov´e zpr´avy, kter´e koluj´ı v zaˇr´ızen´ı a upozorˇ nuj´ı aplikace na r˚ uzn´e ud´alosti, poˇc´ınaje zmˇenami stavu hardwaru pˇres pˇr´ıchoz´ı data aˇz po ud´alosti aplikac´ı. Z´amˇery jsou velmi podobn´e zpr´av´am a ud´alostem jin´ ych operaˇcn´ıch syst´em˚ u. Na z´amˇer m˚ uˇzete nejenom reagovat, ale m˚ uˇzete tak´e vytvoˇrit sv˚ uj vlastn´ı a spustit pomoc´ı nˇeho jin´e aktivity nebo se nechat informovat o urˇcit´ ych situac´ıch. [5]
5.2
ˇ asti uˇ C´ zivatelsk´ e
ˇ asti uˇzivatelsk´e jsou ˇca´sti operaˇcn´ıho syst´emu Android, se kter´ C´ ymi uˇzivatel´e mohou pracovat. Tyto ˇca´sti jsou: uloˇziˇstˇe, s´ıt’, multim´edia, sluˇzby urˇcen´ı zemˇepisn´e polohy a telefonn´ı sluˇzby. 5.2.1
Uloˇ ziˇ stˇ e
Nemˇenn´e komponenty aplikace, napˇr´ıklad ikony nebo soubory n´apovˇedy, se m˚ uˇzou pˇribalit k aplikaci ve formˇe datov´ ych soubor˚ u. Vyuˇzit´ı najde mal´ y prostor u ´loˇziˇstˇe pˇr´ımo v zaˇr´ızen´ı a je do nˇej ukl´ad´ana datab´aze nebo soubory naˇcten´ ych dat nebo dat zadan´ ych uˇzivatelem, se kter´ ymi aplikace pracuje. Pokud uˇzivatel pouˇz´ıv´a velkokapacitn´ı u ´loˇziˇstˇe, napˇr´ıklad SD14 , m˚ uˇzete zapisovat a ˇc´ıst soubory i v tomto uloˇziˇsti. [5] 5.2.2
S´ıt’
Zaˇr´ızen´ı Android jsou vˇetˇsinou pˇripravena k pˇripojen´ı k Internetu pomoc´ı nˇekter´eho z pˇrensov´ ych m´edi´ı. Pˇripojen´ı k Internetu m˚ uˇze vyuˇz´ıt na libovoln´e u ´rovni sockety jazyka Java poˇc´ınaje aˇz po vestavˇen´ y widget webov´eho prohl´ıˇzeˇce zaloˇzen´eho na j´adˇre WebKit15 , kter´ y m˚ uˇzete vloˇzit do sv´e aplikace. [5] 14 15
Secure Digital - pamˇet’ov´ a karta WebKit - renderovac´ı j´ adro prohl´ıˇzeˇce
21
5 ANDROID
5.2.3
Multim´ edia
Zaˇr´ızen´ı Android m´a maj´ı schopnost pˇrehr´av´an´ı a z´aznamu zvuku a obrazu. Aˇckoliv maj´ı jednotliv´a zaˇr´ızen´ı odliˇsn´e specifikace pˇr´ısluˇsn´eho hardwaru, m˚ uˇzete jejich schopnosti snadno zjistit a pot´e jejich multimedi´aln´ı schopnosti vyuˇz´ıt tak, jak uzn´ate za vhodn´e, at’ uˇz k pˇrehrv´an´ı hudby, poˇrizov´an´ı fotografi´ı pomoc´ı fotoapar´atu nebo z´aznamu zvuku pomoc´ı mikrofonu. [5] 5.2.4
Sluˇ zby urˇ cen´ı zemˇ episn´ e polohy
Zaˇr´ızen´ı Android ˇcasto nab´ızej´ı pˇr´ıstup k poskytovatel˚ um u ´daj˚ u o zemˇepisn´e 16 poloze, napˇr´ıklad k syst´emu GPS nebo triangulaci na z´akladˇe polohy vys´ılaˇc˚ u, kter´e mohou vaˇse aplikace informovat o zemˇepisn´e poloze zaˇr´ızen´ı. Z´ıskan´a data pak m˚ uˇzete obratem vyuˇz´ıt k zobrazen´ı map nebo napˇr´ıklad sledov´an´ı pohybu zaˇr´ızen´ı v pˇr´ıpadˇe jeho odcizen´ı. [5] 5.2.5
Telefonn´ı sluˇ zby
Protoˇze jsou zaˇr´ızen´ı Android obvykle telefeony, m˚ uˇze v´aˇs software prov´adˇet vol´an´ı odes´ılat a pˇrij´ımat textov´e zpr´avy a prov´adˇet veˇsker´e dalˇs´ı operace, kter´e nab´ız´ı modern´ı telefonn´ı technologie. [5]
5.3
Architektura
K v´ yvoji aplikac´ı je potˇreba zn´at z´akladn´ı informace o architektuˇre operaˇcn´ıho syst´emu Android, ve kter´em budou aplikace spouˇstˇeny. Architekturu Androidu tvoˇr´ı architektonick´e vrstvy. [6] 5.3.1
Linux Kernel
Z´akladn´ı a nejniˇzˇs´ı vrstvou architektury Androidu, je upraven´e j´adro ope´ raˇcn´ıho syst´emu Linux. Upravy se t´ ykaj´ı redukce funkc´ı a pˇrizp˚ usoben´ı moˇznostem mobiln´ıch zaˇr´ızen´ı. J´adro slouˇz´ı k pˇr´ım´e interakci s hardwarem mobiln´ıho zaˇr´ızen´ı, ˇc´ımˇz zabezpeˇcuje u ´plnou abstrakci od hardwaru pro vyˇsˇs´ı softwarov´e vrstvy. Zabezpeˇcuje spr´avu pamˇeti, spr´avu procesor˚ u, z´akladn´ı ˇ ızen´ı proces˚ s´ıt’ovou vstvu a ovladaˇce. R´ u umoˇzn ˇuje, aby v´ıce proces˚ u bˇeˇzelo 16
Global Positioning System - glob´aln´ı polohovac´ı syst´em
22
5 ANDROID
souˇcesnˇe, aniˇz by se vz´ajemnˇe ovlivˇ novaly. Na u ´rovni j´adra je implementovan´e i zabezpeˇcen´ı syst´emu, spr´ava nap´ajen´ı, vstupnˇe.v´ ystupn´ı operace ˇci z´akladn´ı grafika. [6] 5.3.2
Libraries
Nad j´adrem je situovan´a vrstva knihoven, kter´e poskytuj´ı pˇr´ım´ y pˇr´ıstup aplikac´ı k r˚ uzn´ ym komponent´am syst´emu Android. Jsou to nativn´ı knihovny napsan´e v C/C++. Tvoˇr´ı mezivstvu mezi r˚ uzn´ ymi komponentami vyˇsˇs´ıch vrstev a linuxov´ ym j´adrem. [6] 5.3.3
Android Runtime
Android Runtime obsahuje sadu z´akladn´ıch knihoven. Kaˇzd´a aplikace pro Android je samostatn´ y proces vyuˇz´ıvaj´ıc´ı vlastn´ı instanci virtu´aln´ıho stroje 17 DVM . Zabezpeˇcuje bˇeh spustiteln´ ych soubor˚ u s pˇr´ıponou DEX, kde soubory DEX vznikly kompilac´ı z klasick´ ych soubor˚ u CLASS a JAR. Dalvik je optimalizovan´ y pro mobiln´ı zaˇr´ızen´ı, to znamen´a, ˇze bere v u ´vahu omezen´ı moˇznosti nap´ajen´ı, menˇs´ı pamˇet’ a podobnˇe. Souˇcasnˇe m˚ uˇze bˇeˇzet v´ıce instanc´ı virtu´aln´ıho stroje. Po spuˇstˇen´ı aplikace Java kompil´ator pˇreloˇz´ı soubory zdrojov´eho k´odu vaˇs´ı aplikace do v´ıce bin´arn´ıch souboru Javy. N´astroj s n´azvem DX transformuje tyto bin´arn´ı javov´e soubory do jednoho souboru ve form´atu DEX. Virtu´aln´ı stroj Dalvik potom tento soubor zaˇcne vykon´avat. [6] 5.3.4
Application Framework
Aplikaˇcn´ı framework obsahuje v aplikac´ıch opakovanˇe pouˇziteln´ y software, napˇr´ıklad ovl´adac´ı prvky, ikony a podobnˇe. Framework je naps´an v Javˇe a je to nejd˚ uleˇzitˇejˇs´ı vrstva pro v´ yvoj´aˇre aplikac´ı. Poskytuje aplikac´ım z´akladn´ı sluˇzby syst´emu: Package Manager, Window Manager, View System a Activity Manager. [6] 17
Dalvik Virtual Machine
23
5 ANDROID
5.3.5
Aplikace
Na nejvyˇsˇs´ı u ´rovni architektury operaˇcn´ıho syst´emu Android, jsou aplikace, napˇr´ıklad program na pos´ıl´an´ı zpr´av, navigaci, kalend´aˇr, seznam kontakt˚ u a podobnˇe. [6]
Obr´azek 1: Architektura operaˇcn´ıho syst´emu Android
5.4
Historie verz´ı Androidu
Jednotliv´e verze operaˇcn´ıho syst´emu Android maj´ı kromˇe ˇc´ıseln´eho oznaˇcen´ı i k´odov´e a t´ım je n´azev z´akusku. [6] 5.4.1
Android 1.5 Cupcake
S touto verz´ı pˇriˇsla podpora virtu´aln´ıch kl´avesnic tˇret´ıch stran s podporou vlastn´ıch slovn´ık˚ u, nahr´av´an´ı a pˇrehr´av´an´ı videa ve form´atech MPEG-4 a 3GP, moˇznost kop´ırovat a vloˇzit obsah pˇres shcr´anku, podpora videa YouTube a obr´azk˚ u Picasa, um´ıst’ov´an´ı widget˚ u na dom´ac´ı obrazovku a animace
24
5 ANDROID
pˇrechod˚ u mezi obrazovkami. V dobˇe n´astupu verze byly v Android Marketu 3000 aplikac´ı. [6] 5.4.2
Android 1.6 Donut
Verze 1.6 pˇrin´aˇs´ı integrovan´e vyhled´av´an´ı Google, aplikaˇcn´ı Market vylepˇsen´ y o obr´azky a hodnocen´ı uˇzivatel˚ u, pr´ace s v´ıce soubory, univerz´aln´ı vyhledavaˇc, vylepˇsen´e hlasov´e vyhled´av´an´ı, podpora displej˚ u s vyˇsˇs´ım rozliˇsen´ım, bezplatn´a navigace zaloˇzen´a na aplikac´ıch od Google a podpora VPN18 . [6] 5.4.3
Android 2.0/2.1 Eclair
Tento z´akusek pˇrinesl nov´ y design uˇzivatelsk´eho prostˇred´ı, optimalizaci v´ ykonu, podpora standart˚ u HTML5, Bluetooth 2.1, podpora Microsoft Exchange a Google Maps 3.x, ˇziv´e tapety a podpora velk´eho mnoˇzstv´ı rozliˇsen´ı displej˚ u. V dobˇe n´astupu verze bylo v Android Marketu 20 000 aplikac´ı. [6] 5.4.4
Android 2.2 Froyo
ˇ Slehaˇ ckov´a ˇspiˇcka pˇrinesla nov´e uˇzivatelsk´e prostˇred´ı a webov´ y prohl´ıˇzeˇc s optimalizac´ı JavaScriptu, podpora Flash 10, moˇznosti instalovat aplikace i na pamˇet’ovou kartu, vylepˇsen´e z´alohov´an´ı, USB modem, 3D galerie a sd´ılen´ı kontakt˚ u pˇres Bluetooth, moˇznost vytvoˇrit Wi-Fi hospot, v´ yznamn´a optimalizace pouˇz´ıv´an´ı pamˇeti a celkov´eho v´ ykonu, moˇznost automatick´ ych aktualizac´ı aplikac´ı z Android Marketu. V dobˇe n´astupu verze bylo v Android Marketu 100 000 aplikac´ı. [6] 5.4.5
Android 2.3 Gingerbread
Pern´ıˇcek pˇrinesl vylepˇsenou spr´avu nap´ajen´ı, podporu v´ıce fotoapar´at˚ u, ko19 munikaci pˇres NFC , podporu dalˇs´ıch typ˚ u senzor˚ u, vylepˇsen´e stahov´an´ı velk´ ych soubor˚ u, podporu internetov´ ych hovor˚ u a vylepˇsenou virtu´aln´ı kl´avesnici. [6] 18 19
Virtual Private Network - virtu´ aln´ı priv´atn´ı s´ıt’ Near Field Communication
25
5 ANDROID
5.4.6
Android 3.0 Honeycomb
U t´eto prvn´ı verze, kter´a je urˇcen´a pro tablety, je vylepˇsen´ı uˇzivatelsk´eho rozhran´ı, Action Bar, zjednoduˇsen´a notifikace, pˇrizp˚ usobiteln´a domovsk´a obrazovka, hardwarov´a akcelerace a podpora USB pˇr´ısluˇsenstv´ı. [6] 5.4.7
Android 4.0 IceCream Sandwich
Verze zmrzlina odstraˇ nuje rozd´ıly mezi verzemi pro mobiln´ı zaˇr´ızen´ı a verzemi pro tablety. Novinkou je: aplikace na obrazovce uzamˇcen´ı, ned´avno spuˇstˇen´e aplikace, vytv´aˇren´ı adres´aˇr˚ u, moˇznost zruˇsit notifikace, zastaven´ı aplikac´ı na pozad´ı, odemknut´ı rozpozn´an´ım tv´aˇre, pˇrevod hlasu na text, nov´ y internetov´ y prohl´ıˇzeˇc, podpora vide ve Full HD a integrace soci´aln´ıch s´ıt´ı do kontakt˚ u. [6] 5.4.8
Android 4.2 Jelly Bean
Verze s barevn´ yma bonb´onkama pˇrinesla GCM20 , vylepˇsen´e notifikace, vylepˇsenou aktualizaci aplikac´ı, widgety na obrazovce uzamˇcen´ı, vyhled´av´an´ı Google Now, moˇznost pˇrep´ın´an´ı uˇzivatelsk´ ych u ´ˇct˚ u, v´ yrazn´e zrychlen´ı vykreslov´an´ı obrazu a rozpozn´av´an´ı hlasu i offline. [6] 5.4.9
Android 4.4 KitKat
Aktu´alnˇejˇs´ı verze 4.4 pˇrinesla vyˇsˇs´ı v´ ykon, vylepˇsenou podporu zaˇr´ızen´ı s v´ıcej´adrov´ ymi procesory, rychlejˇs´ı multitasking, podporu v´ıce cloudov´ ych sluˇzeb, fullscreen reˇzim pro nˇekolik aplikac´ı, podporu krokomˇeru a infraˇcerven´eho ovl´ad´an´ı a inteligentn´ı vyp´ın´an´ı nepotˇrebn´ ych proces˚ u na pozad´ı. [6] 5.4.10
Android 5.0 Lollipop
Nejnovˇejˇs´ı verz´ı je Android 5.0 Lollipop a jednou z velk´ ych zmˇen je nahrazen´ı dosud pouˇz´ıvan´eho virtu´aln´ıho stroje Dalvik, pod kter´ ym bˇeˇzely 21 aplikace. Nov´ ym enginem je ART . Hlavn´ım pˇr´ınosem ART je moˇznost 20 21
Google Cloud Messaging - podpora uˇzivatelsk´ ych u ´ˇct˚ u Android Runtime
26
5 ANDROID
kompilovat ˇca´st k´odu aplikac´ı uˇz pˇri jejich isntalaci. To v´ yznamnˇe urychl´ı spouˇstˇen´ı aplikac´ı a sekund´arnˇe prodlouˇz´ı v´ ydrˇz baterie, jelikoˇz Dalvik proces kompilace vykon´aval pˇri kaˇzd´em spuˇstˇen´ı. [6]
Obr´azek 2: Historie verz´ı OS Android
27
ˇ ´ 6 POZADAVKY PRO VYVOJ APLIKAC´I
6
Poˇ zadavky pro v´ yvoj aplikac´ı
Vyv´ıjen´ı nativn´ıch aplikac´ı, at’ uˇz se jedn´a o jak´ ykoliv operaˇcn´ı syst´em, je odliˇsn´e a vyuˇz´ıv´a pˇredem definovan´e n´astroje. V´ yvoj´aˇri, kteˇr´ı se rozhodnou programovat nativn´ı aplikace pro chytr´e mobiln´ı zaˇr´ızen´ı, mus´ı poˇc´ıtat s n´aroˇcnˇejˇs´ımi poˇzadavky. K vyv´ıjen´ı nativn´ıch aplikac´ı je tˇreba v´ ykonn´ y hardware poˇc´ıtaˇcov´eho zaˇr´ızen´ı s libovoln´ ym operaˇcn´ım syst´emem, nainstalovan´e komponenty programovac´ıho jazyka a pˇredem vybran´e v´ yvojov´e prostˇred´ı. V´ yvoj aplikac´ı pro iOS je zaloˇzeno na multi-dotykov´ ych gestech, tedy na objektech se kter´ ymi lze pracovat pouze dotykem prstu. Platforma je zaloˇzena na operaˇcn´ım syst´emu OS X s v´ yvojov´ ym prostˇred´ım IDE Xcode. V´ yvojojov´ ym jazykem pro tuto platformu je Objektive-C, kter´ y je nastavbou jazyka C. Pro v´ yvoj a testov´an´ı na platformˇe Windows Phone je potˇreba v´ yvojov´e prostˇred´ı IDE Visual Studio s rozˇs´ıˇren´ım Windows Phone Developer Tools. Toto prostˇred´ı vyˇzaduje operaˇcn´ı syst´em Windows a v´ yvojov´ ym OOP jazykem je C#. U operaˇcn´ıho syst´emu Android je v´ yvoj multiplatformn´ı, kde se m˚ uˇze vyv´ıjet na Windows, OS X a Linuxu. Aplikace se programuj´ı v OOP jazyce Java a v souˇcastnosti m´ame nejrozˇs´ıˇrenˇejˇs´ı v´ yvojov´a prostˇred´ı Android Studio a Eclipse. Doned´avna bylo z´akladn´ım a doporuˇcen´ ym v´ yvojov´ ym prostˇred´ım Eclipse s pluginem ADT, ale v souˇcastnosti je instalace komplikovan´a, IDE pomal´e a celkovˇe nepˇrehledn´e. Spoleˇcnost Google Inc. ned´avno pˇriˇsla s nov´ ym v´ yvojov´ ym prostˇred´ım Android Studio. [7]
6.1
Android Studio
Android Studio je spoleˇcn´ ym d´ılem Googlu a JetBrains. Pˇrestoˇze vˇetˇsina produkt˚ u od JetBrains jsou placen´e komerˇcn´ı n´astroje, Android Studio je zcela zdarma. Je postaveno verz´ı prostˇred´ı IntellJ IDEA. D´ıky tomu z´ısk´av´a vˇsechny moˇznosti pr´ace s k´odem. [8]
28
ˇ ´ 6 POZADAVKY PRO VYVOJ APLIKAC´I
6.1.1
Instalace
Instalace je jednoduch´a. Na str´ank´ach https://developer.android.com se st´ahne soubor podle vybran´eho operaˇcn´ıho syst´emu a nainstaluje se do poˇc´ıtaˇcov´eho zaˇr´ızen´ı. Android Studio se nab´ız´ı na tˇrech platform´ach Windows, Mac a Linux.
Obr´azek 3: Dom´ac´ı str´anka Android - staˇzen´ı Android Studio
Po kliknut´ı na stahovat se zobraz´ı str´anka s podm´ınkami a pravidly. Po pˇreˇcten´ı a zaˇskrtnut´ı o souhlasu se m˚ uˇze soubor st´ahnout. Je tˇreba db´at na to, ˇze velikost instalaˇcn´ıho souboru dosahuje k 1GB.
29
ˇ ´ 6 POZADAVKY PRO VYVOJ APLIKAC´I
Obr´azek 4: Dom´ac´ı str´anka Android - podm´ınky pro staˇzen´ı
D´ale je vidˇet str´anka, kter´a rad´ı jak postupovat v instalaci souboru a instalaci JDK. Souˇca´st´ı instalace je samotn´e Android Studio IDE, Android SDK Tools, Android kompil´ator a z´akladn´ı emul´atory.
30
ˇ ´ 6 POZADAVKY PRO VYVOJ APLIKAC´I
Obr´azek 5: Dom´ac´ı str´anka Android - rady pˇri instalaci
31
7 TECHNOLOGIE ANDROID STUDIA
7 7.1
Technologie Android Studia Responsivn´ı IDE
Cel´e IDE se pˇrizp˚ usobuje velikosti okna. N´ahledy se zmenˇsuj´ı nebo zvˇetˇsuj´ı, jsou vedle sebe nebo pod sebou. Paleta prvk˚ u se automaticky zobraz´ı ve v´ıce sloupc´ıch podle m´ısta v zobrazen´ı. M´a-li v´ yvoj´aˇr velk´ y monitor, pak m˚ uˇze tu plochu plnohodnotnˇe vyuˇz´ıt. [8]
7.2
Gradle
Android Studio pouˇz´ıv´a stavebn´ı n´astroj Gradle. Ant a Maven, coˇz jsou starˇs´ı stavebn´ı n´astroje, kter´e se pouˇz´ıvali ve v´ yvojov´em prostˇred´ı Eclipse, Gradle oba nahrazuje. [8]
7.3
Design aktivit
Stejnˇe jako ve v´ yvojov´em prostˇred´ı Eclipse, lze v Android Studiu navrhovat design bud’ v XML nebo v Design m´odu. Pokud je v´ yvoj´aˇr zvykl´ı ps´at pˇr´ımo v XML m´odu, Android Studio automaticky zobrazuje n´ahled ve vybran´em rozliˇsen´ı. D´ıky tomu se nemus´ıte poˇra´d pˇrep´ınat do Designu nebo dokonce do emul´atoru. Velkou v´ yhodou je Preview All Screen Sizes, coˇz m´ısto jednoho zobraz´ı n´ahledy ve vˇsech moˇzn´ ych rozliˇsen´ıch. [8]
32
7 TECHNOLOGIE ANDROID STUDIA
Obr´azek 6: V´ yvojov´e prostˇred´ı Android Studio
7.4
Emul´ ator
Souˇca´st´ı Android Studia jsou emul´atory pro Nexus 4, 7 a 10, Nexus S, Nexus One a Galaxy Nexus. D´ale je k dizpozici i nˇekolik bezejmen´ ych zaˇr´ızen´ı s r˚ uzn´ ym rozliˇsen´ım. Emul´ator se m˚ uˇze libovolnˇe konfigurovat: verze Android API, velikost RAM, u ´loˇziˇstˇe a SD karty nebo pˇredn´ı ˇci zadn´ı kameru. Kamery se m˚ uˇzou napojit na kameru vaˇseho poˇc´ıtaˇce. Emul´atory jsou spolehliv´e, ale maj´ı jeden velk´ y nedostatek a to, ˇze jsou neskuteˇcnˇe pomal´e i na rychl´em poˇc´ıtaˇci. Existuj´ı jin´e varianty testov´an´ı aplikac´ı nejl´epe pˇripojen´ım USB kabelu poˇc´ıtaˇce s mobiln´ım zaˇr´ızen´ım nebo staˇzen´ım extern´ıch emul´ator˚ u, kter´e jsou o nˇeco rychlejˇs´ı neˇz ty zabudovan´e v Android Studiu.[8]
33
7 TECHNOLOGIE ANDROID STUDIA
Obr´azek 7: Z´akladn´ı emul´ator v Android Studio
7.5
Lokalizace aplikac´ı
V Android aplikac´ıch je zvykem m´ıt vˇsechny stringy uloˇzen´e v resources, coˇz pˇreklad velmi usnadˇ nuje. Android Studio to cel´e jeˇstˇe zjednoduˇsuje. Pouze zvol´ıte Add translation, vyberete jazyk, kter´ y chcete pˇridat, a zobraz´ı se tabulka, ve kter´e pˇrehlednˇe editujete pˇreklad jednotliv´ ych string˚ u.[8]
34
´ C ˇ AST ´ 8 PRAKTICKA
8
Praktick´ aˇ c´ ast
Praktickou ˇca´st´ı moji bakal´aˇrsk´e pr´ace bylo vytvoˇrit p´ar praktick´ ych pˇr´ıklad˚ u, kter´e poukazuj´ı na nov´e funkce v objektovˇe orientovan´em programovac´ım jazyce Java. Tyto pˇr´ıklady jsou uk´az´any v jednotliv´ ych nativn´ıch aplikac´ıch pro chytr´e telefony s operaˇcn´ım syst´emem Android. Hlavn´ı ˇc´ast´ı m´e pr´ace bylo vytvoˇrit nativn´ı aplikaci katedry informatiky pro operaˇcn´ı syst´em Android. Dalˇs´ı ˇca´st´ı byla tvorba mobiln´ı verze webov´e str´anky katedry informatiky a testov´an´ı jej´ı funˇcknosti v aktu´aln´ıch verz´ıch mobiln´ıch operaˇcn´ıch syst´em˚ u. Posledn´ı ˇc´ast´ı m´e pr´ace bylo porovn´avn´an´ı aktu´aln´ı technologie Java s perspektivn´ı variantou pomoc´ı HTML5.
8.1
Sada praktick´ ych pˇ r´ıklad˚ u
Prvn´ım jednoduˇsˇs´ım pˇr´ıkladem bylo vytvoˇren´ı nativn´ı aplikace, kter´a ukazuje lokaci zemˇepisn´e v´ yˇsky a ˇs´ıˇrky. Tato funkce se vyuˇz´ıv´a vˇsude u aplikac´ı, kde potˇrebuje zn´at uˇzivatelovu gps lokaci. Nativn´ı aplikace nese n´azev GPS Lokace. Dalˇs´ım pˇr´ıkladem byla o nˇeco sloˇzitˇejˇs´ı aplikace, kter´a pomoc´ı fotoapar´atu chytr´eho mobiln´ıho zaˇr´ızen´ı vyfotila obr´azek a pokud se na obr´azku zobrazoval nˇejak´ y text, tak ho oskenoval a pˇrepsal do textov´eho soubouru. Tato aplikace se naz´ yv´a OCR Scanner. Posledn´ım pˇr´ıkladem byla aplikace, kter´a nejv´ıce z cel´e ˇc´asti funguje na fragmentech. V praxi to vypad´a tak, ˇze posunut´ım na displeji do strany, listujete mezi fragmenty. Aplikace pod n´azvem Bobˇr´ık informatiky je na distribuˇcn´ım serveru Google Play. 8.1.1
GPS Lokace
Velmi jednoduch´a aplikace, kter´a po spuˇstˇen´ı zobraz´ı pouze jedno tlaˇc´ıtko uprostˇred displeje. Pokud uˇzivatel klikne na tlaˇc´ıtko, zobraz´ı se zemˇepisn´a v´ yˇska a ˇs´ıˇrka podle toho, kde se s zaˇr´ızen´ım moment´alnˇe vyskytuje. Nastaven´ı GPS na telefonu mus´ı b´ yt aktivn´ı, jinak se na displeji uk´aˇze dialog a pˇresmˇeruje uˇzivatele do nastaven´ı GPS. Tato nativn´ı aplikace je dostupn´a na distribuˇcn´ım serveru Google Play pod n´azvem GPS Lokace. 35
´ C ˇ AST ´ 8 PRAKTICKA
Tento pˇr´ıklad funguje na z´akladˇe pomocn´e tˇr´ıdy Location, kter´a pˇredstavuje u ´daje o geografick´e poloze. Vytvoˇren´a tˇr´ıda GPSTracker slouˇz´ı ke zjiˇst’ov´an´ı zapnut´ ych a vypnut´ ych funkc´ı v zaˇr´ızen´ı.
Obr´azek 8: Metoda zjiˇst’uj´ıc´ı lokaci
Pokud je GPS vypnuta, spust´ı se metoda showSettingsAlert(), kter´a uˇzivatele odkazuje do nastaven´ı GPS.
Obr´azek 9: Metoda zjiˇst’uj´ıc´ı zapnut´e GPS
Pokud je GPS zapnuta a uˇzivatel klikne na tlaˇc´ıtko Vaˇse Lokace“, zob” raz´ı se mu na displeji u ´daje geografick´e polohy.
36
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 10: Metoda vypisuj´ıc´ı lokaˇcn´ı hodnoty
Uk´azka nativn´ı aplikace GPS Lokace.
37
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 11: Uk´azka aplikace GPS Lokace
8.1.2
OCR Scanner
O nˇeco sloˇzitˇejˇs´ı praktick´ y pˇr´ıklad je OCR Scanner, kter´ y umoˇzn´ı optick´e rozpozn´an´ı znak˚ u pomoc´ı scanneru a umoˇzn ˇuje digitalizaci tiˇstˇen´ ych text˚ u, s nimiˇz pak lze pracovat jako s norm´aln´ım poˇc´ıtaˇcov´ ym textem. Po spuˇstˇen´ı aplikace OCR Scanner se zobraz´ı na displeji fotoapar´at, kde si m˚ uˇzete nastavit horizont´alnˇe a vertik´alnˇe co chcete fotit. Po vyfocen´ı obr´azku s textem se text pˇreformuluje do elektronick´e podoby. Pokud chceme detekovat text, mus´ıme pˇrednastavit znaky, kter´e chceme dostat. Existuj´ı povolen´e znaky, kter´e chceme zobrazit a naopak zak´azan´e 38
´ C ˇ AST ´ 8 PRAKTICKA
znaky, kter´e nechceme zobrazit.
Obr´azek 12: K´od detekce textu
Jeˇstˇe pˇred vyfocen´ım je tˇreba vytvoˇrit ok´enko pro v´ ybˇer textu na obr´azku.
39
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 13: Vybran´ y text
Po vyfocen´ı obr´azku s vybran´ ym textem dostaneme text v elektronick´e podobˇe.
40
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 14: Uk´azka dek´odovan´eho textu 8.1.3
SQLite datab´ aze
U kaˇzd´e nativn´ı aplikace s vˇetˇs´ım rozsahem dat by nemˇela chybˇet datab´aze. V´ yvoj´aˇr m´a moˇznost si vybrat z v´ıce typ˚ u datab´az´ı. Jedn´ım z ˇcasto pouˇz´ıvan´ ym je SQLite. Uk´azka vytvoˇren´ı tabulek a ˇra´dk˚ u v datab´azi.
41
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 15: Uk´azka datab´aze, tabulek a ˇr´adk˚ u
Abychom mohli vytvoˇrit datab´azi a jej´ı tabulky a ˇra´dky, potˇrebujeme se odkazovat na pomocnou tˇr´ıdou SQLiteOpenHelper, kde pouˇzijeme onCreate a onUpgrade. Metoda onCreate n´am vytvoˇr´ı datab´azi s tabulkami a ˇra´dkami a metoda onUpgrade n´am aktualizuje tabulky a ˇr´adky podle verze datab´aze, kterou j´ı pˇriˇrad´ıme.
Obr´azek 16: Vytvoˇren´ı a aktualizace datab´aze
42
´ C ˇ AST ´ 8 PRAKTICKA
Pro kaˇzdou tabulku je tˇreba vytvoˇrit Controller, kde se bude pouˇz´ıvat z´aznam pro uloˇzen´ı, aktualizace, ˇcten´ı a maz´an´ı dat v datab´azi. Pokud’ ukl´ad´ame data do datab´aze, pouˇzijeme metodu saveRaceCheckpoint.
Obr´azek 17: Uk´azka ukl´ad´an´ı dat do datab´aze
Dalˇs´ı d˚ uleˇzit´a metoda pro ˇcten´ı dat z datab´aze je loadRaceCheckpoint.
Obr´azek 18: Uk´azka ˇcten´ı dat z datab´aze 43
´ C ˇ AST ´ 8 PRAKTICKA
8.2
Nativn´ı aplikace katedry informatiky
Hlavn´ım c´ılem m´e bakal´aˇrsk´e pr´ace bylo vytvoˇrit nativn´ı aplikaci pro katedru informatiky, kter´a usnadn´ı pˇr´ıstup k informac´ım katedry a poslouˇz´ı tˇem uˇzivatel˚ um, kteˇr´ı chtˇej´ı m´ıt dostupn´e informace katedry pˇr´ımo na sv´ ych mobiln´ıch zaˇr´ızen´ıch. Velkou v´ yhodou je moˇznost pouˇz´ıv´an´ı aplikace bez pˇripojen´ı k internetu. Kaˇzd´ ym pˇripojen´ım k s´ıti a spuˇstˇen´ım t´eto aplikace, aktualizujete informace z katedry informatiky na souˇcasnou verzi. Po spuˇstˇen´ı aplikace se na displeji zaˇr´ızen´ı zobraz´ı u ´vodn´ı str´anka s logem katedry informatiky a po p´ar vteˇrin´ach n´asleduje str´anka s hlavn´ım menu, kde m´a uˇzivatel na v´ ybˇer ze tˇr´ı hlavn´ıch odkaz˚ u Uchazeˇc, Student a Katedra. Souˇca´st´ı hlavn´ıho menu jsou i Aktuality katedry informatiky. Pokaˇzd´e kdyˇz uˇzivatel klikne na logo Katedra informatiky, tak ho to vr´at´ı na aktivitu hlavn´ıho menu.
44
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 19: Uk´azka aplikace katedry informatiky
Pokud uˇzivatel klikne na odkaz Uchazeˇc, Student nebo Katedra, tak ho pˇresmˇeruje na rozcestn´ık pododkaz˚ u katedry informatiky.
45
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 20: Uk´azka rozcestn´ıku aplikace katedry informatiky
C´ılov´ ym obsahem je odkaz s obsahem informac´ı katedry informatiky.
46
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 21: Uk´azka c´ılov´eho obsahu katedry informatiky
8.2.1
Metodika aplikace
K tvorbˇe nativn´ı aplikace je tˇreba si naj´ıt cestu. Je ˇrada r˚ uzn´ ych moˇznost´ı, jak postupovat. Prvn´ı moˇznost´ı bylo propojen´ı nativn´ı aplikace s datab´az´ı katedry informatiky. Vzhledem k tomu, ˇze datab´aze katedry informatiky neobsahuje text, bylo zapotˇreb´ı naj´ıt jin´e ˇreˇsen´ı. ˇ sen´ım je tˇr´ıda WebView, kter´a funguje na j´adˇre WebKit. K vykresReˇ len´ı obsahu v aktivitˇe okna postaˇc´ı URL adresa. K tomu, aby fungovalo vykreslen´ı obsahu, je tˇreba povolit opr´avnˇen´ı INTERNET v souboru Manifest.xml.
47
´ C ˇ AST ´ 8 PRAKTICKA
Bylo tˇreba obohatit aplikaci pˇrid´an´ım funkce, kter´a ji pˇrevede do offline reˇzimu. Pomoc´ı metody isNetworkAvailable() bylo moˇzn´e kontrolovat, jestli m´a zaˇr´ızen´ı zapnut´ y nebo vypnut´ y internet. Podle toho aplikace naˇc´ıtala pˇr´ımo z internetu nebo z mezipamˇeti mobiln´ıho zaˇr´ızen´ı.
Obr´azek 22: K´od WebView
Obr´azek 23: Opr´avnˇen´ı v manifest.xml
8.2.2
Testov´ an´ı
Testov´an´ı aplikace katedry informatiky jsem prov´adˇel pomoc´ı USB kabelu pˇripojen´ım k mobiln´ımu zaˇr´ızen´ı. Existuje moˇznost testov´an´ı pˇres r˚ uzn´e 48
´ C ˇ AST ´ 8 PRAKTICKA
emul´atory, ale rychlejˇs´ı bylo testov´an´ı aplikace pˇr´ımo pˇres mobiln´ı zaˇr´ızen´ı. Testov´an´ı kompability aplikace katedry informatiky s Android verzemi je jednoduch´a z´aleˇzitost. Pˇri vytv´aˇren´ı projektu je moˇznost v´ ybˇeru kompability verz´ı Androidu, kde je v´ ybˇer od minim´aln´ı po souˇcasnou verzi.
Obr´azek 24: V´ ybˇer verze pˇri vytv´aˇren´ı aplikace
8.2.3
Publikov´ an´ı na Google Play
K tomu, aby mohl v´ yvoj´aˇr publikovat aplikace na port´alu Google Play, mus´ı m´ıt zaplacen´ y registraˇcn´ı poplatek v´ yvoj´aˇre. Tento poplatek ˇcin´ı aktu´alnˇe 25 americk´ ych dolar˚ u, tedy nˇeco pˇres 500 ˇcesk´ ych korun a plat´ı pouze pro verze aplikac´ı, kter´e jsou zcela zdarma. Pokud by chtˇel v´ yvoj´aˇr svoje aplikace prod´avat, musel by si vytvoˇrit u ´ˇcet obchodn´ıka na Google Wallet. Prod´avat aplikace na Google Play nen´ı jednoduch´e. V´ yvoj´aˇr mus´ı m´ıt ˇzivnostensk´ y list nebo podnikat. Po vytvoˇren´ı a publikov´an´ı na Google Play m´a v´ yvoj´aˇr moˇznost kont49
´ C ˇ AST ´ 8 PRAKTICKA ´ rolovat u ´daje o sv´e aplikaci. Udaj o statistik´ach pojedn´av´a poˇcet instalac´ı zaˇr´ızen´ı.
Obr´azek 25: V´ yvoj´aˇrsk´a konzole - statistiky
Uˇzivatel´e mohou hodnotit aplikaci na serveru Google Play, v´ yvoj´aˇr m´a tak pˇrehled pˇr´ımo ve v´ yvoj´aˇrsk´e konzoli Google Play.
Obr´azek 26: V´ yvoj´aˇrsk´a konzole - hodnocen´ı 50
´ C ˇ AST ´ 8 PRAKTICKA
APK je pro v´ yvoj´aˇre nejd˚ uleˇzitˇejˇs´ım u ´dajem v konzoli Google Play. M˚ uˇze nahr´avat aplikace v alfa, beta nebo v pln´e verzi. Pokud v´ yvoj´aˇr bude testovat svoj´ı aplikaci v alfa nebo v beta verzi, mus´ı poˇc´ıtat s t´ım, ˇze po n´ahr´an´ı na server Google Play, aplikaci nikdo neuvid´ı. Mus´ı vytvoˇrit skupinu, pozvat uˇzivatele, od kter´ ych chce, aby mu aplikaci otestovali. D´ale m˚ uˇze kontrolovat podporovan´a zaˇr´ızen´ı nebo vylouˇcen´a zaˇr´ızen´ı.
Obr´azek 27: V´ yvoj´aˇrsk´a konzole - APK
Dalˇs´ım d˚ uleˇzit´ ym u ´dajem je Z´aznam v obchodu, kter´ y slouˇz´ı pro vyplnˇen´ı nebo opravov´an´ı u ´daj˚ u o aplikaci. V t´eto sekci v´ yvoj´aˇr m˚ uˇze pˇrid´avat grafick´e podklady.
51
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 28: V´ yvoj´aˇrsk´a konzole - Z´aznam v obchodu
8.3
Responzivn´ı web katedry informatiky
Druh´ ym hlavn´ım c´ılem bylo vytvoˇrit optim´aln´ı zobrazen´ı webov´e str´anky katedry informatiky pro chytr´e mobiln´ı zaˇr´ızen´ı. Postup pˇri tvorbˇe mobiln´ıho webu byl jednoznaˇcn´ y a to pˇres responzivn´ı zobrazen´ı, protoˇze responzivn´ı webdesign je souˇcastnˇe nejpouˇz´ıvanˇejˇs´ı technologi´ı u vytv´aˇren´ı webov´ ych str´anek.
52
´ C ˇ AST ´ 8 PRAKTICKA
Obr´azek 29: Responzivn´ı webdesign
8.3.1
Metodika responzivity
Postup responzivn´ıho webdesignu zaˇc´ın´a u meta tagu s n´azvem Viewport, kter´ y zvˇetˇsuje obsah str´anky, protoˇze mobiln´ı prohl´ıˇzeˇce v chytr´ ych telefonech a tabletech bˇeˇznˇe zobrazuj´ı web zmenˇsen´ y, aby byl cel´ y vidˇet.
Obr´azek 30: Funkce ViewPort
53
´ C ˇ AST ´ 8 PRAKTICKA
8.3.2
Testov´ an´ı
U responzivn´ıho webdesignu je d˚ uleˇzit´e testovat podle aktu´aln´ıch verz´ı mobiln´ıch prohl´ıˇzeˇc˚ u. Testov´an´ı bylo provedeno na fyzick´em zaˇr´ızen´ı vˇsech uveden´ ych prohl´ıˇzeˇc˚ u. Mezi nejpouˇz´ıvanˇejˇs´ımi prohl´ıˇzeˇci jsou Chrome Mobile, Firefox Mobile, Mobile Safari a Opera Mobile. M´enˇe pouˇz´ıvan´e, kde aplikace nebyla spr´avnˇe zobrazena, jsou Dolphin Mobile, Maxthon Mobile a Sleipnir Mobile.
Tabulka 1: Testov´an´ı aktu´aln´ıch verz´ı mobiln´ıch prohl´ıˇzeˇc˚ u
8.4
Porovn´ an´ı HTML5 a Java
C´ılem bakal´aˇrsk´e pr´ace bylo tak´e porovnat HTML5 s Javou. Porovn´an´ı bylo vytvoˇreno z pohledu zaˇca´teˇcn´ıka, kter´ y zaˇc´ın´a programovat v OOP Java nebo vytv´aˇret ve znaˇckovac´ım jazyce HTML5. Porovn´avala se: • sloˇzitost syntaxe obou jazyk˚ u • sloˇzitost funkc´ı v´ yvojov´ ych prostˇred´ı
54
´ C ˇ AST ´ 8 PRAKTICKA • sloˇzitost poˇc´ateˇcn´ıho nastaven´ı prostˇred´ı • existence pˇrekladaˇce • kvalita v´ yvoje obou jazyk˚ u • hodnota aktualiazac´ı • existence multiplatformnosti • sloˇzitost testov´an´ı
Tabulka 2: Porovn´an´ı HTML5 & Java
55
´ ER ˇ 9 ZAV
9
Z´ avˇ er
Bˇehem psan´ı bakal´aˇrsk´e pr´ace jsem prostudoval veˇsker´e dostupn´e informace o v´ yvojov´em prostˇred´ı Android Studio a samotn´em programovac´ım jazyku Java, kter´a je velmi ˇza´dan´a v praxi, mezi IT firmami zab´ yvaj´ıc´ı se tvorbou aplikac´ı nejen pro operaˇcn´ı syst´em Android, ale i pro jin´e platformy. Ze zaˇc´atku bylo d˚ uleˇzit´e si vybrat spr´avn´e v´ yvojov´e prostˇred´ı. V dobˇe, kdy v´ yvojov´e prostˇred´ı Eclipse ustupovalo, byla jasn´a volba Android Studio, kter´e pˇrin´aˇselo v´ıce v´ yhod a moˇznost´ı. M´a bakal´aˇrsk´a pr´ace se zab´ yv´a tvorbou nativn´ıch aplikac´ı pro operaˇcn´ı syst´em Android. C´ılem pr´ace bylo pˇredstavit v´ yvojov´e prostˇred´ı Android Studio v´ yvoj´aˇr˚ um, kteˇr´ı chtˇej´ı prozkoumat moˇznosti tvorby nativn´ıch aplikac´ı. Pr´ace je rozdˇelana na teoretickou a praktickou ˇc´ast. V teoretick´e ˇca´sti popisuji z´aklady znaˇckovac´ıho jazyka HTML, CSS a programovac´ıho jazyka Java. D´ale popisuji operaˇcn´ı syst´em Android, jej´ı architekturu a jednotliv´e verze tohoto syst´emu. D´ale popisuji jak´e poˇzadavky jsou nutn´e splnit pˇri vytv´aˇren´ı aplikac´ı pro tuto platformu. Na z´avˇer popisuji bez jak´ ych technologi´ı se v´ yvoj´aˇr neobejde. V praktick´e ˇc´asti popisuji sadu praktick´ ych pˇr´ıklad˚ u a samotnou nativn´ı aplikaci pro Katedru informatiky, kter´a byla m´ ym hlavn´ım c´ılem bakal´aˇrsk´e pr´ace. Popisuji tak´e jak nativn´ı aplikaci nahr´at na distribuˇcn´ı server Google Play. V dalˇs´ı praktick´e ˇca´sti popisuji tvorbu responzivn´ıho webu pomoc´ı technologie HTML5 a CSS.
56
ˇ A ´ LITERATURA A ZDROJE POUZIT
Pouˇ zit´ a literatura a zdroje [1] Historie HTML.
Garth [online]. 2010 [cit. 2015-06-05]. Dostupn´e z: http://www.garth.cz/uvod-do-html/historie-html/. [2] RUSEK, Martin. V´ yuka HTML5 a CSS3. V´ yuka HTML5 a CSS3 [online]. 2013 [cit. 2015-06-17]. Dostupn´e z: http://html5css3.4fan.cz/htmluvod.php. [3] DOMES, Martin. 333 tip˚ u a trik˚ u pro CSS: [sb´ırka nejuˇziteˇcnˇejˇs´ıch n´avod˚ u pro v´aˇs web]. Vyd. 1. Brno: Computer Press, 2009, 272 s. ISBN 978-80-251-2360-7. [4] VIRIUS, Miroslav. Java pro zelen´aˇce. 2. upr. vyd. Praha: Neocortex, 2005, 268 s. ISBN 80-86330-17-6. [5] ALLEN, Grant. Android 4: pr˚ uvodce programov´an´ım mobiln´ıch aplikac´ı. 1. vyd. Brno: Computer Press, 2013, 656 s. ISBN 978-80-251-3782-6. [6] LACKO, L’uboslav. V´ yvoj aplikac´ı pro Android. 1. vyd. Brno: Computer Press, 2015, 472 s. ISBN 978-80-251-4347-6. [7] KLOS, Roman.
Multiplatformn´ı v´ yvoj mobiln´ıch aplikac´ı pomoc´ı webov´ ych technologi´ı [online]. Praha, 2014 [cit. 2015-06-18]. Dostupn´e z: https://www.vse.cz/vskp/show file.php?soubor id=1247420. Diplomov´a pr´ace. Vysok´a ˇskola ekonomick´a v Praze. Vedouc´ı pr´ace Ing. Jarmila Pavl´ıˇckov´a. ´ Vojtˇech. Android Studio: Nov´e v´ [8] SEMECKY, yvojov´e prostˇred´ı.
Android Studio: Nov´e v´ yvojov´e prostˇred´ı [online]. 2013, (1) [cit. 2015-06-18]. Dostupn´e z: http://www.zdrojak.cz/clanky/androidstudio-nove-vyvojove-prostredi/. ´ Vojtˇech. Android Studio - nov´e v´ [9] SEMECKY, yvojov´e prostˇred´ı: mobiln´ı v´ yvoj. In: Zdrojak [online]. 2013 [cit. 2014-05-24]. Dostupn´e z: http://www.zdrojak.cz/clanky/android-studio-nove-vyvojoveprostredi/
57
´ U ˚ SEZNAM OBRAZK
Seznam obr´ azk˚ u 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
22
. . . . . . . . . . . . . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . Dom´ac´ı str´anka Android - staˇzen´ı Android Studio Dom´ac´ı str´anka Android - podm´ınky pro staˇzen´ı . Dom´ac´ı str´anka Android - rady pˇri instalaci . . . V´ yvojov´e prostˇred´ı Android Studio . . . . . . . . Z´akladn´ı emul´ator v Android Studio . . . . . . . Metoda zjiˇst’uj´ıc´ı lokaci . . . . . . . . . . . . . . . Metoda zjiˇst’uj´ıc´ı zapnut´e GPS . . . . . . . . . . Metoda vypisuj´ıc´ı lokaˇcn´ı hodnoty . . . . . . . . . Uk´azka aplikace GPS Lokace . . . . . . . . . . . . K´od detekce textu . . . . . . . . . . . . . . . . . Vybran´ y text . . . . . . . . . . . . . . . . . . . . Uk´azka dek´odovan´eho textu . . . . . . . . . . . . Uk´azka datab´aze, tabulek a ˇra´dk˚ u. . . . . . . . . Vytvoˇren´ı a aktualizace datab´aze . . . . . . . . . Uk´azka ukl´ad´an´ı dat do datab´aze . . . . . . . . . Uk´azka ˇcten´ı dat z datab´aze . . . . . . . . . . . . Uk´azka aplikace katedry informatiky . . . . . . . Uk´azka rozcestn´ıku aplikace katedry informatiky . Uk´azka c´ılov´eho obsahu katedry informatiky . . . K´od WebView . . . . . . . . . . . . . . . . . . . . Opr´avnˇen´ı v manifest.xml . . . . . . . . . . . . . V´ ybˇer verze pˇri vytv´aˇren´ı aplikace . . . . . . . . . V´ yvoj´aˇrsk´a konzole - statistiky . . . . . . . . . . V´ yvoj´aˇrsk´a konzole - hodnocen´ı . . . . . . . . . . V´ yvoj´aˇrsk´a konzole - APK . . . . . . . . . . . . . V´ yvoj´aˇrsk´a konzole - Z´aznam v obchodu . . . . . Responzivn´ı webdesign . . . . . . . . . . . . . . . Funkce ViewPort . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24 27 29 30 31 33 34 36 36 37 38 39 40 41 42 42 43 43 45 46 47 48 48 49 50 50 51 52 53 53
22 Dostupn´e z: http://androidmarket.cz/android/jak-vypada-android-uvnitr-aneb-coje-rom-kernel-bootloader-a-dalsi/ 23 Dostupn´e zhttp://jaredrummler.com/2014/11/09/lollipop-land/
58
SEZNAM TABULEK
Seznam tabulek 1 2
Testov´an´ı aktu´aln´ıch verz´ı mobiln´ıch prohl´ıˇzeˇc˚ u . . . . . . . Porovn´an´ı HTML5 & Java . . . . . . . . . . . . . . . . . . .
59
54 55
ˇ ´ILOHY PR
Pˇ r´ılohy 1. DVD - na pˇriloˇzen´em DVD se nach´az´ı pln´e znˇen´ı bakal´aˇrsk´e pr´ace pod n´azvem souboru plucar_BP.pdf.
60