Štruktúra APK súboru na OS Android

Size: px
Start display at page:

Download "Štruktúra APK súboru na OS Android"

Transcription

1 Masarykova univerzita Fakulta informatiky Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Štruktúra APK súboru na OS Android Bakalárska práca Ivo Hrádek Brno, jar 2015

2 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich čerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj. Ivo Hrádek Vedúci práce: Ing. Mgr. et Mgr. Zdeněk Říha, Ph.D.

3 Poďakovanie Rád by som na tomto mieste poďakoval predovšetkým vedúcemu mojej práce pánovi Ing. Mgr. et Mgr. Zdeňkovi Říhovi, Ph.D. za ochotný prístup a odbornú pomoc. Ďalej by som chcel poďakovať svojej rodine, špeciálne Andrei Hrádekovej, za podporu a trpezlivosť pri mojom štúdiu.

4 Zhrnutie Práca si dáva za cieľ preskúmať štruktúru balíčkovacieho formátu APK používaného v rámci operačného systému Android. Teoretická časť popisuje základné vlastnosti operačné systému Android. Ďalej sa detailne zaoberá binárnymi formátmi DEX a XML, ktoré sa v APK súboroch používajú. Text práce je zameraný predovšetkým na štruktúru oboch formátov. Praktickým výsledkom výskumu je implementácia programu, ktorý vykonáva konverziu z binárneho do textového XML.

5 Kľúčové slová android, apk súbor, binárne xml, dalvik, formát dex, inštalačný balíček, ndk, konvertor

6 Obsah Úvod 1 1 Operačný systém Android Vznik a história Architektúra Jadro Natívne knižnice a Android Runtime Aplikačný rámec Aplikácie Formát APK súborov Štruktúra APK súboru Súbor AndroidManifest.xml Súbor classes.dex Súbor resources.arsc Priečinok assests Priečinok lib Priečinok META-INF Priečinok res Podpisovanie balíčkov Inštalácia aplikácií NDK aplikácie Formát DEX súborov Štruktúra Hlavička Magické číslo Kontrolný súčet Podpis Veľkosť súboru Veľkosť hlavičky vi

7 3.2.6 Endianita Veľkosti oblastí a bajtové posuny Identifikátory textových reťazcov Identifikátory typov Identifikátory prototypov Identifikátory atribútov Identifikátory metód Definície tried Formát XML súborov Hlavička Spoločná oblasť reťazcov Hlavička Telo Tabuľka zdrojov Hlavička Telo Menný priestor Hlavička Telo Počiatočný element Hlavička Telo Koncový element Hlavička Telo CDATA blok Hlavička Telo Implementácia Hlavný program Parser binárneho XML Čítanie zdrojov Záver 32 Literatúra 33 A Konštanty dátových typov súborov DEX 35 vii

8 B Syntax textových reťazcov súborov DEX 36 viii

9 Úvod Mobilné telefóny sa v priebehu posledných rokov stali neodmysliteľnou súčasťou života takmer každého človeka. Zatiaľ, čo pred pár rokmi slúžili iba ako komunikačný prostriedok, postupom času začali plniť funkciu fotoaparátov, navigácií a rôznych iných špecializovaných zariadení. S vývojom mobilných telefónov sa súčasne posúva vpred aj vývoj operačných systémov. Jedným z dominujúcich operačných systémov pre mobilné telefóny sa stal Android. Svoju popularitu si získal nielen medzi používateľmi mobilných telefónov, ale aj medzi vývojármi aplikácií. V rámci platformy Android sú aplikácie distribuované a inštalované pomocou tzv. APK balíčkov. Táto práca sa sústreďuje na detailný opis ich štruktúry a obsahu. Práca je rozdelená na niekoľko kapitol. Prvá kapitola opisuje históriu, vznik a zjednodušený pohľad na architektúru operačného systému Android. Druhá kapitola sa sústreďuje na samotnú štruktúru APK balíčkov. Opisuje funkcie jednotlivých priečinkov a súborov. V krátkosti sa venuje digitálnemu podpisovaniu a inštalácii týchto balíčkov. Tretia kapitola je zameraná na formát DEX a jeho štruktúru. Z pohľadu aplikácií sa jedná o dôležitý formát, ktorý používajú balíčky pre súbory so skompilovaným zdrojovým kódom. Štvrtá kapitola rozoberá štruktúru formátu binárneho XML používaného v rámci platformy Android. Do tohto formátu sú konvertované niektoré súbory z balíčku. Medzi nimi je aj manifest aplikácie, ktorý obsahuje zásadné informácie o celej aplikácii. V poslednej, piatej kapitole je stručne prezentovaná implementácia konvertora z binárneho do textového XML pre APK súbory. 1

10 Kapitola 1 Operačný systém Android Android je klasifikovaný ako mobilný operačný systém určený primárne pre dotykové zariadenia, a to predovšetkým pre smartfóny a tablety. Napriek tomu si stále častejšie nachádza miesto aj mimo svet smartfónov a tabletov, čím dokazuje svoju flexibilitu. S miernymi modifikáciami či rozšíreniami sa vyskytuje v zariadeniach, ako sú: herné konzoly (Ouya); automobily (Android Auto); fotoaparáty (Galaxy Camera); inteligentné okuliare (Google Glass); inteligentné hodinky (Android Wear); inteligentné televízory (Google TV); a iných. 1.1 Vznik a história V októbri roku 2003 bola založená spoločnosť Android, Inc., ktorá mala za cieľ vyvíjať moderný operačný systém zameraný pre digitálne fotoaparáty, s možnosťou synchronizácie s klaudovým úložiskom [1]. Po tom, ako si zakladatelia spoločnosti uvedomili, že trh s digitálnymi fotoaparátmi nespĺňal ich očakávania, rozhodli sa vyvinúť operačný systém pre smartfóny. V auguste roku 2005 Android, Inc. odkúpila známa spoločnosť Google. Takmer okamžite po tomto kroku vzniká prvá platforma založená na jadre populárneho operačného systému Linux, ktoré bolo zvolené zámerne pre jeho hardvérovú portabilitu. V novembri 2007 bolo založené konzorcium Open Handset Alliance (OHA) 1 zo spoločností zaoberajúcich sa mobilnými technológiami. Hlavným účelom 1 2

11 konzorcia bol prvý kompletný, slobodný a otvorený formát navrhnutý špeciálne pre mobilné zariadenia, ktorým sa stal projekt Android. V októbri roku 2008 prichádza na trh prvý komerčne dostupný smartfón HTC Dream [2] s operačným systémom Android. V tomto roku sa pod záštitou spoločnosti Google, Inc. konala súťaž Android Developer Challenge, ktorá mala okamžitý úspech. Do momentu začiatku súťaže bolo prihlásených takmer projektov [3]. Táto súťaž odštartovala nepretržitý záujem vývojárov z celého sveta o platformu Android. Od svojho počiatku bol Android vydaný v niekoľkých verziách s rôznymi jadrami Linuxu. Alfa verzie boli dostupné iba pre spoločnosť Google a členov OHA. Tieto verzie niesli mená známych fiktívnych robotov Astro Boy, Bender a R2-D2. Beta verzia bola vydaná v novembri 2008, čo je dnes populárne považované za dátum zrodu operačného systému Android [4]. Kódové označenia ďalších verzií boli vždy zvolené v abecednom poradí a nesú mená rôznych cukroviniek, s výnimkou prvých dvoch verzií, ktoré nemali žiadne kódové označenie: Alpha (1.0) Beta (1.1) Cupcake (1.5) Donut (1.6) Eclair ( ) Froyo ( ) Gingerbread ( ) Honeycomb ( ) Ice Cream Sandwich ( ) Jelly Bean ( ) KitKat ( ) Lollipop (5.0) 1.2 Architektúra Architektúra operačného systému Android má zásobníkovú štruktúru, v ktorej každá vrstva poskytuje služby vrstve nad ňou. Zásobník je najčastejšie tvorený štyrmi základnými vrstvami: Systémové aplikácie Používateľské aplikácie Aplikačný rámec DVM java.* javax.* android.* Natívne knižnice Linux jadro Obr. 1.1: Architektúra operačného systému Android 3

12 1.2.1 Jadro Spodná vrstva pozostáva z linuxového jadra, ktoré bolo modifikované predovšetkým pre vložené zariadenia 2. Jadro zabezpečuje komunikáciu medzi hardvérom a softvérom. Jeho súčasťou sú ovládače, ktoré sa o túto komunikáciu starajú. Zároveň však poskytuje základnú funkcionalitu pre systém, do ktorej sa radí správa procesov, správa pamäte, komunikáciu medzi procesmi (IPC) 3,... Modifikácie pozostávajú z niekoľkých pridaných vlastností. Niektoré z týchto vlastností boli spätne pridané do hlavnej vetvy vývoja linuxového jadra. Jedná sa o modifikácie v oblastiach medziprocesovej komunikácie (Binder), správy pamäte (Android shared memory), logovania či oblasti správy napájania a riadenia spotreby Natívne knižnice a Android Runtime Nad jadrom sa nachádzajú natívne knižnice, ktoré sú napísané v programovacom jazyku C alebo C++. Tieto knižnice zaobstarávajú prácu s grafikou, prácu s mediálnymi súbormi, šifrovanie dát atď. Táto funkcionalita je dostupná vývojárom vo vrstve aplikačného rámca (bližšie popísaný v časti 1.2.3). Najväčším rozdielom v porovnaní s inými operačnými systémami založenými na linuxovom jadre je fakt, že Android neobsahuje žiadnu z bežne používaných implementácií štandardnej knižnice jazyka C. Obsahuje totiž vlastnú implementáciu nazvanú Bionic libc 4, ktorá bola navrhnutá špeciálne pre Android a v súčasnosti je naďalej vyvíjaná spoločnosťou Google nezávisle od zdrojového kódu operačného systému Android. Na rovnakej úrovni spolu s natívnymi knižnicami sídli tzv. Dalvik virtuálny stroj (DVM), ktorý bol rovnako ako Bionic libc navrhnutý špeciálne pre Android a potreby mobilných zariadení. Jeho úlohou je spúšťať aplikácie, ktoré sú typicky napísané v programovacom jazyku Java s využitím Android API. Avšak Dalvik virtuálny stroj nepracuje priamo s bajtkódom Javy, uloženým v.class súboroch, ale so svojim vlastným bajtkódom odlišným od bajtkódu virtuálneho stroja Java. Dalvik bajtkód je uložený v.dex súboroch, ktoré majú taktiež rozdielnu štruktúru ako ich Java ekvivalent. Formátu DEX sa podrobne venuje kapitola 3. Od JVM sa DVM líši hneď v niekoľkých aspektoch. Predovšetkým, DVM má registrovo založenú architektúru a JVM zásobníkovo založenú architektúru. Taktiež sa líšia ich inštrukčné sady, čo zachycuje výpis 1.1 (prevzaté z [5]), na ktorom je jednoduchá funkcia, ktorá sčíta dve celočíselné hodnoty. 2 angl. embedded systems 3 Inter-process communication 4 4

