Nástroje na vývoji aplikací pro Android

Nástroje na vývoji aplikací pro Android

Oficiálně podporované vývojové prostředí pro aplikace Android je IDE Eclipse. Do něj je možné nainstalovat plugin ADT, který ulehčuje práci s projektem pro systém Android. 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.

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 Mac OS. 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í.

Instalace Android SDK

  1. Příprava prostředí
    Zkontrolujte, že váš vývojový počítač splňuje požadavky na systém.  Možná budete muset ještě nainstalaovat JDK, pokud jej ještě nemáte.
  2. Stažení startovacího balíku SDK 
    Startovací balík SDK není kompletní vývojové prostředí – zahrnuje pouze základní SDK nástroje, který však můžete použít ke stažení zbývajících komponent SDK (např. nejnovější platformy Android).Pokud jste tak ještě neučinili, stáhněte si nejnovější verzi SDK.Poznamenejte si název a umístění adresáře SDK na vašem počítači,později při nastavování ADT pluginu a při použití SDK nástrojů z příkazového řádku se budete na tento odkazovat.
  3. Instalace pluginu ADT pro Eclipse (Spušťte Eclipse, vyberte Help>Install New Software.., klikněte na tlačítko Add a do dialogu Add Repository zadejte do pole Name “ADT Plugin” a adresu
    https://dl-ssl.google.com/android/eclipse/
    a poté pokračujte podle pokynů průvodce.
  4. Přidání platforem a jiných komponent
    Posledním krokem je použití Android SDK aAVD 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.

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.
  • 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ázevPopis
add-ons/Contains add-ons to the Android SDK development environment, which let you develop against external libraries that are available on some devices.
docs/A full set of documentation in HTML format, including the Developer’s Guide, API Reference, and other information. To read the documentation, load the file offline.html in a web browser.
platform-tools/Contains platform-dependent development tools that may be updated with each platform release. The platform tools include the Android Debug Bridge (adb) as well as other tools that you don’t typically use directly. These tools are separate from the development tools in the tools/directory because these tools may be updated in order to support new features in the latest Android platform.
platforms/Contains a set of Android platform versions that you can develop applications against, each in a separate directory.
<platform>/Platform version directory, for example “android-11”. All platform version directories contain a similar set of files and subdirectory structure. Each platform directory also includes the Android library (android.jar) that is used to compile applications against the platform version.
samples/Sample code and apps that are specific to platform version.
tools/Contains the set of development and profiling tools that are platform-independent, such as the emulator, the Android SDK and AVD Manager,ddmshierarchyviewer and more. The tools in this directory may be updated at any time using the Android SDK and AVD Manager and are independent of platform releases.
SDK Readme.txtA file that explains how to perform the initial setup of your SDK, including how to launch the Android SDK and AVD Manager tool on all platforms.
SDK Manager.exeWindows SDK only. A shortcut that launches the Android SDK and AVD Manager tool, which you use to add components to your 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.

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 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 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 klinetů. 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 defaultní 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.

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í.

Zastoupení na trhu

  • V červenci 2011 Google oznámil, že je aktivováno každý den 550 000 “Androdích” zařízení.
  • V druhém čtvrtletí roku 2011 je android na 48% prodaných telefonů

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ů. 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.