Android (operační systém)

Android
Logo
Android 10 – domovská obrazovka
Android 10 – domovská obrazovka
Web android.com
Vyvíjí Google, Open Handset Alliance
Rodina OS GNU/Linux
Druh mobilní
První vydání 23. září 2008
Aktuální verze 11 / 8. září 2020
Způsob aktualizace OTA (Over-the-air)
Správce balíčků APK (via Google Play)
Podporované platformy ARM, x86, MIPS (32bit)
ARMv8, x86-64, MIPS64 (64bit)
Typ jádra monolitické jádro (modifikované linuxové jádro)
Programovací jazyk Java (uživatelské rozhraní), C (jádro), C++[1]
Výchozí uživatelské rozhraní grafické (multi-touch)
Licence Apache 2.0
GNU GPL v2 pro modifikace linuxového jádra
Stav Aktivní
LG Nexus 5
LG Leon

Android (stylizováno jako android, anglická výslovnost [ˈændroid]) je mobilní operační systém založený na jádře Linuxu, který je dostupný jako otevřený software (open source). Je používán na smartphonech, tabletech, chytrých televizích a dalších zařízeních. Jeho vývoj vede firma Google pod hlavičkou konsorcia firem Open Handset Alliance a výrobci různých zařízení mohou Android upravovat při dodržení stanovených podmínek. Název je často doplněn o název prostředí, které vyvíjí sám vývojář (například MIUI od Xiaomi, One UI od Samsung, nebo je zcela vynechán, pokud jsou změny příliš velké (například systémy YunOS, Fire OS nebo OxygenOS).

Systém Android má největší zastoupení na světě mezi všemi operačními systémy.[P 1] Na tabletech je nejprodávanějším systémem od roku 2013 a na mobilních telefonech je dominantní podle jakéhokoliv pohledu.[3][4] Ve třetím kvartálu roku 2016 měl Android 86,8% podíl na trhu prodaných chytrých mobilních telefonů.[5] V celkových prodejích je Android od roku 2015 na prvním místě, následován systémy iOS a Windows Phone.[6]

Přestože je vlastní operační systém Android otevřený software, je tak silně spojen s proprietárními službami, že ho nemá smysl provozovat bez nich.[7]

Android vyvíjí konsorcium Open Handset Alliance, jehož cílem je progresivní rozvoj mobilních technologií, které budou mít výrazně nižší náklady na vývoj a distribuci, a zároveň spotřebitelům přinese inovativní uživatelsky přívětivé prostředí. Při vývoji systému byla brána v úvahu omezení, kterými disponují klasická mobilní zařízení, jako výdrž baterie, menší výkonnost a málo dostupné paměti. Zároveň bylo jádro Androidu navrženo pro běh na různém hardwaru. Systém tak může být použit bez ohledu na použitou hardwarovou platformu, čipovou sadu, velikost nebo rozlišení obrazovky.[8]

Samotná platforma Android dává k dispozici nejen operační systém s uživatelským prostředím pro koncové uživatele, ale i kompletní řešení nasazení operačního systému (specifikace ovladačů aj.) pro mobilní operátory a výrobce zařízení a v neposlední řadě pro vývojáře aplikací poskytuje efektivní nástroje pro jejich vývoj – Software Development Kit (SDK).

Společnost Android Inc. byla založena v Kalifornii v říjnu 2003 Andym Rubinem, Richem Minerem, Nickem Searsem a Chrisem Whitem. Google Inc. v srpnu roku 2005 odkoupil v té době nepříliš známou startup společnost Android Inc. a udělal z ní svoji dceřinou společnost.[9]

Po odkupu společnosti tým Googlu pod vedením Andyho Rubina vyvinul platformu založenou na Linuxovém jádře a v září roku 2007 Google získal několik patentů v oblasti mobilních technologií. Odborná veřejnost začala po akvizici spekulovat, že Google chce tímto krokem vstoupit na trh „chytrých“ mobilních telefonů a chystá vydání vlastního mobilu.[10]

5. listopadu 2007 bylo vytvořeno uskupení Open Handset Alliance. Konsorcium, které zahrnovalo společnosti zabývající se výrobou mobilních telefonů, čipů nebo mobilních aplikací, např. Google, HTC, Intel, LG, Motorola, nVidia, Qualcomm, Samsung, Texas Instruments a dalších 25 společností. Cílem tohoto konsorcia bylo vyvinout otevřený standard pro mobilní zařízení. V ten samý den Open Handset Alliance ohlásil svůj první produkt, Android, otevřenou mobilní platformu postavenou na jádře Linux verze 2.6. Eric Schmidt dal při této příležitosti ve svém projevu najevo, že má Google s platformou Android velké plány: „Dnešní oznámení je mnohem ambicióznější, než pouhý Google telefon, jak spekuloval tisk v posledních několika týdnech. Naší vizí je, že platforma, kterou představujeme, bude moci být použita na tisících rozdílných telefonních modelech.“ O týden později byl vydán první Android SDK pro vývojáře pod licencí open-source.[8]

V říjnu roku 2008 byl ve Spojených státech amerických uveden první komerční mobilní telefon T-Mobile G1 (HTC Dream) s operačním systémem Android (v České republice byl uveden v lednu 2009) a zároveň s tím bylo uvolněno SDK 1.0. V roce 2009 vzrostl počet zařízení používající Android na více než dvacet. Na konci roku 2010 se Android stal vedoucí platformou smartphonů, na počátku roku 2012 měl 59% podíl a v roce 2013 už jednoznačně dominoval trhu s podílem 80 %.[11]

Verze operačního systému Android navržená pro chytré hodinky se jmenovala Android Wear a byla poprvé uvedena v 18. března 2014. V březnu 2018 byl Android Wear přejmenován na Wear OS.

Architektura operačního systému Android je rozdělena do 5 vrstev. Každá vrstva má svůj účel a nemusí být přímo oddělena od ostatních vrstev.

Nejnižší vrstva architektury je jádro operačního systému, které tvoří abstraktní vrstvu mezi používaným hardwarem a zbytkem softwaru ve vyšších vrstvách. Jádrem systému Android je modifikovaný Linux, firmy vyvíjející Android tak jsou předními přispěvateli linuxového jádra.[12] V prvních verzích Androidu šlo o verze Linuxu 2.6.x, pozdější verze využívají novější linuxová jádra.[13][14][15] Je využito mnoha vlastností Linuxu, jako podpora správy paměti, správa sítí, zabudované ovladače nebo správy procesů, například souběžného běhu aplikací, které běží jako samostatné procesy s oprávněním stanoveným systémem. Tato vlastnost přispívá ke stabilitě a také ochraně systému. Naopak systém nepodporuje grafické uživatelské rozhraní X Window, init Systemd a ani úplnou sadu GNU knihoven. Důvodem použití jádra Linux byla také vlastnost poměrně snadného sestavení na různých zařízeních a tím zaručená přenositelnost.

Další vrstvou jsou knihovny, které jsou napsány v C nebo C++ kódu a využívají je různé komponenty systému. Tyto funkce jsou vývojářům poskytnuty prostřednictvím Android Application Framework. Zde jsou uvedeny pouze některé příklady knihoven:

Android Runtime

Obsahuje vrstvu obsahující aplikační virtuální stroj zvaný Dalvik, který byl vyvíjen od roku 2005 speciálně pro Android, týmem v Googlu pod vedením Dana Bornsteina. Nově se používá Dalvik Turbo od francouzsko-švýcarské firmy Myriad Group, který je výrazně rychlejší a úspornější, ale zachovává kompatibilitu s původním Dalvikem.

Vznik virtuálního stroje Dalvik byl při současné existenci JVM od Oraclu iniciován ze dvou důvodů. Prvním důvodem byla licenční práva, kde jazyk Java a jeho knihovny jsou volně šiřitelné, zatímco JVM není. Dalším důvodem byla optimalizace virtuálního stroje pro mobilní zařízení, a to především v oblasti poměru úspory energie a výkonu.

V této vrstvě jsou také obsaženy základní knihovny programovacího jazyka Java. Knihovny se svým obsahem blíží platformě Java Standard Edition. Hlavní rozdíl je v nepřítomnosti knihoven pro uživatelské rozhraní (Abstract Window Toolkit a Swing), které byly nahrazeny knihovnami uživatelského rozhraní pro Android nebo přidání knihovny Apache pro práci se sítí.

Překlad aplikace napsané pro Android verze starší než 4.4 probíhá zkompilováním zdrojového javového kódu do Java byte kódu pomocí stejného kompilátoru, jako je používán v případě překladu Java aplikací. Poté se překompiluje Java byte kód pomocí kompilátoru Dalvik a výsledný Dalvik byte kód je spuštěn na DVM. Každá spuštěná androidová aplikace běží ve svém vlastním procesu, s vlastní instancí DVM.

Od verze Androidu 4.4 (a Android 5.0) včetně se používá (ART – Android RunTime) dopředná kompilace (AOT – Ahead-of-time compilation). Důvodem jsou úspory energie a další výrazné zrychlení aplikací.

Dopředná kompilace v Androidu 4.4+ funguje tak, že se aplikace napsaná ve zdrojovém kódu Javy přeloží pomocí kompilátoru do Java byte kódu, a následně se přeloží do byte kódu Dalviku (.DEX). Při instalaci do Androidu se jednou pro vždy zkompiluje do nativního kódu (procesoru) zařízení.[17]

Výsledkem je až dvakrát výkonnější smartphone, který má cca o 36 % delší výdrž. Zpomalení se týká jen instalace aplikace, při které se provádí její finální optimalizace.[18][19][20]

Pro zachování kompatibility je původní kompilátor (JIT – Just-in-time compilation) Dalvik prozatím přítomen.[zdroj?]

Společnost Google zřejmě přichází se značnou změnou v oblasti řízení oprávnění pro aplikace v nadcházejícím systému Android.

V současné době systém Android umožňuje aplikaci buď nainstalovat a spouštět se všemi právy, nebo instalaci aplikace zcela odmítnout. To se teď mění; ona změna spočívá v rozšíření možností uživatele Androidu tak, aby aplikace získala jen skupiny práv, které nezbytně potřebuje, tedy které jí uživatel dovolí používat. Aplikace sice bude moci požádat o dodatečná práva při svém běhu, ale i tehdy jí uživatel bude moci práva odepřít. Bude tedy možné například zamezit aplikaci přístup k mikrofonu, fotoaparátu, souborům a nebo třeba k telefonnímu seznamu. Nová verze Androidu má také propracovanější správu energie.[21][22]

Application framework

Vrstva Application framework je pro vývojáře nejdůležitější. Poskytuje přístup k velkému počtu služeb, které mohou být použity přímo v aplikacích. Tyto služby mohou zpřístupňovat data v jiných aplikacích, prvky uživatelského rozhraní, upozorňovací stavový řádek, aplikace běžící na pozadí, hardware používaného zařízení a mnoho dalších služeb a funkcí. Základní sada služeb zahrnuje především:

  • Sada prvků View – Tyto prvky (widgety) jsou použity pro sestavení uživatelského rozhraní jako seznamy, textové pole, tlačítka, checkboxy a jiné.
  • Content providers – Umožňuje přístup k obsahu (např. kontakty) jiných aplikací.
  • Resource manager – Poskytuje přístup „nekódovým“ zdrojům, jako jsou řetězce, grafika, přidané soubory.
  • Notification manager – Umožňuje všem aplikacím zobrazit vlastní upozornění ve stavovém řádku.
  • Activity manager – Řídí životní cyklus aplikací a poskytuje orientaci v zásobníku s aplikacemi.

Nejvyšší vrstvu systému tvoří základní aplikace, které využívají běžní uživatelé. Může jít o aplikace předinstalované nebo dodatečně stažené z Android Marketu. Například e-mailový klient, SMS program, kalendář, mapy, prohlížeč, kontakty a další aplikace i od „třetích“ stran.[23]

Od první verze bylo vydáno několik aktualizací, které opravují chyby a přidávají nové funkce. Jednotlivé verze systému se jmenují abecedně podle sladkostí (Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marshmallow, Nougat, Oreo a Pie)[24].

Verze Androidu Nové funkce
Android 1.0 Apple Pie
  • 23. září 2008 byla vydána první plná verze androidu s názvem Apple Pie.
  • Aplikace Android Market umožnila stahování a aktualizace aplikací prostřednictvím aplikace Market
  • Webový prohlížeč zobrazuje, zvětšuje a posouvá plné HTML a XHTML webové stránky – více stránek se zobrazuje jako okna ("karty") [37] [38]
  • Podpora fotoaparátu – tato verze však neměla možnost měnit rozlišení fotoaparátu, vyvážení bílé, kvalitu atd. [39]
  • Složky umožňující seskupení několika ikon aplikací do jedné ikony složky na domovské obrazovce [40]
  • Přístup k webovým emailovým serverům, podporující protokoly POP3 , IMAP4 a SMTP [38]
  • Synchronizace Gmailu s aplikací Gmail
  • Synchronizace kontaktů Google s aplikací Lidé
  • Synchronizace Kalendáře Google s aplikací Kalendář
  • Mapy Google a Street View pro zobrazení map a satelitních snímků, stejně jako lokální podnikání a získání trasy jízdy pomocí GPS [39]
  • Služba Google Sync umožňuje správu synchronizace přes Gmail, Lidé a Kalendář
  • Vyhledávání Google umožňující uživatelům vyhledávat na internetu a telefonní aplikace, kontakty, kalendář atd.
  • Rychlé zasílání zpráv Google Talk
  • Okamžité zasílání zpráv , textové zprávy a MMS
  • Media Player , který umožňuje správu, import a přehrávání multimediálních souborů – nicméně tato verze postrádala videa a stereo Bluetooth podporu [38] [39]
  • Oznámení se objevují v stavovém řádku s možnostmi nastavení vyzváněcích tónů, varování LED nebo vibrací [37] [38] [41]
  • Hlasové vytáčení umožňuje volat a umísťovat telefonní hovory bez zadání jména nebo čísla [38]
  • Tapeta umožňuje uživateli nastavit obrázek nebo fotku pozadí za ikony a widgety domovské obrazovky
  • Přehrávač videa YouTube [42]
  • Mezi další aplikace patří: Budík, Kalkulačka, Telefon (Telefon), Výchozí obrazovka (Spouštěč), Obrázky (Galerie) a Nastavení
  • Podpora Wi-Fi a Bluetooth
Android 1.1 Banana Bread
  • Podrobnosti a recenze jsou k dispozici, když uživatel vyhledává v Mapách podniky
  • Dlouhá předvolená doba hovoru při použití hlasitého odposlechu a možnost zobrazení / skrytí číselné klávesnice
  • Schopnost ukládat přílohy ve zprávách
  • Podpora přidána pro markýzy v rozvržení systému
1.5 (Cupcake)

linuxové jádro 2.6.27

30. dubna 2009 byla uvolněna aktualizace na Android 1.5 (Cupcake).[25] Update přidává několik nových funkcí:
  • Možnost nahrávat a sledovat videa z kamery.
  • Nahrávání videí na YouTube a fotografií na Picasu přímo z mobilu.
  • Nová softwarová klávesnice s automatickým dokončováním slov.
  • Bluetooth – podpora A2DP.
  • Možnost automaticky připojit Bluetooth headset.
  • Nové widgety a složky.
  • Animace při přechodu mezi obrazovkami.
  • Rozšířena funkce kopírovat a vložit.

http://developer.android.com/about/versions/android-1.5-highlights.html

1.6 (Donut)

linuxové jádro 2.6.29

15. září 2009 bylo uvolněno 1.6 (Donut) SDK.[26] Změny:
  • Vylepšený Android Market.
  • Nové prostředí fotoaparátu, kamery a galerie.
  • Galerie umožňuje označit více fotografií k vymazání.
  • Aktualizované vyhledávání hlasem.
  • Quick Search Box – umožňuje vyhledávat záložky, historii, kontakty a na webu z domovské obrazovky.
  • Podpora pro technologie CDMA/EV-DO, 802.1x, VPN, Gesta a syntéza řeči.
  • Podpora pro rozlišení displeje WVGA.
  • Vylepšení rychlosti vyhledávání a kamery.

http://developer.android.com/about/versions/android-1.6-highlights.html

2.0/2.1 (Eclair)

linuxové jádro 2.6.29[27]

26. října 2009 bylo uvolněno 2.0 (Éclair) SDK.[28] Mezi změny patří:[29]
  • Optimalizována rychlost hardwaru.
  • Podpora pro více velikostí a rozlišení displeje.
  • Zdokonalené uživatelské prostředí.
  • Nové prostředí prohlížeče a podpora HTML5.
  • Nový seznam kontaktů.
  • Mapy Google aktualizovány na 3.1.2.
  • Podpora pro Microsoft Exchange.
  • Podpora přisvětlovací diody.
  • Digitální zoom (fotoaparát).
  • Vylepšená softwarová klávesnice.
  • Podpora pro Bluetooth 2.1.
  • Animované tapety na domovské stránce.

http://developer.android.com/about/versions/android-2.0-highlights.html

2.0.1 SDK bylo vydáno dne 3. prosince 2009.[30]

2.1 SDK byla vydána dne 12. ledna 2010.[31]

2.2 (Froyo)linuxové jádro 2.6.32[32] 20. května 2010 na konferenci Google I/O byl představen Android 2.2. Přidává nové technologie a funkce uživatelského prostředí:
  • Možnost instalovat aplikace na paměťovou kartu.
  • Adobe vydalo plugin Adobe Flash 10.1. Není integrován do systému, distribuce je řešena přes Android Market nebo přes stránky Adobe.
  • Díky kompilátoru JIT (Just-in-time) se podařilo zvýšit rychlost systému na různých benchmarcích 2× až 5×. Dále je vylepšena správa paměti RAM.
  • Možnost vytvořit z mobilu WiFi hotspot, nebo sdílet internetové připojení přes kabel USB.
  • Dva nové režimy telefonu – „car mode“ a „night mode“ (režim v autě a noční režim).
  • Více nastavení fotoaparátu a kamery.
  • Přidána podpora pro OpenGL ES 2.0, vícebarevný trackball, vylepšena podpora pro Exchange, Bluetooth a přidána další vrstva vývojářského API.

http://developer.android.com/about/versions/android-2.2-highlights.html

2.3/2.4 (Gingerbread)linuxové jádro 2.6.35[33] 6. prosince 2010 byla vypuštěna verze Android 2.3 Gingerbread:
  • Podpora video formátu WebM pro HTML5 video.[34]
  • Podpora pro Near Field Communication standard, který dnes podporují některé mobilní telefony.
  • Podpora protokolu SIP pro internetovou telefonii.
  • Lepší správa prostředků.
  • Upravená virtuální klávesnice.
  • Zlepšená funkce kopírovat a vložit.[35]
  • Podpora více kamer a nových senzorů.
  • Nové Google Maps 5 s 3D přístupem (Dostupné přes market pro všechny verze Androidu).
  • Rozšíření podpory nativního kódu.

http://developer.android.com/about/versions/android-2.3-highlights.html

3.0/3.1/3.2 (Honeycomb)linuxové jádro 2.6.36[36] 22. února 2011 byl představen Honeycomb:

http://developer.android.com/about/versions/android-3.0-highlights.html

4.0–4.0.4(Ice Cream Sandwich)linuxové jádro 3.0.1[37] Představen 19. října 2011:
  • Odemčení mobilu obličejem.
  • Přepracovaný launcher.
  • Vylepšený správce kontaktů.
  • Android Beam.
  • Vylepšené rozpoznání hlasu.
  • Ukazatel přenesených dat.
  • Zachycení panoramat.

http://developer.android.com/about/versions/android-4.0-highlights.html

4.1/4.2/4.3 (Jelly Bean)linuxové jádro 3.0.31[38] Představen 9. července 2012 na Google I/O:
  • Project Butter.
  • Rozpoznávání hlasu offline.
  • Vylepšena aplikace fotoaparát (Technologie PhotoSphere 360° fotografie).
  • Vylepšená informační lišta.
  • Google Now.
  • Více uživatelských účtů.
  • Správcovské a omezené účty (od 4.3).
  • Podpora OpenGL ES 3.0.

http://developer.android.com/about/versions/jelly-bean.html

4.4 (KitKat)[39]linuxové

jádro 3.4.0

Představen 3. září 2013 na Google Plus:
  • Odstraněn nástroj na ochranu soukromí.[40]
  • Optimalizace pro mobilní telefony s menším objemem operační paměti.
  • Možnost stažení notifikačni listy v aplikacích s celoobrazovým režimem.

http://developer.android.com/about/versions/kitkat.html

5.0 (Lollipop)[41][42] Představen 25. června 2014 na konferenci Google I/O 2014:
  • Nový vzhled uživatelského rozhraní, „material design“.
  • Nový, efektivnější ART runtime (viz Android Runtime).
  • Nový systém správy baterií.
  • Nový notifikační systém.
  • 32- i 64bitový systém.
  • Project Volta snižující energetickou náročnost systému.
  • Možnost zapnout úsporný režim, prodlužující pohotovostní dobu mobilu.
  • Systém byl původně šifrován v základním nastavení, kvůli výkonu od toho ale bylo upuštěno.[43]
  • Funkce Smart Lock.
  • Možnost více uživatelů na jednom mobilním telefonu, přidán mód Guest.
  • Funkce Tap & go umožňující přenesení nastavení z jiného mobilu pomocí technologie NFC.
  • V roce 2017 je Lollipop nejpoužívanější verzí Androidu, na začátku roku předehnal Android 4.4 KitKat.[zdroj?]

http://developer.android.com/about/versions/lollipop.html

5.1 (Lollipop)[44][45] Uveden 9. března 2015:
  • Podpora používání dvou a více SIM najednou.
  • Kill switch pro případ odcizení.
  • Lepší zvuk (HD voice).
  • Výkonnostní a bezpečnostní vylepšení.
  • Oprava úniků paměti z verzí 5.0.x.[46]

https://developer.android.com/about/versions/lollipop

6.0

(Marshmallow)

Uveden 5. října 2015:
  • Uživatelem definované skupiny oprávnění pro aplikace.
  • Prodloužení výdrže na jedno nabití až na dvojnásobek.
  • Podpora USB-C.
  • Rozpoznávání otisků prstů.

https://developer.android.com/about/versions/marshmallow

7.0 (Nougat) Uveden 22. srpna 2016:
  • Přináší možnost práce s více okny, kdy dvě aplikační okna mohou sdílet každé jednu polovinu obrazovky.
  • Skrytá funkce umožňující zvolit, které aplikaci má být přiděleno více výkonu.
  • Úprava notifikačního centra: redesign jednotlivých karet upozornění ve stylu listu papíru.
  • Nová API pro VR (virtuální realitu).
  • Podpora vykreslovacího API Vulkan 3D.

https://developer.android.com/about/versions/nougat

7.1 (Nougat) Uveden 19. října 2016
  • Upozornění na aplikace vytěžující baterii
8.0 (Oreo)[47] Uveden 21. srpna 2017
  • Zjištění notifikací pomocí podržení ikony aplikace
  • Rozdělení videohovoru s jakoukoliv aplikací či Androidem
  • Vylepšení upozornění aplikací (uspávání upozornění a nové odznaky upozornění)
  • Podpora více obrazovek
  • Až 2x rychlejší start zařízení
  • Omezení aplikací běžících na pozadí a omezení geolokačních služeb
  • Integrovaná podpora tisku
  • Správa barev (přidána podpora většího gamutu a barevné hloubky)
  • Úprava rozložení nastavení
  • Podpora LDAC kodeku
8.1 (Oreo)[48]
9.0 (Pie)[49] Uveden 6. srpna 2018
  • Upravena navigační lišta, pokud je zapnuta nová funkce gest – nachází se zde pouze prostřední tlačítko, avšak tlačítko zpět se objeví pokud to aplikace vyžaduje
  • Změna UIX
  • Větší množství informací v upozorněních
  • Android vám nyní řekne, kolik času jste strávili v jednotlivých aplikacích a umožní na ně nastavit časový limit
  • Přidán mód, který ztlumí upozornění, když je telefon položen displayem dolů
  • Adaptabilní úprava jasů podle předchozí manuálních úprav
  • Přidána nová funkce nerušit, která umožní nastavit čas, po který nechce být uživatel rušen a kdy je telefon přepnut do odstínů šedé

https://developer.android.com/about/versions/pie/

10
  • Nový vzhled
  • Gesta
11
  • Reverzní nabíjení
  • Nahrávání obrazovky
  • Plovoucí okno
  • Tmavý režim

API Vulkan

Tato knihovna umožňuje lépe využít hardware, zejména založený na novějších architekturách (GCN). Toto API také má být kompatibilní s Vulcanem z desktopu. API Vulkan[50] 3D již využívá Android 7.0 Nougat.

Oficiálně podporované vývojové prostředí pro aplikace Android je Eclipse. Do něj je možné nainstalovat ADT plugin, který ulehčuje práci s Android projektem. Vývojáři ovšem nejsou nuceni pracovat v tomto prostředí, ale mají možnost volby jiného IDE nebo jednoduchého textového editoru a kompilace aplikací pomocí příkazové řádky. V nedávné době (2014) Google odkoupil Android studio, které se začíná prosazovat jako hlavní vývojové prostředí.

Android Software Development Kit (SDK)

Nástroje pro vývoj aplikací pro platformu Android jsou obsaženy v SDK, který je dostupný pro všechny hlavní platformy operačních systémů GNU/Linux, Windows i macOS. Sada SDK je rozdělena na tři druhy: základní (nástroje nezbytné pro vývoj aplikací), doporučená a plná konfigurace vývojového prostředí.

Základní konfigurace SDK:

  • SDK Tools – Obsahuje nástroje pro debugging (ddms), testování aplikace, správu Android Virtual Devices (AVD), Android emulátor, analýzu grafického layoutu a další potřebné programy.
  • SDK Platform-tool – Obsahuje další důležité nástroje pro vývoj aplikací, které jsou závislé na verzi platformy a jsou aktualizovány při vydání nové verze SDK. Jeden z nástrojů je například Android Debug Bridge, umožňující nahrávat soubory do zařízení.
  • Android SDK platforms – Každá platforma SDK se skládá z knihoven, systémového obrazu, ukázkových kódů, skinů emulátoru a jiných zdrojů. Ke kompilaci aplikace a pro nastavení a běh AVD musí být přítomna alespoň jedna platforma.

Doporučená konfigurace SDK:

  • USB Driver – Komponenta, která je nutná pouze při ladění a testování aplikace nainstalované na zařízení. Potřebné pouze pro platformu Windows.
  • Příklady kódů – Obsahuje ukázkové kódy aplikací, které jsou aktuální pro každou platformu.
  • Dokumentace – Obsahuje lokální kopii dokumentace pro aktuální Android framework API. Tato dokumentace je také využita ve vývojovém prostředí Eclipse.

Plné konfigurace SDK:

  • Google API – Knihovny, zpřístupňující rozhraní Google Maps, které je možno použít v aplikacích.
  • Ostatní SDK platformy – To je například Market Licensing package, který obsahuje knihovnu ověřující licenci aplikace, zda se nejedná o nelegální kopii.[51]

Emulátor

Emulátor operačního systému Android je obsažen v Android SDK. Umožňuje testovat vytvořené aplikace bez fyzického zařízení. Pomocí Android SDK a AVD Manageru je možné konfigurovat volbu síťového připojení, SD karty atd. a spouštět jednotlivá virtuální zařízení. Většina aplikací se chová v emulátoru stejně jako na fyzickém zařízení. Existují ovšem výjimečné situace, které se virtualizovat nedají nebo jen těžko, například přijímání hovorů, video/audio vstup, úroveň nabité baterie, funkce bluetooth atd.

Základní stavební kameny v aplikacích Android jsou komponenty activity reprezentující obrazovku, service umožňující provádět akce na pozadí, content providers poskytující přístup k datům a broadcast reciever reagující na příchozí oznámení. Všechny tyto komponenty musí být definovány v souboru AndroidManifest.xml, uloženém v kořenovém adresáři projektu. Kromě content provideru mohou komponenty mezi sebou kooperovat pomocí zpráv, tzv. intentů.

Activity

Activity odpovídá jedné obrazovce. Obsahuje grafické uživatelské rozhraní pro interakci s uživatelem. Aplikace obsahuje obvykle více activit, mezi kterými je uživatel schopen přepínat a přitom si activity může předávat informace. Zahájení activity je poměrně náročná záležitost. Musí se vytvořit nový proces, alokovat paměť pro objekty uživatelských rozhraní, které se rozloží do layoutu obrazovky a na připravenou obrazovku vyvolat zobrazení. Aby nedocházelo ke zbytečnému plýtvání výpočetních prostředků např. při vzniku, zániku a opětovného vzniku activity – což se jednoduše může stát při stisku tlačítka zpět na zařízení – je zde Activity Manager, který zodpovídá za vytváření, rušení a celkovou správu životního cyklu activity. Activity Manager pracuje se zásobníkem, ve kterém jsou uchované informace o spuštěných activitách, a na vrcholu tohoto zásobníku je aktuálně zobrazované activity. Životní cyklus activity se může nacházet v těchto stavech:

  • Activity starts – Počátek, kdy je actvity inicializováno.
  • Activity is running – Activity je zobrazeno na displeji a může mít interakci s uživatelem. V jediném okamžiku může být právě jedna activity v tomto stavu.
  • Process is killed – Activity Manager zrušil activity z důvodu nedostatku paměti. K této akci může dojít, pokud activity není viditelné. Další možnost není tak obvyklá – activity je viditelné, ale uživatel s ní nemůže navázat interakci (nastává například při dialogových hláškách).
  • Activity is shut down – Activity Managerem ukončil activity a ta již nevyužívá žádnou paměť.

Service

Komponenta service neposkytuje uživatelské rozhraní, ale představuje pouze proces běžící na pozadí. Většinou se používá k vykonávání dlouho trvajících úkolů nebo k přístupu k vzdáleným zdrojům, kde není známá doba odezvy (jako je připojení k serveru). Service můžeme spustit dvěma způsoby a to pomocí metody startService. Potom se service může ukončit sama nebo ji může ukončit jiná komponenta. Další způsob spuštění je pomocí metody bindService, kterou vyvolá jiná komponenta, tzv. klient, v tomto případě service může ukončit pouze klient, který ji spustil. V jednom okamžiku může být k service navázáno pomocí metody bindService i více komponent, potom je service ukončena po odpojení všech klientů. Service se může nacházet ve třech stavech:

  • Component calls – Inicializace service pouhým zavoláním nebo navázáním komponenty na service.
  • Service is running – Service vykonává na pozadí svou funkci.
  • Service is shut down – Service byl ukončen sám nebo komponentou, záleží na formě spuštění service.

Content provider

Content provider je aplikační rozhraní pro sdílení dat mezi aplikacemi, ale i pro sdílení dat v aplikaci mezi jednotlivými activitami. Aplikace může uchovávat data v souborech, SQLite databázi nebo na webu, a přesto budou mít k těmto datům přístup – pokud je to povoleno – jiné aplikace. Content provider má relativně jednoduché rozhraní se standardními metodami (insert, update, delete a query), které mají stejnou funkci jako klasické databázové metody. Oddělení dat od uživatelského rozhraní nabízí možnost nahrazení výchozích aplikací novými. Například může jakákoliv aplikace využít uložených uživatelských kontaktů a nahradit tak výchozí aplikaci pro jejich zobrazování.

Broadcast receiver

Broadcast reciever je komponenta sloužící k „naslouchání“ oznámení. Podle určení na ně reaguje, například výpisem na stavový řádek nebo spuštěním jiné komponenty. Aplikace mohou využívat broadcasty systémové nebo vytvářet své vlastní. Podobně jako service ani broadcast receiver nemá uživatelské rozhraní. Příklad použití broadcast recieveru může být reakce na oznámení o nízkém stavu baterie, o zachycení fotografie, doručení SMS zprávy nebo stažení dat. [52]

Aby společnost Google přilákala vývojáře pro tuto novou platformu, do soutěže Google Developer Challenge vložila v roce 2008 celých 10 milionů dolarů. Android Developer Challenge je soutěž vývojářů pořádaná společností Google. Do soutěže se přihlašují skupiny vývojářů či jednotlivci, kteří prezentují své aplikace pro mobilní telefony na platformě Android. Ti nejlepší se pak podle stanovených pravidel podělí o finanční odměny, z nichž mohou financovat další vývoj, a získat tak lepší šanci na úspěch v dalších kolech, ve kterých užší výběr usiluje o řádově hodnotnější finanční odměny.

První kolo začalo v květnu výběrem 50 projektů za pomoci odborné poroty, které obdržely každý 25 tisíc dolarů na další vývoj. Z těch pak bylo vybráno 10 vítězů (každý vítězný projekt dostal 275 tisíc $) a dalších deset týmů dostalo sto tisíc dolarů. Podobné druhé kolo soutěže se konalo následující rok.

Aplikace do zařízení s operačním systémem Android jsou primárně dostupné přes tzv. Google Play (do února 2012 Android Market), což je služba určená pro stahování aplikací a her, kterou provozuje přímo Google. Byla dostupná již s uvedením prvního mobilního telefonu a v květnu 2011 na ní bylo více než 290 000 aplikací, z nichž část je zcela zdarma a část je ke stažení zdarma a při spuštění zobrazuje reklamy. Zbylé aplikace jsou placené – ty lze zatím kupovat jen v omezené množině zemí, která se ovšem rozrůstá (toto omezení platí pouze pro placené aplikace).

V únoru 2011 byl Android Market rovněž zpřístupněn přes Internet. Uživatelé tak mohou ze svého PC procházet seznamy aplikací a rovněž si vybírat ty, které se automaticky nainstalují na jejich mobilní zařízení. Veškerá tato funkcionalita byla do té doby přístupná pouze z mobilního zařízení.[53]

Kromě oficiálního repozitáře aplikací fungují i konkurenční a neoficiální repozitáře – např. Amazon Appstore nebo F-Droid, který obsahuje jen svobodné aplikace.

Protože Android je však otevřenou platformou, aplikace na ni je možné nahrávat i přímo např. z počítače (postupy jsou zdokumentované a podporuje je i samotné Android SDK).

Pro ty, kteří by chtěli modifikovat i samotné vlastnosti operačního systému, existují postupy, jak získat oprávnění administrátora v zařízení (administrátor se nazývá v Linuxu root [ruːt], proto se těmto postupům říká rooting [ˈruːtiŋ]). Je potřeba podotknout, že takové změny nejsou oficiálně podporované a mohou porušit některá obchodní ustanovení a vést např. ke ztrátě záruky a podpory zařízení.

  • Společnost Canalys odhadovala, že ve druhém čtvrtletí 2009 měl Android 2,9 % na trhu tzv. chytrých mobilních telefonů, ve třetím čtvrtletí to bylo 3,5 %.[54]
  • V květnu 2010 již ale Android zřejmě předběhl v USA iPhone co do počtu prodaných telefonů svým podílem 28 % na trhu v USA.[55]
  • V červenci 2011 Google oznámil, že je aktivováno každý den 550 tisíc zařízení se systémem Android.[56]
  • V druhém čtvrtletí roku 2011 je android na 48 % prodaných mobilů[57]
  • V letech 2012–2016 už Android jednoznačně dominoval trhu s podílem okolo 80 %.[58]
  • V roce 2018 Android dosáhl 86% tržního podílu [59]

Podle informací webu Gizmodo nasazení přístrojů s Androidem ve firmách postupně zpomalovalo.[60] Na vině jsou chybějící funkce pro podnikové nasazení spojené zejména s dostatečným zabezpečením a správou. Podle kritiků Androidu chybí zejména podpora šifrování dat, včetně enkrypce SD karet a také lepší systém ochrany proti malwaru, který se v poslední době na přístroje s Androidem zaměřuje ve velkém. Dále OS Android potřebuje snadný systém pro možnost vymazávání dat administrátory na dálku a také pokročilou schopnost sledování přístroje při ztrátě či odcizení.

Androidu příliš neprospěla ani šokující skutečnost, na kterou v květnu 2011 upozornil web The Register, že totiž 99 % mobilů používajících platformu Android obsahuje chyby dovolující například reklamním společnostem krádež přihlašovacích údajů používaných k přístupu ke kalendářům, kontaktům a dalším citlivým údajům. Poté, co uživatel odešle přihlašovací údaje k nějaké webové službě, dostane zpátky tzv. přihlašovací token, kterým si webová služba nadále ověřuje identitu uživatele aniž by po něm znovu vyžadovala heslo a který je pak možné k přihlášení použít další dva týdny. Tento token je navíc odesílán nešifrovaný a tak každý, kdo jej získá, může jednoduše webovou službu přesvědčit, že je oprávněn k přístupu na účet daného uživatele. Tato bezpečnostní díra byla částečně opravena v Androidu verze 2.3.4, přesto však i tato verze stále umožňuje podobný útok například při synchronizaci se službou Picasa.[61]

Podle webu ICT manažer pak Google prý není schopný sám Android přeměnit v platformu, která by odpovídala požadavkům korporátních uživatelů a zůstane tak spíše orientovaný na koncové uživatele. Android je sice možné využívat ve firmách, ale jen v omezené míře, pokud jej uživatelé nebudou používat pro práci s informacemi.[62]

V listopadu 2017 server The Hacker News informoval o tom, že přes 700 milionů telefonů s Androidem obsahuje backdoor společnosti Shanghai AdUps Technology, který získává data uživatelů a posílá je do Číny.[63] Backdoor prohledává obsah SMS, seznam kontaktů, seznam volání, lokační údaje a další osobní informace a posílá je každých 72 hodin.[63] Backdoor byl objeven v systémových aplikacích com.adups.fota.sysoper a com.adups.fota, z nichjž ani jedna nemůže být zakázána nebo odinstalována uživatelem.[63]

Android není zcela otevřený systém, ale otevřená je jeho velká část: od modulů Linuxového jádra, knihoven, aplikačního programové rozhraní až po základní aplikace. To dává výrobcům možnost přizpůsobit systém nasazenému hardwaru a také lépe integrovat své aplikace. Android je zároveň šířen pod „business-friendly“ licencí (Apache/MIT), což umožňuje třetím stranám využívat systém pro nejrůznější účely. Ale některé části jsou uzavřenou technologii firmy Google,[64] přesto Google tento systém prezentuje jako open source.

Android také obsahuje několik patentovaných technologii, které si musí výrobci mobilních telefonů licencovat.[65]

Díky vydání produktu jako open source a nezávislosti na použitém hardwaru může být Android spuštěn na velkém počtu přístrojů. Tato skutečnost zapříčinila vznik velkého a ekonomicky úspěšného ekosystému tvořeného aplikacemi, vývojáři a uživateli.[66]

V tuzemsku se zvedl zájem o operační systém Android již v době, kdy se na trhu začal prodávat první mobilní telefon s tímto systémem, tedy T-Mobile G1. Od 23. září 2008 začalo fungovat české fórum o Androidu AndroidForum , které založil Martin Vorel a kolem něhož i v současnosti existuje velká komunita s více než 91 000 členy (k 3. listopadu 2020).

O velkou oblibu se pravděpodobně zasloužila nízká pořizovací cena zařízení běžících na Androidu.[zdroj?]

V současné době se aktualitám kolem systému Android věnuje server Svetandroida.cz, který v roce 2010 založil Petr Mišák a patří mezi největší média v Česku, která se zajímají právě o operační systém Android.

Poznámky

Reference

Související články

Externí odkazy

Other Languages

Copyright