13 JVM bajtkód public static int add(int,int); Code: 0: iload_0 1: iload_1 2: iadd 3: ireturn DVM bajtkód.method public static add(ii)i add-int v0, p0, p1 return v0.end method Zdrojový kód 1.1: Porovnanie Dalvik používa menej inštrukcií na dosiahnutie rovnakého výsledku. Všeobecne registrovo založené architektúry virtuálnych strojov používajú menej inštrukcií, ale výsledný kód je väčší ako by tomu bolo pri zásobníkovo založenej architektúre. Táto architektúra bola zvolená, pretože načítanie kódu je časovo menej náročná operácia ako samotné vykonávanie kódu [6]. V neposlednom rade je tu implementácia tried štandardných knižníc jazyka Java, ktorá bola založená na podmnožine open source platformy Apache Harmony 5. Dalvik virtuálny stroj a štandardné knižnice jazyka Java sa v platforme Android súhrne označujú ako Android Runtime. Dalvik virtuálny stroj je od verzie Android 4.4 čiastočne a od verzie Android 5.0 plne nahradený novým prostredím pre spracovanie kódu nazývaným Android Runtime (ART), ktoré prináša zlepšenie výkonu aplikácií Aplikačný rámec Táto vrstva poskytuje prvky a služby pre samotné aplikácie. Tieto prvky a služby tvoria spoločne systémové API 6, ktoré využívajú predovšetkým vývojári pri tvorbe bežných aplikácií. V aplikačnom rámci sa vyskytuje: správca aktivít (Activity Manager) riadi celý životný cyklus 7 aplikácie, prechody medzi stavmi aplikácie a zásobník aktivít; správca zdrojov (Resource Manager) poskytuje aplikáciám prístup k externým zdrojom, ktoré nie sú súčasťou zdrojového kódu; správca balíčkov (Package Manager) poskytuje aplikáciám informácie o aktuálne nainštalovaných aplikáciách; správca volania (Telephony Manager) poskytuje aplikáciám informácie o prístupných telefónnych službách; Application programming interface 7 Doba od spustenia až po ukončenie aplikácie 5

14 správca polohy (Location Manager) umožňuje aplikáciám získať aktuálnu geografickú polohu zariadenia pomocou GPS 8 ; správca oznámení (Notifications Manager) umožňuje aplikáciám zobrazovať oznámenia a upozornenia; správca okien (Windows manager) spravuje rozmiestnenie aplikácií na displeji zariadenia a vytvára aplikáciám plochy vykresľovanie; systém s pohľadmi (View System) poskytuje aplikáciám grafické prvky, z ktorých je vybudované používateľské rozhranie; poskytovateľ obsahu (Content Provider) spravuje zdieľanie dát medzi aplikáciami Aplikácie Na najvyššej vrstve sa nachádzajú všetky aplikácie, s ktorými prichádza priamo do styku bežný používateľ zariadenia. Všeobecne môžeme rozlišovať dva druhy aplikácií systémové a používateľsky nainštalované aplikácie. Systémové aplikácie Tieto aplikácie sú zahrnuté do obrazu operačného systému a typicky sa nachádzajú v priečinku /system. Keďže sú určené iba pre čítanie a nie zápis, nemôžu byť ani zo systému bežným používateľom odinštalované, či pozmenené. Preto sa všeobecne považujú za bezpečnejšie. Z toho dôvodu majú v systéme väčšiu prioritu a oprávnenia ako používateľom nainštalované aplikácie. Používateľom nainštalované aplikácie Tieto aplikácie sú určené ako pre čítanie, tak aj zápis. Vo väčšine prípadov sa nachádzajú v priečinku /data a môžu byť bežným používateľom odstránené. Pre každú spustenú aplikáciu je vyhradený jej vlastný bezpečnostný sandbox. Ten zaručuje, že neočakávané správanie sa aplikácie nemôže ovplyvniť ostatné spustené aplikácie a ich dáta. 8 Global Positioning System 6

15 Kapitola 2 Formát APK súborov Android application package, skrátene označovaný ako APK, je formát súborov určený pre inštaláciu a distribúciu aplikácií v rámci operačného systému Android. V základe sa jedná o rozšírenie formátu JAR 1, ktorý je taktiež rozšírením kompresného formátu ZIP. Pre súbory formátu APK je typická prípona.apk a sú asociované s application/vnd.android.package-archive MIME 2 typom. 2.1 Štruktúra APK súboru Každý APK súbor musí byť teda validným súborom typu ZIP, ktorý má naviac preddefinovanú vnútornú hierarchiu súborov a priečinkov, v ktorej sa nachádzajú skompilované zdrojové kódy, zdroje (obrázky, zvukové súbory, textové reťazce,... ) a súbor s manifestom aplikácie. Táto hierarchia v balíčku je spoločná pre všetky APK súbory a spravidla má nasledujúci tvar: / AndroidManifest.xml classes.dex resources.arsc assests lib META-INF CERT.RSA CERT.SF res 1 Java archive 2 Multipurpose internet media 7

16 2.1.1 Súbor AndroidManifest.xml Jedná sa o manifest aplikácie vo formáte XML, ktorý bol transformovaný počas tvorby balíčku do binárneho formátu. Tento súbor je nutnou súčasťou každej aplikácie. Nachádza sa vždy v koreňovom adresári balíčku a obsahuje dôležité metadáta o aplikácii, ktoré sú určené pre operačný systém. Jedná sa o informácie ako napríklad názov balíku (meno aplikácie), oprávnenia, minimálna verzia Android API, komponenty aplikácie (aktivity, služby,... ) a veľa ďalších. Štruktúra manifestu je podrobne popísaná v dokumentácií, ktorú je možné nájsť tu [7] Súbor classes.dex Súbor, ktorý obsahuje skompilovaný zdrojový kód aplikácie. Obsahuje bajtový kód s inštrukciami určenými pre virtuálny stroj Dalvik. Formát súborov.dex podrobne rozoberá kapitola Súbor resources.arsc Binárny súbor generovaný v priebehu kompilácie. Nachádzajú sa v ňom skompilované mená všetkých zdrojov z priečinku res/ (2.1.7). Spolu s nimi sú tu umiestnené aj ich identifikátory. Všetky tieto položky sú namapované a prístupné v zdrojovom kóde pomocou triedy R.java Priečinok assests V tomto priečinku sa nachádzajú zdroje aplikácie podobne ako v priečinku res/ (2.1.7). Rozdiel je však v tom, že súbory v priečinku assets nie sú nikdy optimalizované či kompilované do binárneho formátu. Pre tieto zdroje sa taktiež negenerujú identifikátory [8] a v zdrojovom kóde sa s nimi pracuje ako s prúdom bajtov. Pre tento priečinok neexistujú žiadne obmedzenia, čo sa môže v ňom nachádzať, no typicky sa tu objavujú súbory obsahujúce fonty, audio súbory, video súbory, Priečinok lib Tento priečinok sa nachádza iba v aplikáciach, ktoré využívajú natívne knižnice pomocou JNI 3. Obsahuje podpriečinky pre jednotlivé podporované architektúry procesorov (napr. armeabi/, x86/, mips). 3 Java Native Interface 8

17 2.1.6 Priečinok META-INF Jeden z najdôležitejších priečinkov v balíčku z pohľadu bezpečnosti distribúcie aplikácií. Tento priečinok obsahuje každý podpísaný balík. Sú v ňom umiestnené súbory, ktoré zaručujú integritu dát celého balíčku a systémovú bezpečnosť [9]. V prvom rade sa tu nachádza súbor MANIFEST.MF. Jedná sa o JAR manifest, ktorý obsahuje názov a príslušný hash každého súboru v balíčku. Proces podpisovania (bližšie popísaný v 2.2) pridáva ďalší súbor s názvom CERT.SF 4, ktorý obsahuje hash celého balíčku ako aj hash pre jednotlivé položky uvedené v MANIFEST.MF. Kontrolný súčet je vytvorený zo všetkých súborov balíčku. Výsledok výpočtu je uložený v súbore CERT.SF a obsahuje opäť zoznam súborov z celého balíčku a ich príslušný SHA-1 hash. Avšak, tento krát je každý hash vytvorený z troch riadkov príslušného súboru [10]. V súbore CERT.RSA [11] je uložený samotný verejný kľúč, respektíve certifikát Priečinok res Tento priečinok obsahuje všetky zdroje 5 aplikácie, akými sú obrázky, súbory popisujúce rozloženie častí aplikácie na obrazovke či súbory s textovými reťazcami. Niektoré zdroje z tohto priečinku môžu byť optimalizované a kompilované do binárneho formátu. Tu umiestnené zdroje sú v zdrojovom kóde aplikácie odkazované nepriamo pomocou unikátnych identifikátorov. Takto je možné zmeniť ľubovoľný zdroj bez zmeny funkčného kódu aplikácie. Taktiež to dáva možnosť poskytnúť alternatívne zdroje pre rôzne zariadenia, ktoré sa líšia v rozmeroch displeja či použitom jazyku. Tieto identifikátory sú v zdrojovom kóde automaticky zahrnuté v triede typicky označovanej ako R.java, ktorú v priebehu kompilácie spolu s identifikátormi generuje program aapt (Android Asset Packaging Tool). Tento identifikátor je 32-bitové číslo vo forme [12]: PPTTNNNN, kde PP označuje balík, pre ktorý je zdroj určený. Pre zdroje aplikácií je vždy rovné hodnote 0x7F. TT je konštanta, ktorá určuje o aký typ zdroja sa jedná. Časť NNNNN je unikátne označenie konkrétneho zdroja. Zdroje sa rozdeľujú do niekoľkých podpriečinkov, respektíve patričných podtried zahrnutých v triede R.java. Najčastejšími položkami sú [13]: /res/animator XML súbory definujúce tzv. property animácie; /res/anim XML súbory definujúce tzv. tween animácie; 4 skratka signature file 5 angl. resources 9

