Informace o stažení a platformě Android SDK
Nástroje pro vývoj aplikací pro platformu Android jsou obsaženy v Software Development Kitu (SDK), který je dostupný pro všechny hlavní platformy operačních systémů GNU/Linux, Windows i Mac OS. Samotný překlad zařídí balík Android SDK. V případě Android Studia se SDK nainstaluje spolu s vývojovým prostředím, nemusíme se tedy o nic starat. U jiných vývojových prostředí je často třeba SDK doinstalovat ručně. Pro překlad je třeba zvolit, pro jakou cílovou verzi Androidu chceme aplikaci přeložit. Musíme také zvolit platformu (ARM, Intel,…). Tyto volby provedeme v nástroji SDK Manager, ve vývojovém prostředí (IDE).
Instalace Android SDK
K dispozici jsou instalační balíčky pro tři nejběžnější operační systémy (Windows, Mac OS X a GNU/Linux). My budeme používat prostředí operačního systému Windows. Zkontrolujte, že váš vývojový počítač splňuje požadavky na systém, a poté pokračujte podle pokynů průvodce.
Příprava prostředí
Android SDK se stáhne a nainstaluje společně s Android Studiem, můžeme tedy pokračovat volbou cílové platformy a instalací odpovídajících balíčků. Pokud budeme spouštět aplikace pouze v mobilu, nemusíme instalovat žádné obrazy systému (systém images) a ušetříme tak až několik GB místa na disku.
Spustíme Android Studio a na úvodní obrazovce zvolíme Configure → SDK Manager. Z nabídky zvolíme jednu z nabízených cílových platforem a ponecháme zatrženy i Android Tools a Android Platform Tools. Počítejte s tím, že instalace bude trvat dlouho. Probíhá stažení velikého množství dat (obrazy zvoleného systému pro zvolené platformy).
Přidání platforem a jiných komponent
Posledním krokem je použití Android SDK a AVD Manager (nástroje obsaženého ve startovacím balíku SDK) pro stažení základních komponent do vývojového prostředí. SDK používá modulární konstrukci, která odděluje hlavní části SDK - verze platformy Android, doplňky, nástroje, příklady a dokumentaci, do samostatně instalovatelných komponent. SDK startovací balík, který jste si již stáhli, obsahuje pouze jedinou komponentu: nejnovější verzi SDK Tools. Chcete-li vyvíjet aplikace pro Android, musíte také stáhnout alespoň jednu platformu Android a související nástroje pro platformu. Android SDK a AVD Manager můžete spustit jedním z následujících způsobů:
- V IDE Eclipse zvolte Windows > Android SDK a AVD Manager.
- V operačním systému Windows poklepejte na soubor SDKManager.exe v kořenovém adresáři Android SDK.
Konfigurace SDK
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 platformy - 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. Ovladač najdete na stránkách výrobce telefonu.
- 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.
Kompletní obsah adresáře SDK s nainstalovanými komponentami
| Název | Popis |
|---|---|
| add-ons/ | Obsahuje doplňky pro vývojové prostředí Android SDK, které vám umožňují vyvíjet pro externí knihovny dostupné na některých zařízeních. |
| docs/ | Kompletní sada dokumentace ve formátu HTML, včetně příručky pro vývojáře, API referencí a dalších informací. |
| platform-tools/ | Obsahuje vývojové nástroje závislé na platformě, které mohou být aktualizovány s každým vydáním platformy. Tyto nástroje jsou oddělené od vývojových nástrojů v adresáři tools/, protože mohou být aktualizovány pro podporu nových funkcí v nejnovější platformě Android. Zahrnují Android Debug Bridge (adb). |
| platforms/ | Obsahuje sadu verzí platformy Android, pro které můžete vyvíjet aplikace, každou v samostatném adresáři. Každý adresář platformy obsahuje také Android knihovnu (android.jar), která se používá ke kompilaci aplikací pro danou verzi platformy. |
| samples/ | Vzorový kód a aplikace, které jsou specifické pro verzi platformy. |
| tools/ | Obsahuje sadu vývojových a profilovacích nástrojů, které jsou nezávislé na platformě, jako je emulátor, Android SDK a AVD Manager, ddms, hierarchyviewer a další. |
| SDK Readme.txt | Soubor, který vysvětluje, jak provést počáteční nastavení SDK, včetně spuštění nástroje Android SDK a AVD Manager na všech platformách. |
| SDK Manager.exe | Pouze pro Windows SDK. Zástupce, který spouští nástroj Android SDK a AVD Manager, který se používá k přidávání komponent do SDK. |
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.
Pokud byste si chtěli vyzkoušet Android 5.0 Lollipop na zařízení s vlastními parametry, není to problém. Do pole AVD Name zadejte jeho název, zvolte typ zařízení v nabídce Device (na výběr je například Galaxy Nexus, Nexus 4, Nexus 5, Nexus 6, Nexus 7, Nexus 9 a Nexus 10, případně další referenční zařízení) a vyberte jako operační systém Android 5.0.1 v sekci Target. Proveďte ostatní nastavení a klikněte na tlačítko OK. S čím je nutné počítat? Například s tím, že součástí takto virtualizovaného systému není Obchod Play. Pokud tedy budete chtít instalovat nějaké aplikace, budete si je muset opatřit jinou cestou.
Základní části aplikace Android
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 receiver 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 aktivit, 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 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 aktivitá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 activity 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 aktivitami. 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 defaultní aplikaci pro jejich zobrazování.
Broadcast receiver
Broadcast receiver 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 receiveru 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.
Android Market a instalace aplikací obecně
Aplikace do zařízení s operačním systémem Android jsou primárně dostupné přes tzv. Android Market, což je služba určená pro stahovaní aplikací a her, kterou provozuje přímo Google. Byla dostupná již s uvedením prvního mobilního telefonu a v současné době (květen 2011) je na ní 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í.
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, proto se těmto postupům říká rooting). 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 k zařízení.
Bezpečnost a firemní nasazení
Podle informací webu Gizmodo nasazení přístrojů s Androidem ve firmách postupně zpomaluje. 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 % telefonů 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.
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 citlivými informacemi.
Licence
Android je zcela otevřený systém: 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. 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ů.
Android Software Development Kit je licencován v souladu s licenční smlouvou. Abyste mohli SDK používat, musíte nejprve souhlasit s licenční smlouvou. Google nebo třetí strany vlastní veškerá zákonná práva, nároky a zájmy v SDK, včetně všech práv duševního vlastnictví, která v SDK existují. Nesmíte používat toto SDK k vývoji aplikací pro jiné platformy (včetně nekompatibilních implementací Androidu) nebo k vývoji jiného SDK. Nesmíte používat SDK k žádnému účelu, který není výslovně povolen licenční smlouvou.
Souhlasíte s tím, že forma a povaha SDK, které Google poskytuje, se může změnit bez předchozího upozornění a že budoucí verze SDK mohou být nekompatibilní s aplikacemi vyvinutými na předchozích verzích SDK.
Pokud používáte SDK k vývoji aplikací pro širokou veřejnost, musíte chránit soukromí a zákonná práva těchto uživatelů. Pokud vám uživatelé poskytnou uživatelská jména, hesla nebo jiné přihlašovací informace či osobní údaje, musíte uživatele upozornit, že informace budou k dispozici vaší aplikaci, a musíte těmto uživatelům poskytnout právně odpovídající oznámení o ochraně soukromí a ochranu. Pokud vaše aplikace ukládá osobní nebo citlivé informace poskytnuté uživateli, musí tak činit bezpečně.
Pro neustálé inovace a zlepšování SDK může Google shromažďovat určité statistiky používání softwaru, včetně, ale nikoli výhradně, jedinečného identifikátoru, přidružené IP adresy, čísla verze softwaru a informací o tom, jaké nástroje a/nebo služby v SDK jsou používány a jak jsou používány. Před shromažďováním těchto informací vás SDK upozorní a požádá o váš souhlas.
Pokud používáte SDK ke spouštění aplikací vyvinutých třetí stranou nebo které přistupují k datům, obsahu nebo zdrojům poskytovaným třetí stranou, souhlasíte s tím, že Google nenese odpovědnost za tyto aplikace, data, obsah nebo zdroje. Měli byste si být vědomi, že data, obsah a zdroje prezentované vám prostřednictvím takové aplikace třetí strany mohou být chráněny právy duševního vlastnictví, které vlastní poskytovatelé (nebo jiné osoby či společnosti jejich jménem). Berete na vědomí, že vaše používání takových aplikací, dat, obsahu nebo zdrojů třetích stran může podléhat samostatným podmínkám mezi vámi a příslušnou třetí stranou.
Pokud používáte jakékoli API k získávání dat od společnosti Google, berete na vědomí, že data mohou být chráněna právy duševního vlastnictví, která vlastní společnost Google nebo strany, které data poskytují (nebo jiné osoby či společnosti jejich jménem). Vaše používání jakéhokoli takového API může podléhat dalším podmínkám služby. Pokud používáte jakékoli API k získání uživatelských dat od společnosti Google, berete na vědomí a souhlasíte s tím, že budete získávat data pouze s výslovným souhlasem uživatele a pouze tehdy a pro omezené účely, pro které vám uživatel k tomu udělil svolení.
tags: #stahnete #si #sdk #platform #informace