18 /res/color XML súbory definujúce farby a ich stavy; /res/drawable súbory s obrázkami alebo XML súbory, ktoré sú kompilované na vykresliteľné zdroje; /res/mipmap vykresliteľné súbory pre rôzne ikony spúšťača; /res/layout XML súbory popisujúce rozloženie používateľského rozhrania; /res/menu XML súbory popisujúce rôzne menu aplikácie; /res/raw súbory, ktoré nie sú modifikované či optimalizované; /res/values XML súbory obsahujúce hodnoty zdrojov akými sú textové reťazce, čísla a farby (arrays.xml, colors.xml, dimens.xml, strings.xml, styles.xml); /res/xml XML súbory, ku ktorým pristupuje aplikácia počas behu. 2.2 Podpisovanie balíčkov Podpisovanie aplikácií je založené na podpisovaní JAR, ktoré používajú asymetrickú kryptografiu (kryptografia s verejným kľúčom) s X.509 formátom certifikátov. Digitálny podpis aplikácií predovšetkým zaisťuje [14]: identifikáciu autora kódu; detekciu zmien v aplikácii; zaisťuje dôveryhodnosť medzi aplikáciami. Android v rámci bezpečnosti požaduje od všetkých inštalovaných aplikácií digitálny podpis zaručujúci integritu a autenticitu. Avšak na rozdiel od iných platforiem používajúcich podpisovanie kódu, nepožaduje aby bol podpis overený certifikačnou autoritou. Android sa nestará o obsah či vlastníka certifikátu. Celý kód aplikácie je virtuálne podpísaný sám sebou. Dokonca nie je ani nutné, aby bolo možné identifikovať vlastníka (Poznámka: Google Play má niekoľko kontrol identity, ale samotný Android ich nepožaduje). Android používa certifikáty taktiež pre porovnávanie s ostatnými aplikáciami, ktoré sú od toho istého vývojára, čím zaisťuje medzi nimi dôveryhodnosť. Podobne používa aj certifikát pre to, aby sa uistil, že všetky aktualizácie aplikácie sú od toho istého autora[15]. Podpisovanie vždy začína vygenerovaním dvojice verejného a súkromného kľúča. K tejto dvojici je vygenerovaný príslušný verejný certifikát. Pri tvorbe aplikácie sú možné dve rozličné alternatívy podpisu. Vo fáze testovania a vývoja sa používa takzvané debug a vo finálnej fáze release podpisovanie. Aplikácie podpísané v režime debug používajú špeciálny ladiaci kľúč. Aplikácia podpísaná týmto kľúčom nie je určená k distribúcii. V čase, 10

19 kedy je aplikácia pripravená k distribúcii je určený režim release, ktorý používa súkromný kľúč niektorého z vývojárov aplikácie. Pri inštalácii aplikácie v systéme vykoná manažér aplikácií rovnakú procedúru ako pri podpisovaní. V prípade rôznych výsledkov zamietne aplikáciu nainštalovať. To znamená, že nie je možné vykonať zmenu aplikácie obyčajnou dekompresiou, nahradením podvodného kódu a opätovnou kompresiou. 2.3 Inštalácia aplikácií Je niekoľko možností ako aplikáciu nainštalovať [5]: Pomocou klienta obchodu s aplikáciami (napr. Google Play Store). Toto je najbežnejší spôsob. Priamo v zariadení otvorením stiahnutých súborov aplikácie. Pomocou pripojenia USB k počítaču a príkazom adb install z Android SDK, ktorý vyvolá utilitu pm. Tento postup je využívaný predovšetkým medzi vývojármi. Priamym kopírovaním APK súboru do systémových priečinkov pomocou Android shell. Táto metóda nie je prakticky používaná, pretože tieto priečinky nie sú na bežných zariadeniach zvyčajne dostupné. V prípade poslednej varianty, kedy je balíček skopírovaný priamo do priečinkov s aplikáciami je automaticky detegovaný a inštalovaný balíčkovacím manažérom, ktorý sleduje zmeny v týchto priečinkoch. V ostatných prípadoch vyvolá inštalátor aplikácie konkrétnu metódu systémového balíčkovacieho manažéra (installpackage()), ktorý následne skopíruje balíček do jedného z priečinkov pre aplikácie a nainštaluje ho. 2.4 NDK aplikácie Android NDK 6 je množina utilít, ktoré dovoľujú vývojárom implementovať celú aplikáciu alebo jej časť v natívnom zdrojovom kóde, v programovacích jazykoch C alebo C++ [16]. Google odporúča použitie NDK iba v ojedinelých prípadoch. Jedným z vhodných prípadov je znovu použitie kódu, ktorý už bol vopred napísaný v týchto jazykoch ešte pred vývojom android aplikácie. Tento prístup taktiež umožňuje zdielať kód medzi projektmi určenými pre rôzne platformy [17]. 6 Native Develooment Kit 11

20 Kapitola 3 Formát DEX súborov Súbory typu DEX sú určené pre Dalvik virtuálny stroj analogicky ako súbory typu CLASS pre Java virtuálny stroj. Typická prípona pre DEX súbory je.dex (Dalvik EXutable) a sú asociované s application/octet-stream MIME typom, keďže sa jedná o binárny súbor. Každý súbor je výsledkom kompilácie a obsahuje bajtový kód s inštrukciami, respektíve operačnými kódmi, ktoré sú špecifické pre virtuálny stroj Dalvik. Kompilácia prebieha v niekoľkých krokoch. Na začiatku je zdrojový kód kompilovaný štandardným kompilátorom jazyka Java (napr. javac), ktorého výstupom sú objektové súbory typu CLASS. Tieto súbory obsahujú JVM bajtkód pre zodpovedajúce triedy. Všetky takto vygenerované súbory sú následne presmerované na vstup DEX kompilátoru. Jedná sa o program nazvaný dx, ktorý je súčasťou Android SDK. DEX kompilátor postupne znovu kompiluje súbory, ktoré dostane na vstupe, tak že transformuje ich bajtový kód z inštrukčnej sady JVM do inštrukčnej sady DVM. Na konci tejto transformácie spojí všetky súbory do jedného výsledného, ktorý je spustiteľný na virtuálnom stroji Dalvik. Duplikované reťazce či konštanty používané vo viacerých súboroch sú zahrnuté vo výslednom DEX súbore iba raz, čím sa potenciálne eliminujú redundantné dáta a redukuje sa veľkosť samotného súboru. Každý takto kompilovaný súbor má taktiež vlastnú štruktúru rozdielnu od štruktúry CLASS súborov. Avšak súbory CLASS a DEX sú navzájom izomorfné, čo znamená, že z DEX súboru je možné opäť vykonštruovať dané CLASS súbory a tým aj pôvodný zdrojový kód v jazyku Java. Tento aspekt je využívaný predovšetkým v reverznom inžinierstve. Pre túto spätnú transformáciu existuje niekoľko rôznych neoficiálnych utilít

21 3.1 Štruktúra Samotná štruktúra DEX súboru môže byť rozdelená na niekoľko oblastí: Súbor.dex ❶ hlavička ❷ ID reťazcov ❸ ID typov ❹ ID prototypov ❺ ID atribútov ❻ ID metód ❼ definície tried ❽ dáta ❾ linkované dáta Obr. 3.1: Štruktúra súboru DEX Na začiatku každého súboru sa nachádza hlavička ❶, ktorá obsahuje zhrnutie dôležitých informácií o súbore. Nasledujú časti, ktoré definujú zoznamy s identifikátormi. Identifikátory v týchto zoznamoch ukazujú na rôzne dáta v ostatných častiach súboru. Za hlavičkou v časti s ID textových reťazcov ❷ je umiestený zoznam identifikátorov všetkých textových reťazcov použitých v súbore. Identifikátory v zozname sú usporiadané podľa obsahu patričného reťazca, ktorý je umiestnený v sekcii s dátami ❽. Toto triedenie sa vykonáva na základe hodnôt UTF-16. Časť ID typov ❸ obsahuje identifikátory pre všetky typy, ktoré sú odkazované súborom. Zoznam je usporiadaný na základe indexu v sekcii s identifikátormi reťazcov ❷. V zozname ID prototypov ❹ sa nachádzajú identifikátory pre prototypy, ktoré súbor použil. Tento zoznam je usporiadaný na základe návratového typu, teda na základe indexu v sekcii s identifikátormi typov ❸. V prípade 13

22 zhody sa ďalej triedi podľa argumentov, ktoré sú tak isto identifikátormi typov. Atribúty tried sú prístupné pomocou sekcie ID atribútov ❻. Tento zoznam je taktiež usporiadaný. Hlavným kritériom triedenia je typ jeho definičnej triedy, ktorý je identifikátorom v sekcii typov ❸. Vedľajšími kritériami triedenia sú meno a typ atribútu, ktoré sú identifikátormi v sekciách reťazcov ❷ a typov ❸. V zozname ID metód ❻ sú uložené identifikátory pre všetky metódy, ktoré sa vyskytli v súbore. Zoznam je usporiadaný na základe definujúceho typu. V prípade zhody sa triedi postupne na základe názvu a prototypu metódy. Pomocou nasledujúceho zoznamu definícií tried ❼ je možné získať všetky triedy súboru, ktoré boli použité v zdrojovom kóde. Usporiadanie položiek tohto zoznamu je vytvorené tak, aby nadtrieda danej triedy a implementujúce rozhrania boli v zozname uvedené skôr ako samotná trieda. Ako už bolo spomenuté,.dex súbor neobsahuje takmer žiadne duplikované hodnoty a preto sa v každom z týchto zoznamov nachádzajú vždy identifikátory, ktoré sa odkazujú vždy na unikátne hodnoty. Predposledná a zároveň typicky najväčšia oblasť je sekcia s dátami ❽. Tu sú pohromade uložené všetky dáta, na ktoré sa odkazujú všetky identifikátory z vyššie uvedených sekcií. Táto sekcia je zarovnaná na párny násobok štyroch bajtov. K dosiahnutiu správneho zarovnania sa v prípade potreby položka doplní o zarovnávajúce bajty. Posledná sekcia linkovaných dát ❾ je používaná iba pre staticky linkované súbory. V opačnom prípade je prázdna. Formát dát v tejto sekcii zostáva nešpecifikovaný. 3.2 Hlavička Hlavička sa nachádza na začiatku každého súboru a obsahuje metadáta o zvyšku súboru. Jej štruktúra je definovaná z nasledovných položiek: magické číslo kontrolný súčet hash veľkosť súboru veľkosť hlavičky endianita link veľkosť posun Map posun Reťazce veľkosť posun veľkosť Typy posun Prototypy veľkosť posun veľkosť Atribúty posun veľkosť Metódy posun veľkosť Triedy posun Dáta veľkosť posun Obr. 3.2: Štruktúra hlavičky 14

23 Všetky uvedené položky sú primitívnymi celočíselnými dátovými typmi. Okrem dvoch polí s magickým číslom a podpisom majú všetky položky veľkosť štyroch bajtov Magické číslo Hlavička, respektíve celý súbor vždy začína 8-bajtovým poľom, v ktorom sa nachádza takzvané magické číslo 2. Jedná sa o vopred definované jedinečné číslo, ktoré obsahujú aj rôzne iné súborové formáty. Operačný systém alebo program je na základe tohto čísla uloženého v začiatočných bajtoch schopný rozlíšiť o aký typ súboru sa jedná. Pre súbory typu DEX je toto číslo vždy zložené z textového reťazca dex\n a 3-bajtového čísla označujúceho aktuálnu verziu formátu, ktoré je zakončené nulovým bajtom. Číslo verzie sa môže priebehom času zvýšiť ako sa formát bude ďalej vyvíjať. Momentálne je rovné hodnote 036 a pre Android API 13 a nižšie je rovné hodnote 035. Špecifikácia hovorí, že znak nového riadku a nulový bajt na konci majú predísť istým formám poškodenia súboru [18]. Vyjadrenie magického čísla hexadecimálne je teda A , čo zodpovedá prvým bajtom väčšiny súborov.dex Kontrolný súčet Za nulovým bajtom magického čísla nasleduje položka obsahujúca 4-bajtový kontrolný súčet, ktorý je výsledkom výpočtu algoritmu Adler-32. Algoritmus počíta celkový kontrolný súčet z dvoch 16-bitových čiastkových kontrolných súčtov a následným zreťazením ich jednotlivých bitov do jedného 32-bitového čísla. Tento kontrolný súčet zaručuje, že súbor nebol poškodený. Vypočítaný je na základe bajtov hlavičky okrem položiek obsahujúcich magické číslo (3.2.1) a samotnú časť kontrolného súčtu. V prípade poškodenej hlavičky by Dalvik virtuálny stroj nemohol správne interpretovať ostatné časti súboru, keďže hlavička obsahuje do týchto častí súboru odkazy Podpis Nasleduje položka s podpisom súboru, čo je pole o veľkosti 20-bajtov, ktoré obsahuje hodnotu vypočítanú hashovaciou funkciou SHA-1. Tento hash je vypočítaný z bajtov celého súboru okrem tejto sekcie, časti obsahujúcej kontrolný súčet (3.2.2) a poľa s magickým číslom (3.2.1). Takto vypočítaný hash jednoznačne identifikuje daný súbor [18]. 2 #format_indicator 15

24 3.2.4 Veľkosť súboru Ďalšou položkou hlavičky je číslo, ktoré určuje celkovú veľkosť súboru v bajtoch, vrátane samotnej hlavičky. Pomocou tejto hodnoty môže Dalvik virtuálny stroj jednoducho vypočítať bajtové posuny k ostatným položkám súboru Veľkosť hlavičky Za celkovou veľkosťou súboru nasleduje položka s veľkosťou hlavičky, v ktorej sa nachádza veľkosť celej hlavičky, teda súčtu veľkostí jednotlivých položiek hlavičky v bajtoch. Keďže hlavička neobsahuje žiadne variabilné položky tento súčet je vždy konštantný a rovný 112 bajtom Endianita Táto čast pomáha určiť endianitu 3 cieľového zariadenia. Aj keď štandard pre formát DEX súborov definuje endianitu ako little-endian 4, konkrétna architektúra si môže poradie bajtov prispôsobiť vlastným potrebám [18]. Pre všetky súbory je vždy rovná jednej z dvojice konštánt: 0x ; 0x ; Hodnota 0x indikuje, že poradie bajtov bolo zmenené Veľkosti oblastí a bajtové posuny Ďalej nasledujú za sebou dvojice položiek, ktoré definujú veľkosť a bajtový posun ku konkrétnej sekcii, ktorú popisujú. Linkované dáta Prvé 4-bajtové číslo reprezentuje veľkosť sekcie s linkovanými dátami, kde sa nachádzajú dáta zo staticky linkovaných súborov. Ak k súboru žiadne neexistujú, veľkosť tejto sekcie je nulová. Nasledujúce číslo určuje veľkosť posunu v bajtoch od začiatku súboru na začiatok sekcie s týmito dátami. V prípade, ak bola predchádzajúca položka definovaná ako nulová je tento posun taktiež nulový. Formát dát, na ktoré sa odkazuje nie je dokumentáciou špecifikovaný. 3 Poradie bajtov uložených v pamäti 4 Najmenej významný bajt na najnižšej adrese 16

25 Tabuľka Bajtový posun od začiatku súboru na začiatok sekcie s tabuľkou 5. V prípade, kedy ju súbor neobsahuje je posun rovný nule. V opačnom prípade, je posun nenulový a ukazuje do sekcie s dátami. Tabuľka obsahuje zoznam položiek súboru pomocou, ktorého je možné celý tento súbor prechádzať. Môže obsahovať určité duplicitné dáta, ktoré už boli definované v hlavičke. Položka v tejto sekcii je zložená z 2-bajtovej konštanty udávajúcej typ (zoznam konštánt typov udáva tabuľka 5.3), 4-bajtového čísla určujúceho počet položiek nachádzajúcich sa na patričnom bajtovom posune a 4-bajtového čísla definujúceho posun k položkám. Daný typ sa musí v tabuľke objaviť maximálne raz. Typy sa môžu objaviť v ľubovoľnom poradí bez obmedzenia, no musí zostať pôvodné usporiadanie sekcií v súbore. Textové reťazce Počet reťazcov v sekcii s identifikátormi reťazcov (3.3) je uložený v nasledujúcej 4-bajtovej položke hlavičky. V prípade, že sa v súbore nevyskytuje žiadny textový reťazec je toto číslo rovné 0 ako aj bajtový posun, ktorý je uložený v položke hneď za ňou. V opačnom prípade je tento posun nenulové číslo, ktoré určuje počet bajtov od začiatku súboru na začiatok sekcie s identifikátormi reťazcov. Dalvik virtuálny stroj ho používa aby mohol získať požadovaný reťazec z tejto sekcie bez nutnosti vykonávania zložitejších výpočtov alebo postupného čítania celého súboru. Dátové typy Počet typov, ktoré sa nachádzajú v sekcii reťazcov (3.3) ako textové dáta, je uložený ako ďalšie číslo. Príslušný bajtový posun na začiatok sekcie typov (3.4) definuje nasledujúca hodnota. Prípad nulového počtu typov je veľmi nepravdepodobný, keďže by to znamenalo, že zdrojový kód nepoužíva žiadny dátový typ. Prototypy Počet prototypov je obsiahnutý ako ďalšia hodnota. Opäť veľmi nepravdepodobná situácia nulovej hodnoty. Bajtový posun na začiatok sekcie prototypov (3.5) môže byť získaný z nasledujúcej položky. 5 angl. map 17

26 Atribúty Položka sa skladá z hodnoty, ktorá udáva počet atribútov. V prípade nenulového počtu určujú nasledujúce štyri bajty absolútny posun na začiatok sekcie atribútov (3.6). Metódy Metódy opisujú dve položky. V jednej položke je uložený počet metód v zozname identifikátorov. V druhej sa nachádza príslušný bajtový posun, ktorý ukazuje na začiatok sekcie identifikátorov metód (3.7). Počet, ako aj posun sú definované hodnotou 0 v prípade, kedy nie je súborom odkazovaná žiadna metóda. Triedy Poslednou z položiek, ktoré ukladajú počet identifikátorov definuje počet použitých tried. Bajtový posun na sekciu s týmito definíciami (3.8) je uložený ako nasledujúce číslo. Dáta Veľkosť samotnej oblasti s dátami v bajtoch je uložená v predposlednom poli hlavičky. Toto číslo musí byť párnym násobkom štyroch bajtov [18]. Bajtový posun k sekcii dát od začiatku súboru obsahuje posledná hodnota hlavičky. 3.3 Identifikátory textových reťazcov Táto časť je zložená iba z identifikátorov, ktoré sú definované ako 4-bajtové nezáporné hodnoty. Každý identifikátor určuje bajtový posun od začiatku súboru na začiatok konkrétneho textového reťazca v sekcii s dátami. Nimi odkazované textové reťazce sú používané, buď pre interné pomenovania alebo ako konštantné reťazce odkazované priamo v zdrojovom kóde. Formát reťazca v dátovej sekcii začína jeho UTF-16 dĺžkou, za ktorou nasleduje samotný reťazec zakódovaný pomocou modifikovaného UTF Identifikátory typov Položka hlavičky predstavujúca zoznam s identifikátormi dátových typov. Sú tu definované všetky dátové typy, bez ohľadu na to, či sú v súbore definované

27 alebo nie. Tento zoznam obsahuje 4-bajtové hodnoty určujúce posun na začiatok textového reťazca v sekcii s identifikátormi textových reťazcov (3.3), ktorý označuje daný typ. Formát typu znázorňuje tabuľka 5.3. Príkladom takéhoto typu môže byť: V[Ljava/lang/String;a Znak V predstavuje dátový typ void a text [Ljava/lang/String; predstavuje pole textových reťazcov. 3.5 Identifikátory prototypov V tejto sekcii sa nachádza kolekcia identifikátorov ukazujúcich na prototypy všetkých metód. Identifikátor prototypu sa skladá z troch 4-bajtových čísel. V kombinácií s relevantnou sekciou s identifikátormi typov (3.4) je možné zostaviť presný prototyp konkrétnej metódy. Prvá hodnota predstavuje index do sekcie s identifikátormi textových reťazcov (3.3), v ktorom je uložený krátky popis metódy. Tento popis je vo formáte, ktorý znázorňuje tabuľka 5.3. Index označujúci návratový typ metódy je uložený v nasledujúcej položke, ktorá ukazuje do sekcie s identifikátormi typov (3.4). V poslednej položke je uložený bajtový posun na zoznam s typmi argumentov príslušného prototypu. V prípade, kedy metóda nemá žiadne argumenty je tento posun nulový. V opačnom prípade sa jedná o posun do sekcie dát, kde sa prototypy nachádzajú ako pole identifikátorov do sekcie typov (3.4). Veľkosť tohto poľa je uvedená ako číslo pred ním. Príklad položky poľa argumentov: Ljava/lang/StringBuilder; proto( Ljava/lang/String; ) 3.6 Identifikátory atribútov Táto sekcia obsahuje položky predstavujúce identifikátory, ktoré sa odkazujú na hodnoty v sekciách s reťazcami (3.3) a typmi (3.4). Popisujú jednotlivé atribúty tried. Samotný identifikátor sa skladá z troch hodnôt. Tieto tri hodnoty vytvárajú celkový popis atribútu. Prvá, 2-bajtová hodnota určuje typ atribútu a nasledujúca taktiež 2- bajtová hodnota určuje, ktorej triede daný atribút patrí. Obidve hodnoty predstavujú index do sekcie typov (3.4). Posledná položka určuje samotné meno atribútu. 19

28 Príklad atribútu: java.lang.system.out:ljava/io/printstream; 3.7 Identifikátory metód Každý identifikátor metódy je tvorený tromi časťami: názvom triedy, prototypom metódy a samotného názvu metódy. Názov triedy je identifikátor do sekcie s typmi (3.4) a určuje triedu, ku ktorej sa daná metóda vzťahuje. Tento identifikátor nesmie ukazovať na primitívny dátový typ [18]. Každá metóda má taktiež definovaný svoj prototyp, ktorého index ukazuje do sekcie prototypov (3.5). Názov metódy je index v sekcii reťazcov (3.3). Definícia metódy, s jedným parametrom poľom reťazcov a návratovým typom void by v DEX súbore vyzerala nasledovne: ([Ljava/lang/String/;)V kde: V indikuje návratový typ void; ( \ldots ) typy argumentov; Ljava/lang/String; plne klasifikovaný typ argumentu; [ označuje, že sa jedná o dátový typ pole. 3.8 Definície tried Každá z definícií tried má osem častí: identifikátor triedy, príznak určujúci prístupové práva, identifikátor nadtriedy, zoznam implementovaných rozhraní, názov pôvodného súboru so zdrojovým kódom, zoznam anotácií, asociované dáta a statické hodnoty. Identifikátor triedy sa odkazuje do sekcie typov a jedná sa o typ opisovanej triedy. Príznak určuje prístupové pravá tejto triedy (public, final,... ). V prípade, kedy trieda nevyužíva explicitnú dedičnosť je hodnota časti nadtrieda rovná 0xFFFFFFFF. V opačnom prípade, sa jedná o index do sekcie typov (3.4). Zoznam implementovaných rozhraní je posun do sekcie dát. Ak trieda žiadne rozhrania neimplementuje, je tento posun nulový. Rozhrania v sekcií dát sú vo formáte poľa identifikátorov do sekcie typov, pred ktorým sa nachádza jeho veľkosť. Názov súboru so zdrojovým kódom ukazuje do sekcie reťazcov. V prípade, že obsahuje hodnotu 0xFFFFFFFF, nie je možné názov súboru získať. 20

29 Zoznam anotácií je nenulový bajtový posun do sekcie dát v prípade, kedy sú s danou triedou spájané nejaké anotácie. Zoznam je špecifikovaný špeciálnym formátom. Bajtový posun k asociovaným dátam obsahuje predposledná položka. Taktiež sa nachádzajú v sekcii s dátami a obsahujú informácie o statickýchnestatických atribútoch, virtuálnych-vlastných metódach. Tieto položky obsahujú aj samotný Dalvik bajtkód. Posledná časť obsahuje bajtový posun do sekcie dát k počiatočným hodnotám statických atribútov. 21

30 Kapitola 4 Formát XML súborov Každá aplikácia operačného systému Android pozostáva z niekoľkých typov zdrojov. Jedným z primárnych zdrojov v rámci platformy Android sú súbory vo formáte XML. Takéto súbory sa používajú napríklad pri definovaní používateľského rozhrania, oddelenia textových reťazcov od funkčného kódu alebo sa jedná o dáta, ktoré využíva samotná aplikácia. Táto kapitola sa venuje formátu xml súborov, ktoré boli v procese tvorby APK balíčku transformované do binárnej podoby. Formát takýchto súborov je súhrne označovaný ako binárne XML. Pre binárne XML v rámci platformy Android neexistuje žiadna oficiálna dokumentácia, avšak štruktúru je možné vypozorovať zo zdrojového kódu programu aapt 1, ktorého jednou z úloh pri tvorbe balíčku.apk je práve kompilácia zdrojov. V balíčku sa binárne xml súbory nachádzajú typicky v adresároch priečinku /res. Ako bolo spomenuté v 2.1.7, všetky zdroje z tohto priečinku sú transformované do binárneho formátu. Jedinou výnimkou je priečinok /res/raw, ktorého súbory sú ponechané a skopírované do balíčku bezo zmien. Po úspešnej kompilácií sú všetky zdroje priamo alebo nepriamo uložené v tzv. tabuľke zdrojov. Táto tabuľka je trvale uložená v APK balíčku, konkrétne v binárnom súbore resources.arsc (2.1.3) ako aj všetky binárne súbory.xml, ktoré sú touto tabuľkou odkazované. Rovnakým procesom je transformovaný do binárneho XML aj manifest aplikácie AndroidManifest.xml (2.1.1), ktorý sa nachádza v koreňovom adresári balíčku. Tabuľka zdrojov a asociované binárne XML dáta sú spracovávané za behu aplikácie a v súboroch sú uložené v tzv. blokoch, ktoré majú definovanú vlastnú štruktúru. Tento prístup má za následok zrýchlenie procesu načíta- 1 master/tools/aapt 22

31 vania zdrojov a teda aj zrýchlenie celej aplikácie. Blokom sa označuje kúsok pamäte, ktorý je rozdelený do dvoch častí, hlavičky a tela. Štruktúra hlavičky a tela je ďalej daná typom bloku. Štruktúra bloku predstavujúca celý binárny XML súbor je rozdelená do niekoľkých ďalších blokov: XML blok hlavička oblasť reťazcov hlavička textovéreťazce Tabuľka zdrojov hlavička ID zdrojov XML strom Obr. 4.1: Štruktúra XML bloku 4.1 Hlavička Všetky súbory začínajú všeobecnou hlavičkou. Táto hlavička sa taktiež nachádza na začiatku každého dátového bloku pre zdroje. Pozostáva z troch častí. Prvou časťou je 2-bajtový identifikátor, ktorého hodnota určuje o aký typ bloku sa jedná. Pre bloky predstavujúce typ XML je táto hodnota rovná číselnej konštante vyjadrenej hexadecimálne 0x0003. Nasledujúca položka je veľkosť hlavičky vyjadrená v bajtoch. Veľkosť každej hlavičky je vždy rovná ôsmim bajtom, hexadecimálne 0x0008. Táto položka definuje hranice medzi telom a samotnou hlavičkou. Poslednou položkou hlavičky je 4-bajtová hodnota obsahujúca celkovú veľkosť bloku v bajtoch. Do tejto veľkosti sa taktiež započítavajú všetky dáta patriace bloku. Čo prakticky znamená, že 23

32 k danej adrese A ľubovoľného bloku je vždy možné určiť nasledujúci blok, bez akejkoľvek ďalšej znalosti o danom bloku. 4.2 Spoločná oblasť reťazcov Bajty nasledujúce za hlavičkou tvoria blok určujúci tzv. spoločnú oblasť textových reťazcov. V tejto oblasti sa nachádzajú konštantné textové reťazce použité v súbore Hlavička Hlavička sa opäť skladá zo všeobecnej hlavičky (4.1) a niekoľkých pridaných hodnôt, ktoré definujú vlastnosti tejto oblasti. Všetky tieto pridané hodnoty majú veľkosť štyroch bajtov. Typ obsiahnutý vo všeobecnej hlavičke je definovaný konštantnou hodnotou 0x0001. Za všeobecnou hlavičkou sa nachádza 4-bajtová hodnota udávajúca počet textových reťazcov v oblasti. Nasleduje opäť 4-bajtová hodnota, ktorá udáva počet štýlov. Za nimi sa nachádza položka príznakov. Nastavením najnižšieho bitu príznakov sa signalizuje, že textové reťazce budú usporiadané na základe svojho obsahu tak, že sa porovnávajú jednotlivé znaky po poradí oboch reťazcov. Nastavenie ôsmeho bitu signalizuje, že všetky reťazce v oblasti sú kódované pomocou UTF-8. Adresu k samotným reťazcom špecifikujú posledné dve položky tejto hlavičky. Jedná sa teda o bajtový posun, relatívne od začiatku tejto sekcie do miesta začiatku s reťazcami a štýlmi. V prípade, ak je ich počet nulový, je rovnako aj bajtový posun rovný nule. Hlavička má teda dokopy vždy 28 bajtov, vyjadrené hexadecimálne 0x001C Telo Telo tohto bloku sa rozpadá na niekoľko oblastí a podoblastí: tabuľku indexov textových reťazcov; tabuľku indexov štýlov; textové reťazce; štýly reťazcov: tabuľku indexov textových reťazcov; textové reťazce. 24

33 Počet indexov v tabuľke je daný číslom, ktoré je zahrnuté v hlavičke. Každý index tvorí 4-bajtová hodnota, udávajúca bajtový posun na príslušný reťazec v sekcii dát, relatívne od začiatku tejto sekcie, na ktorú ukazuje položka definovaná v hlavičke. Formát reťazcov Reťazce sú uložené postupne za sebou na adrese, ktorú určuje bajtový posun zahrnutý v hlavičke. Môžu byť v jednom z dvoch formátov, ktorý určuje UTF-8 príznak hlavičky. V prípade, kedy nie je nastavený, sú reťazce uložené pomocou kódovania UTF-16. Každý takto uložený reťazec začína 2-bajtovou hodnotou určujúcou jeho dĺžku v počte znakov a rovnako každý končí nulovým terminátorom s hodnotou 0x0000. Medzi nimi sú 16-bitové hodnoty predstavujúce jednotlivé znaky reťazca. V prípade, kedy je reťazec zložený z viac ako 2 15 = znakov, sa nastavením najvyššieho bitu signalizuje, že sa jedná o vrchnú časť a nasledujúcich 15 bitov bude rezervovaných pre spodné bajty reťazca. V opačnom prípade, kedy je nastavený druhý možný príznak, sa využíva kódovanie UTF-8. Formát takto kódovaných reťazcov obsahuje štyri časti. Na začiatku každého reťazca je uvedená jeho dĺžka v počte znakov. Nasleduje dĺžka UTF-8 kódovania reťazca v bajtoch, za ktorou je uložený samotný reťazec zakódovaný pomocou UTF-8. Podobne ako pri druhej variante je reťazec zakončený nulovým terminátorom, tento krát je však zložený z ôsmich bitov. Pre limit dĺžky reťazca platí rovnaké pravidlo ako pri 16-bitovom formáte, ale namiesto 16-bitových hodnôt sú používané 8-bitové. Niektoré vývojové prostredia používajú ako predvolený formát reťazcov UTF-8. Na druhú stranu, pri vytvorení aplikácie s utilitou príkazového riadku ant, 2 budú textové reťazce v sekcii dát v 16-bitovom formáte. Zarovnanie Oblasť s reťazcami je vždy zarovnaná nulovými bajtmi tak, aby celá sekcia končila na 32-bitovej hranici. Je to z dôvodu, že 32 bitové čísla, teda 4-bajtové položky, ktoré nasledujú v tomto bloku budú taktiež správne zarovnané. Index štýlov Sekcia indexov štýlov nasleduje ihneď za sekciou s indexmi reťazcov. Ich počet je vopred definovaný v hlavičke. Tieto indexy sú 32-bitové čísla, ktoré špecifikujú miesto, kde sa nachádza štýl pre konkrétny reťazec. Index predstavuje

34 bajtový posun od začiatku oblasti štýlov. Adresa tejto oblasti je definovaná v hlavičke. Reťazce a indexy štýlov sú spárované tak, že štýl s indexom n v sekcii štýlov je určený pre reťazec s indexom n v sekcii reťazcov. Štýly Oblasť štýlov sa v súbore nachádza, iba ak je ich počet nenulový. Opis štýlu sa skladá z odkazu do spoločnej časti reťazcov, ktorý predstavuje názov daného štýlu. Ďalšie dve 4-bajtové čísla určujú počiatočný a koncový znak v reťazci, na ktorý je daný štýl aplikovaný. Táto sekvencia bajtov je zakončená 4-bajtovým terminátorom s hodnotou 0xFFFFFFFF. Nakoniec je celá sekcia so štýlmi zakončená dvomi za sebou nasledujúcimi 4-bajtovými číslami s rovnakou hodnotou. Textový reťazec s kurzívou môže byť v XML súbore zdrojového kódu definovaný napríklad nasledovne: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="welcome"> Welcome to <i>android</i>! </string> </resources> Zdrojový kód 4.1: Príklad textového reťazca so štýlom Sekcia štýlov obsahujúca iba štýl tohto reťazca bude mať v binárnom XML nasledujúcu podobu: index do oblasti ret azcov 0b počiatočný znak koncový znak ff ff ff ff ukončenie štýlu ff ff ff ff ukončenie bloku štýlov ff ff ff ff Zdrojový kód 4.2: Sekcia štýlov binárneho XML 4.3 Tabuľka zdrojov Táto sekcia mapuje textové reťazce zo spoločnej oblasti reťazcov na identifikátory. Tabuľka zdrojov nie je nutnou súčasťou každého súboru a je voliteľná. 26

35 4.3.1 Hlavička Hlavička obsahuje všeobecnú hlavičku s hodnotou typu definovanú konštantou 0x Telo Telo pozostáva z poľa identifikátorov zdrojov. Prvok s indexom n je identifikátor zdroja atribútu pomenovaného reťazcom na indexe n v časti reťazcov. Napríklad zdroj v tejto tabuľke špecifikovaný hodnotou 0x010100c4 predstavuje reťazec orientation a v triede R.java sa jedná o zdroj R.attr.orientation. 4.4 Menný priestor Pre reprezentáciu platnosti menného priestoru XML dokumentu sú určené dva typy blokov s rovnakou štruktúrou. Začiatok menného priestoru sa objavuje v počiatočnej značke elementu. Ak je v jednej značke definovaných viac menných priestorov, potom začiatočné bloky menného priestoru sa v súbore objavujú v poradí v akom boli deklarované. Koncové bloky menného priestoru sa v súbore nachádzajú v presne opačnom poradí Hlavička Typ v hlavičke je definovaný jednou z dvoch konštánt: 0x0100 ak sa jedná o blok reprezentujúci začiatok menného priestoru, 0x0101 ak sa jedná o blok reprezentujúci koniec menného priestoru. Veľkosť hlavičky je vždy rovná šestnástim bajtom, hexadecimálne 0x0010. Celková veľkosť je vždy 24 bajtov, 0x Telo Pozostáva z dvoch odkazov, respektíve indexov do spoločného priestoru reťazcov. Prvý odkaz definuje textový reťazec, ktorý reprezentuje prefix XML menného priestoru. Druhý odkaz definuje jeho URI 3. 3 Uniform Resource Identifier 27

36 4.5 Počiatočný element Tento blok predstavuje počiatočný element. Obsahuje všetky informácie o danom XML elemente Hlavička Hlavička pozostáva z niekoľkých hodnôt. Typ je definovaný konštantným číslom 0x0102. Ďalej obsahuje informáciu, na ktorom riadku sa daný element v pôvodnom XML súbore nachádzal. V prípade, kedy bol s elementom asociovaný komentár je uvedený ako odkaz do sekcie reťazcov. Inak je odkaz definovaný ako hodnota Telo Obsahuje jeden alebo viac blokov rozšírených atribútov. Rozšírený atribút Rozširuje XML uzol pre začiatočné značky o atribúty. Pozostáva z niekoľkých hodnôt. Prvá položka štruktúry špecifikuje URI menného priestoru daného elementu ako index do sekcie reťazcov. V prípade, že element nepatrí do žiadneho menného priestoru je táto položka definovaná ako 0xFFFF. Meno elementu, ako odkaz do sekcie s reťazcami špecifikuje ďalšia položka. V prípade uzlu CDATA obsahuje jeho pôvodné znaky. Nasledujú 2-bajtové hodnoty. Prvá z týchto hodnôt označuje bajtový posun k sekcii s dátami atribútu v rámci tela bloku od jeho začiatku. Hneď za ňou je položka obsahujúca veľkosť štruktúry, ktorá reprezentuje daný atribút. Nasleduje číslo predstavujúce počet týchto štruktúr, ktoré nasledujú jedna za druhou. Jedná sa teda o počet atribútov asociovaných s daným elementom. Atribúty Každý atribút obsahuje informáciu o URI menného priestoru, ktorému patrí, meno atribútu a originálne nezmenené dáta. Tieto informácie sú v štruktúre v podobe odkazov do sekcie s reťazcami. Ďalej obsahuje štruktúru, v ktorej sa nachádzajú sformátované dáta atribútu. 28

Registrácia účtu Hik-Connect

Registrácia účtu Hik-Connect Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document

More information

VYLEPŠOVANIE KONCEPTU TRIEDY

VYLEPŠOVANIE KONCEPTU TRIEDY VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie

More information

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť

More information

Copyright 2016 by Martin Krug. All rights reserved.

Copyright 2016 by Martin Krug. All rights reserved. MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without

More information

Aplikačný dizajn manuál

Aplikačný dizajn manuál Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,

More information

Databázové systémy. SQL Window functions

Databázové systémy. SQL Window functions Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score

More information

kucharka exportu pro 9FFFIMU

kucharka exportu pro 9FFFIMU požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia mar.18 feb.18 jan.18 dec.17 nov.17 okt.17 sep.17 aug.17 júl.17 jún.17 máj.17 apr.17 mar.17 Internetová populácia SR 12+ 3 904 509 3 802 048 3 870 654 3 830

More information

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona Popis textového formátu a xsd schémy na zasielanie údajov podľa 27 ods. 2 písm. f) zákona (formu na zaslanie údajov si zvolí odosielateľ údajov) Textový formát na zasielanie údajov podľa 27 ods. 2 písm.

More information

Spôsoby zistenia ID KEP

Spôsoby zistenia ID KEP Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup

More information

1 Komplexný príklad využitia OOP

1 Komplexný príklad využitia OOP 1 Komplexný príklad využitia OOP Najčastejším využitím webových aplikácií je komunikácia s databázovým systémom. Komplexný príklad je preto orientovaný práve do tejto oblasti. Od verzie PHP 5 je jeho domovskou

More information

Obsah. SOA REST REST princípy REST výhody prest. Otázky

Obsah. SOA REST REST princípy REST výhody prest. Otázky REST Peter Rybár Obsah SOA REST REST princípy REST výhody prest Otázky SOA implementácie WEB (1990) CORBA (1991) XML-RPC (1998) WS-* (1998) SOAP RPC/literal SOAP Document/literal (2001) REST (2000) SOA

More information

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator Anycast Ľubor Jurena CEO jurena@skhosting.eu Michal Kolárik System Administrator kolarik@skhosting.eu O nás Registrátor Webhosting Serverové riešenia Správa infraštruktúry Všetko sa dá :-) Index Čo je

More information

Databázy (1) Prednáška 11. Alexander Šimko

Databázy (1) Prednáška 11. Alexander Šimko Databázy (1) Prednáška 11 Alexander Šimko simko@fmph.uniba.sk Contents I Aktualizovanie štruktúry databázy Section 1 Aktualizovanie štruktúry databázy Aktualizácia štruktúry databázy Štruktúra databázy

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia dec.16 nov.16 okt.16 sep.16 aug.16 júl.16 jún.16 máj.16 apr.16 mar.16 feb.16 jan.16 Internetová populácia SR 12+ 3 728 988 3 718 495 3 718 802 3 711 581 3 700

More information

Introduction To Android

Introduction To Android Introduction To Android Mobile Technologies Symbian OS ios BlackBerry OS Windows Android Introduction to Android Android is an operating system for mobile devices such as smart phones and tablet computers.

More information

Poradové a agregačné window funkcie. ROLLUP a CUBE

Poradové a agregačné window funkcie. ROLLUP a CUBE Poradové a agregačné window funkcie. ROLLUP a CUBE 1) Poradové a agregačné window funkcie 2) Extrémy pomocou DENSE_RANK(), TOP() - Príklady 3) Spriemernené poradia 4) Kumulatívne súčty 5) Group By a Datepart,

More information

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu Inštalačná príručka Obsah 1 Predpoklady pre inštaláciu D.Signer... 3 1.1 Inštalácia.NET Framework... 3 1.1.1 Windows 8, 8.1... 4 1.1.2

More information

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Jazyk SQL Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Jazyk SQL - Structured Query Language SQL je počítačový jazyk určený na komunikáciu s relačným SRBD neprocedurálny (deklaratívny) jazyk

More information

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov D.4 Kontajner XML údajov (XMLDataContainer) Príloha č. 11 k výnosu č. 55/2014 Z. z. [pridaná novelou č. 275/2014 Z. z.,

More information

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca Obsah balenia TL-WR743ND Rýchly inštalačný sprievodca PoE injektor Napájací adaptér CD Ethernet kábel Systémové požiadavky

More information

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga.

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga. Ochrana koncových staníc pomocou Cisco Security Agent 6.0 Ľubomír Varga lubomir.varga@lynx.sk Agenda CSA 6.0 refresh Vybrané vlastnosti CSA 6.0 Application Trust levels Notify User Rule Actions User Justifications

More information

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android Ing. Elton Domnori December 7, 2011 Mobile OS Symbian BlackBerry Window mobile Android ios Mobile OS OS First release Last release Owner Android Android 1.0 September 2008 Android 4.0 May 2011 Open Handset

More information

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit.

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit. Fiber 5 Mbit ** 5 Mbit / Mbit 5,90 Fiber 50 Mbit * 50 Mbit / 8 Mbit 9,90 Fiber 80 Mbit * 80 Mbit / Mbit 5,90 Mini Mbit* Mbit / Mbit 9,90 Klasik 2 Mbit* 2 Mbit / 2 Mbit Standard 8 Mbit* 8 Mbit / 3Mbit Expert

More information

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1 VLSM a CIDR CCNA2 Kapitola 6 1 Trošku histórie Pred rokom 1981 IP adresy používali na špecifikáciu siete len prvých 8 bitov Rok1981, RFC 791 Zaviedol adresný priestor s tromi triedami adries Polovica 90

More information

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Android App Development Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Mobile devices (e.g., smartphone, tablet PCs, etc.) are increasingly becoming an essential part of human life

More information

Manuál k programu FileZilla

Manuál k programu FileZilla Manuál k programu FileZilla EXO TECHNOLOGIES spol. s.r.o. Garbiarska 3 Stará Ľubovňa 064 01 IČO: 36 485 161 IČ DPH: SK2020004503 support@exohosting.sk www.exohosting.sk 1 Úvod EXO HOSTING tím pre Vás pripravil

More information

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals...

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals... Desatinné čísla #1a Mravec išiel 5,5 cm presne na sever, potom 3,4 cm na východ, 1,8 cm na juh, 14,3 cm na západ, 1,3 cm na sever a 10,9 cm na východ. Najmenej koľko cm musí teraz prejsť, aby sa dostal

More information

Návod na odstránenie certifikátov so zrušenou platnosťou

Návod na odstránenie certifikátov so zrušenou platnosťou Návod na odstránenie certifikátov so zrušenou platnosťou Dátum zverejnenia: 7. 11. 2017 Verzia: 1 Dátum aktualizácie: Popis: Tento dokument je určený používateľom, ktorí elektronicky podpisujú dokumenty

More information

Programovanie v jazyku Python. Michal Kvasnica

Programovanie v jazyku Python. Michal Kvasnica Programovanie v jazyku Python Michal Kvasnica Organizačné detaily Prednášky aj cvičenia v 638 Povinná účasť na cvičeniach Hodnotenie: priebežné odovzdávanie zadaní (40% známky) záverečný projekt na skúške

More information

XHTML1folie.doc XHTML Čo bolo predtým?

XHTML1folie.doc XHTML Čo bolo predtým? XHTML1folie.doc 1 1.1 XHTML 1.1.1 Čo bolo predtým? XHTML - nová definícia jazyka HTML vo forme XML. Vývoj HTML: r. 1995 HTML 2.0 (základné formátovanie a štruktúrovanie, obrázky, formuláre). V r. 1995

More information

Riešenia a technológie pre jednotnú správu používateľov

Riešenia a technológie pre jednotnú správu používateľov Riešenia a technológie pre jednotnú správu používateľov Radovan Semančík Agenda Úvod: Identity Crisis Technológie správy používateľov Postup nasadenia Záver Súčasný stav IT Security Nekonzistentné bezpečnostné

More information

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 851(01(Bra@slava Titl.: Ján(Hrčka Bohrova(11 851(01(Bra@slava V(Bra@slave(21.11.2013 Vec:(Odpoveď(na(informácie(ohľadom(mandátnej(zmluvy(na(základe(Zákona(č.(211/2000(Zb.

More information

Mgr. Martin Vesel M 114

Mgr. Martin Vesel M 114 Mgr. Martin Vesel martin.vesel@gmail.com M 114 Where 2 go W3C, CSS špecifikácia http://www.w3.org/standards/techs/css#w3c_all http://www.w3.org/tr/2011/rec-css2-20110607/ http://www.w3.org/tr/2012/rec-css3-mediaqueries-20120619/

More information

Súborový systém. Ing. Viliam Solčány, PhD. ZS 2011/2012. Viliam Solčány, FIIT STU Bratislava Operačné systémy 2011/12 Predn.

Súborový systém. Ing. Viliam Solčány, PhD. ZS 2011/2012. Viliam Solčány, FIIT STU Bratislava Operačné systémy 2011/12 Predn. Súborový systém Ing. Viliam Solčány, PhD. ÓÐ ÒÝ Øº ØÙ º ZS 2011/2012 Viliam Solčány, FIIT STU Bratislava Operačné systémy 2011/12 Predn. 12 1 / 42 Osnova Viliam Solčány, FIIT STU Bratislava Operačné systémy

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU.

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU. UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU Diplomová práca 2017 Bc. Denis Spišák UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA

More information

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami)

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) I2AI: Lecture 04 Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) Lubica Benuskova Reading: AIMA 3 rd ed. chap. 6 ending with 6.3.2 1 Constraint satisfaction problems (CSP) We w

More information

}w!"#$%&'()+,-./012345<ya

}w!#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY }w!"#$%&'()+,-./012345

More information

NÁSTROJ PRO SLEDOVÁNÍ RTP STREAMŮ

NÁSTROJ PRO SLEDOVÁNÍ RTP STREAMŮ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS NÁSTROJ PRO SLEDOVÁNÍ

More information

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP Recipient Configuration Štefan Pataky MCP, MCTS, MCITP Agenda Mailbox Mail Contact Distribution Groups Disconnected Mailbox Mailbox (vytvorenie nového účtu) Exchange Management Console New User Exchange

More information

SD Module- Android Programming

SD Module- Android Programming Assignment No. 1 SD Module- Android Programming R (2) C (4) V (2) T (2) Total (10) Dated Sign Title: Download Install and Configure Android Studio on Linux /windows platform. Problem Definition: Install

More information

Informatika 2. Generiká

Informatika 2. Generiká Informatika 2 Generiká Pojmy zavedené v 10. prednáške (1) štandardný vstup a výstup textové súbory binárne súbory objektové prúdy Informatika 2 1 Pojmy zavedené v 10. prednáške (2) objektové prúdy nečitateľné

More information

}w!"#$%&'()+,-./012345<ya

}w!#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY w!"#$%&'()+,-./012345

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS IMPLEMENTACE

More information

Mikroprocesor. Mikroprocesor. Program. Federico Faggin, tvorca prvého mikroprocesora i4004

Mikroprocesor. Mikroprocesor. Program. Federico Faggin, tvorca prvého mikroprocesora i4004 Mikroprocesor Federico Faggin, tvorca prvého mikroprocesora i4004 Mikroprocesor Program 1. Choď z D-110 do D0A1 2. Presuň obsah z adresy 33 do košíka 3. Prines obsah košíka do D-110 4. Spracuj obsah 5.

More information

Nové komunikačné trendy v dátových centrách

Nové komunikačné trendy v dátových centrách Nové komunikačné trendy v dátových centrách Martin Vozár Roman Benko 25. november 2009 Cisco Expo, Bratislava Agenda 1. Konvergovaná architektúra 2. Komponenty architektúry 3. AVNET demo LAB 2 / 17 Konvergovaná

More information

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky BGP - duálne prepojenie AS (primary + backup spoj), s IBGP, cez virtuální L2 linky Peter Jašica Abstrakt: Cieľom tohto projektu je zhotoviť a otestovať funkčnosť BGP s dvojitým prepojením Autonómnych systémov.

More information

Komunikačné protokoly 2005 KP 2005 #3 - IP v02.doc

Komunikačné protokoly 2005 KP 2005 #3 - IP v02.doc Smerovanie a prepájanie v sieťach Dátové siete zabezpečujú prenos dát od zdoja k cieľu. Aby mohol takýto prenos fungovať, musia byť zavedené mená a adresy. Každému koncovému bodu je priradená jednoznačná

More information

SMARTPHONE FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS

SMARTPHONE FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS ZABEZPEČENÁ KOMUNIKACE

More information

systemove programovanie win32 programovanie

systemove programovanie win32 programovanie systemove programovanie win32 programovanie zakladny princip uzivatel interaguje so systemom klavesnicou, mysou tym generuje udalosti, ktore sa radia do,,message queue" (front sprav) aplikacia vytahuje

More information

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: System Architecture Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Android Architecture: An Overview Android Dalvik Java

More information

1 Vytvorenie tabuľky

1 Vytvorenie tabuľky Základy jazyka SQL (Structured Query Language) - vyvinula IBM začiatkom 70-tych rokov - je to deklaratívny jazyk (popisuje čo urobiť, nie ako) - je súčasťou veľkých databázových systémov (Informix, Oracle,

More information

}w!"#$%&'()+,-./012345<ya

}w!#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY }w!"#$%&'()+,-./012345

More information

Entity Framework: Úvod

Entity Framework: Úvod Entity Framework: Úvod Martin Macák Fakulta informatiky, Masarykova univerzita, Brno 29. 9. 2016 Osnova prednášky 1. Základy Entity Frameworku 2. Návrh databázy (detailnejšie Code First prístup) 3. Migrácie

More information

2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové

2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 1. Prvky jazyka MySQL http://dev.mysql.com/doc/refman/5.7/en/language-structure.html 2. Typy a pretypovanie http://dev.mysql.com/doc/refman/5.7/en/data-types.html

More information

Android In Industrial Applications. A Field Report

Android In Industrial Applications. A Field Report Garz & Fricke Android In Industrial Applications A Field Report Android In Industrial Applications A Field Report Contents What we will talk about Garz & Fricke Company Overview Introduction to Android

More information

Komunikačné protokoly 2004 KP 2004 #3 - IP v03.doc

Komunikačné protokoly 2004 KP 2004 #3 - IP v03.doc Smerovanie a prepájanie v sieťach Dátové siete zabezpečujú prenos dát od zdoja k cieľu. Aby mohol takýto prenos fungovať, musia byť zavedené mená a adresy. Každému koncovému bodu je priradená jednoznačná

More information

2. Konštanty, premenné a deklarácie.

2. Konštanty, premenné a deklarácie. 2. Konštanty, premenné a deklarácie. 2.1 Identifikátory, kľúčové slová a komentáre. 2.2 Základné typy dát 2.3 Konštanty a premenné. Konštanty Celočíselné konštanty Racionálne konštanty Znakové konštanty

More information

package balik; public class TopLevel1 {... }

package balik; public class TopLevel1 {... } Seminář Java Speciální třídy, výčtový typ Radek Kočí Fakulta informačních technologií VUT Březen 2010 Radek Kočí Seminář Java Speciální třídy, výčtový typ 1/ 20 Téma přednášky Vnořené třídy Anonymní třídy

More information

Aplikácia XML a MPEG7 pri analýze audia a videa ŽILINSKÁ UNIVERZITA V ŽILINE

Aplikácia XML a MPEG7 pri analýze audia a videa ŽILINSKÁ UNIVERZITA V ŽILINE Aplikácia XML a MPEG7 pri analýze audia a videa Miroslav Dzurek ŽILINSKÁ UNIVERZITA V ŽILINE Elektrotechnická fakulta Katedra telekomunikácií Študijný odbor: TELEKOMUNIKÁCIE Vedúci diplomovej práce: Ing.

More information

The Security of Android APKs

The Security of Android APKs Masaryk University Faculty of Informatics The Security of Android APKs Bachelor s Thesis Michaela Lubyová Brno, Spring 2017 Declaration Hereby I declare that this paper is my original authorial work,

More information

Programming with Android: System Architecture. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: System Architecture. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: System Architecture Luca Bedogni Dipartimento di Scienze dell Informazione Università di Bologna Outline Android Architecture: An Overview Android Java Virtual Machine Android

More information

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová Ochrana proti DDoS za použitia open-source software Katarína Ďurechová katarina.durechova@nic.cz 30.11.2013 Distributed Denial of Service odopretie služby dosiahnutím limitu pripojenia sieťovej karty CPU

More information

Android. Operating System and Architecture. Android. Screens. Main features

Android. Operating System and Architecture. Android. Screens. Main features Android Android Operating System and Architecture Operating System and development system from Google and Open Handset Alliance since 2008 At the lower level is based on the Linux kernel and in a higher

More information

VZDÁLENÝ PŘÍSTUP K MOBILNÍM ZAŘÍZENÍM REMOTE ACCESS TO MOBILE DEVICES

VZDÁLENÝ PŘÍSTUP K MOBILNÍM ZAŘÍZENÍM REMOTE ACCESS TO MOBILE DEVICES VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS VZDÁLENÝ PŘÍSTUP

More information

Android Development Tutorial. Yi Huang

Android Development Tutorial. Yi Huang Android Development Tutorial Yi Huang Contents What s Android Android architecture Android software development Hello World on Android More 2 3 What s Android Android Phones Sony X10 HTC G1 Samsung i7500

More information

AR6181-MX, AR6182-MX Čítačky MIFARE kariet

AR6181-MX, AR6182-MX Čítačky MIFARE kariet AR6181-MX, AR6182-MX Čítačky MIFARE kariet ISO14443-A, ISO14443-B a ISO15693 Systém kontroly vstupu 13,56 MHz proximity technológia Jednoduchá konfigurácia čítačky použitím konfiguračnej karty Možnosť

More information

Aplikácia k určovaniu rastlín pre platformu ios

Aplikácia k určovaniu rastlín pre platformu ios Mendelova univerzita v Brně Provozně ekonomická fakulta Aplikácia k určovaniu rastlín pre platformu ios Bakalárska práca Vedúci práce: Ing. Dita Dlabolová Jakub Kozák Brno 2014 Na tomto mieste by som

More information

Počítačové siete Bezpečnosť

Počítačové siete Bezpečnosť Počítačové siete Bezpečnosť Bezpečnostné problémy v sieťach dôvernosť integrita a autentickosť dostupnosť autentifikácia používateľov systémov riadenie prístupu 2 Bezpečnostné mechanizmy fyzická ochrana

More information

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: System Architecture Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Android Architecture: An Overview Android Dalvik Java

More information

POKROČILÉ C++ Marian Vittek

POKROČILÉ C++ Marian Vittek POKROČILÉ C++ Marian Vittek vittek@fmph.uniba.sk O predmete Pôvodne seminár Teraz normálna prednáška so skúškou/testom Predmetom kurzu je detailnejší pohľad na jazyk C++ a občasné porovnanie s inými programovacími

More information

Obrázok č. 1 Byte. Obrázok č. 2 Slovo

Obrázok č. 1 Byte. Obrázok č. 2 Slovo C++ pod lupou Nie som ortodoxným prívržencom nijakého dnes používaného jazyka, poznám ich už riadnu kôpku, ale najbližšie mám práve k C++. Prečo, o tom by sa dalo diskutovať donekonečna, nie je to však

More information

JEDNODUCHÝ IS PRO MOBILNÍ TELEFONY PRO EVIDENCI HOVORŮ SIMPLE MOBILE PHONE IS FOR CALL EVIDENCE

JEDNODUCHÝ IS PRO MOBILNÍ TELEFONY PRO EVIDENCI HOVORŮ SIMPLE MOBILE PHONE IS FOR CALL EVIDENCE VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS JEDNODUCHÝ IS

More information

UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE

UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE FAKULTA PRÍRODNÝCH VIED BEZPEČNOSŤ MOBILNÝCH ZARIADENÍ DIPLOMOVÁ PRÁCA 2017 Bc. JAN FRANCISTI UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE FAKULTA PRÍRODNÝCH VIED BEZPEČNOSŤ

More information

Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky. Interaktívna výuková webová aplikácia na riešenie úloh o pravdepodobnosti

Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky. Interaktívna výuková webová aplikácia na riešenie úloh o pravdepodobnosti Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Interaktívna výuková webová aplikácia na riešenie úloh o pravdepodobnosti Bakalárska práca 2016 Zuzana Majeríková Univerzita

More information

1. ELASTIX inštalácia 2 2. Elastix konfigurácia Nastavenie užívateľských kont Pridanie nových užívateľských kont 10 2.

1. ELASTIX inštalácia 2 2. Elastix konfigurácia Nastavenie užívateľských kont Pridanie nových užívateľských kont 10 2. 1. ELASTIX inštalácia 2 2. Elastix konfigurácia 8 2.1 Nastavenie užívateľských kont 9 2.2 Pridanie nových užívateľských kont 10 2.3 InstantMessaging and presence 12 2.4 TLS 12 2.5 Conference 12 3. Záver

More information

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára REPORT DESIGNER úprava formulárov v Money S4 / Money S5 Informačný systém Money S4/S5 umožňuje upraviť tlačové zostavy tak, aby plne vyhovovali potrebám používateľa. Na úpravu tlačových zostáv slúži doplnkový

More information

DICOM Štandard pre vytváranie, ukladanie, tlač a prenos obrazových informácií v zdravotníctve

DICOM Štandard pre vytváranie, ukladanie, tlač a prenos obrazových informácií v zdravotníctve DICOM Štandard pre vytváranie, ukladanie, tlač a prenos obrazových informácií v zdravotníctve (Angl. DICOM - Digital Imaging and Communications in Medicine) Štandard DICOM je informačný technologický štandard,

More information

Tvorba webových stránok pre mobilné platformy

Tvorba webových stránok pre mobilné platformy Bankovní institut vysoká škola Praha zahraničná vysoká škola Banská Bystrica Tvorba webových stránok pre mobilné platformy Diplomová práca Bc. Andrej Ševčík Apríl 2014 Bankovní institut vysoká škola Praha

More information

Požiadavky na prezentácie XML dokumentov pre podpisovanie

Požiadavky na prezentácie XML dokumentov pre podpisovanie Požiadavky na prezentácie XML dokumentov pre podpisovanie Copyright Všetky práva vyhradené Tento dokument je vlastníctvom spoločnosti DITEC, a. s. Žiadna jeho časť sa nesmie akýmkoľvek spôsobom (elektronickým,

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií DIPLOMOVÁ PRÁCE

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií DIPLOMOVÁ PRÁCE VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií DIPLOMOVÁ PRÁCE Brno, 2016 Bc. Michal Paulech VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY

More information

Programové vybavenie - softvér. Funkcie operačného systému

Programové vybavenie - softvér. Funkcie operačného systému Programové vybavenie - softvér Funkcie operačného systému Softvér Softvér (software) programové vybavenie počítača. Vzniká programovaním, pričom každý počítačový program obsahuje postupnosť inštrukcií,

More information

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám.

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL LED svietidlá na osvetlenie športovísk MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL SPORT LL SPORT je sofistikované vysoko výkonné LED svietidlo špeciálne

More information

Databázy (1) Prednáška 08. Alexander Šimko

Databázy (1) Prednáška 08. Alexander Šimko Databázy (1) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Subqueries (poddopyty) konštrukcia WITH Section 1 Subqueries (poddopyty) Subquery (poddopyt) Použitie SELECTu na mieste, kde sme

More information

Jednoradové ložiská s kosouhlým stykom - katalóg Single-Row Angular Contact Ball Bearings - Catalogue

Jednoradové ložiská s kosouhlým stykom - katalóg Single-Row Angular Contact Ball Bearings - Catalogue Jednoradové ložiská s kosouhlým stykom - katalóg Single-Row Angular Contact Ball Bearings - Catalogue PREDSLOV INTRODUCTORY REMARKS História výroby valivých ložísk AKE siaha až do Rakúsko Uhorskej monarchie.

More information

OPERAČNÝ SYSTÉM WINDOWS NT

OPERAČNÝ SYSTÉM WINDOWS NT OS 1 prednáška 9 OPERAČNÝ SYSTÉM WINDOWS NT Existuje mnoho rôznych verzií systémov Microsoft Windows, pričom operačný systém Microsoft Windows NT/2000/XP je rodinou úplne odlišnou od Windows 95/98/Me (skrátene

More information

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém Crestron Mercury Univerzálny Videokonferenčný a Kolaboračný systém Tradičná malá zasadacia miestnosť CRESTRON Mercury Videokonferenčná miestnosť Možnosť rezervácie miestnosti: Prostredníctvom MS Outlook

More information

Android. (XKE Mars 2009) Erwan Alliaume.

Android. (XKE Mars 2009) Erwan Alliaume. Android (XKE Mars 2009) Erwan Alliaume ealliaume(*at*)xebia(*dot*)fr http://www.xebia.fr http://blog.xebia.fr History August 2005 Google acquires Android November 2007 Open Handset Alliance announcement

More information

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs. 9. Android is an open-source operating system for mobile devices. Nowadays, it has more than 1.4 billion monthly active users (statistic from September 2015) and the largest share on the mobile device

More information

ODPOSLECH STISKNUTÝCH KLÁVES PRO LINUX LINUX KEYLOGGER

ODPOSLECH STISKNUTÝCH KLÁVES PRO LINUX LINUX KEYLOGGER VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS ODPOSLECH STISKNUTÝCH

More information

IMPLEMENTACE MODULÁRNÍ ARITMETIKY DO OBVODŮ FPGA A ASIC

IMPLEMENTACE MODULÁRNÍ ARITMETIKY DO OBVODŮ FPGA A ASIC VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

More information

Lecture 1 - Introduction to Android

Lecture 1 - Introduction to Android Lecture 1 - Introduction to Android This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/

More information

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE MATERIÁLOVOTECHNOLOGICKÁ FAKULTA V TRNAVE

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE MATERIÁLOVOTECHNOLOGICKÁ FAKULTA V TRNAVE SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE MATERIÁLOVOTECHNOLOGICKÁ FAKULTA V TRNAVE APLIKÁCIA PRE SYNCHRONIZÁCIU SUGARCRM S MOBILNÝMI ZARIADENIAMI SO SYSTÉMOM ANDROID BAKALÁRSKA PRÁCA MTF-5262-47785

More information

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia Microsoft Azure platforma pre Cloud Computing Juraj Šitina, Microsoft Slovakia m Agenda Cloud Computing Pohľad Microsoftu Predstavujeme platformu Microsoft Azure Benefity Cloud Computingu Microsoft je

More information

obsahuje 5 príkladov, spolu 29>25 bodov skupina:

obsahuje 5 príkladov, spolu 29>25 bodov skupina: Midterm 2013, verzia A Meno a priezvisko: obsahuje 5 príkladov, spolu 29>25 bodov skupina: 1A) [8 bodov] Zistite, čo počíta nasledujúca rekurzívna funkcia foo pre n>=0. Hint: foo(2013) = 6. static long

More information

Android-Basics. Praktikum Mobile und Verteilte Systeme. Prof. Dr. Claudia Linnhoff-Popien André Ebert, Sebastian Feld

Android-Basics. Praktikum Mobile und Verteilte Systeme. Prof. Dr. Claudia Linnhoff-Popien André Ebert, Sebastian Feld Praktikum Mobile und Verteilte Systeme Android-Basics Prof. Dr. Claudia Linnhoff-Popien André Ebert, Sebastian Feld http://www.mobile.ifi.lmu.de WS 2017/18 Programming with Android Today: Android basics

More information

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1 Android Lesson 1 1 1 1.0 to Android 2 Contents Android is an ecosystem Android platform architecture Android Versions Challenges of Android app development App fundamentals 3 Android Ecosystem 4 What is

More information

SLOVENSKÁ TECHNICKÁ UNIVERZITA FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ ILKOVIČOVA 3, BRATISLAVA 4

SLOVENSKÁ TECHNICKÁ UNIVERZITA FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ ILKOVIČOVA 3, BRATISLAVA 4 SLOVENSKÁ TECHNICKÁ UNIVERZITA FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ ILKOVIČOVA 3, 842 16 BRATISLAVA 4 TÍM 13 SIMULÁCIA DEMONŠTRÁCIE V MESTE DEVELOPERSKÁ PRÍRUČKA Vedúci projektu: Ing. Ivan Kapustík

More information

CS260 Intro to Java & Android 04.Android Intro

CS260 Intro to Java & Android 04.Android Intro CS260 Intro to Java & Android 04.Android Intro Winter 2015 Winter 2015 CS260 - Intro to Java & Android 1 Android - Getting Started Android SDK contains: API Libraries Developer Tools Documentation Sample

More information

Vzory, rámce a webové aplikácie

Vzory, rámce a webové aplikácie Vzory, rámce a webové aplikácie Jakub Šimko jakub.simko@stuba.sk Návrhové vzory (načo slúžia?) 1. Dobré zvyky v programovaní 2. Riešia často sa opakujúce problémy praxou overeným spôsobom 3. Pomôžu nám

More information