Mastering Development Tools II.

GPS, správca balíčkov, dumpsys, správca aktivít

Playing with GPS

Ako vývojar aplikácií pre chytré zariadenia budete častokrát pracovať aj so senzormi, ktoré tieto zariadenia obsahujú. Jedným z týchto senzorov je aj GPS, pomocou ktorého je možné sledovať polohu zariadenia. V tomto kroku sa pozrieme na to, čo všetko nám Android emulátor ponúka pre prácu s GPS senzorom.

Úloha

Zistite na vašom emulátore bez použitia Google, čo sa nachádza na súradniciach 21.249061 (longitude) a 48.733411 (latitude).

Pre riešenie tejto úlohy využite rozšírené ovládanie emulátora.

Rozšírené ovládanie - Location

Úloha

Stiahnite si do počítača súbor morning.travel.gpx a importnite ho do emulátora prostredníctvom okna rozšíreného ovládania (Extended controls).

Úloha

Prehrajte tento súbor a výsledok prehrávania si overte v aplikácii Maps.

Tento súbor obsahuje postupnosť bodov, ktoré opisujú vykonanú cestu. V závislosti od hustoty bodov môžete rýchlosť prehrávania zrýchľovať a spomalovať. Samotnú prechádzku si môžete vizualizovať pomocou ľubovoľnej aplikácie, ktorá pracuje s GPS senzorom. V emulátore je nainštalovanou aplikáciou aplikácia Maps.

Spustená aplikácia Maps

Package Management

O tom, aké balíky sú v OS Android nainštalované, vie Package Manager. Ten o nainštalovaných balíkoch vie rozličné informácie. Rovnako však umožňuje získať rozličné informácie o zariadení samotnom. Na použitie Package Manager-a sa pozrieme v tomto kroku.

Úloha

Získajte zoznam nainštalovaných balíkov v zariadení.

Aj keď je Package Manager v Android SDK reprezentovaný samostatným objektom, v príkazovom riadku s ním môžeme komunikovať pomocou nástroja pm. Po jeho spustení bez parametrov sa vám zobrazí pomocník.

Úloha

Zistite zoznam vlastností (features), ktoré vaše zariadenie poskytuje.

Každé Android zariadenie poskytuje špecifické vlastnosti aj vzhľadom na to, akými senzormi je vybavené. To znamená, že ak je napr. vybavené GPS senzorom, bude obsahovať vlastnosť android.hardware.location. Ak obsahuje kameru, bude obsahovať vlastnosti ako android.hardware.camera, android.hardware.camera.autofocus, poprípade android.hardware.camera.flash, ak obsahuje aj blesk. V prípade, že budete vytvárať aplikáciu, ktorá pre svoju funkčnosť potrebuje niektorú z týchto vlastností, musíte ju vo svojej aplikácii overiť.

Úloha

Vytiahnite z emulátora inštalačný balík aplikácie Calendar

Main Building Blocks

Úloha

Z nasledujúceho odkazu si stiahnite do počítača aplikáciu Try Me

Pre stiahnutie môžete použiť napr. nástroj wget

Úloha

Nainštalujte aplikúciu Try Me na SD kartu vášho emulátora pomocou nástroja adb.

Úloha

Spustite nainštalovanú aplikáciu.

Pokiaľ sa budete pokúšať aplikáciu spustiť, veľmi neuspejete. To preto, že táto aplikácia nemá grafické rozhranie. O tom, že je však aplikácia naozaj nainštalovaná, sa môžete presvedčiť z menu Settings > Apps, odkiaľ ju môžete v prípade potreby aj odinštalovať.

Inštaláciu si môžete rovnako overiť z príkazového riadku pomocou príkazu:

$ adb shell pm list packages | grep tryme
package:sk.tuke.smart.tryme

Úloha

Spustite aktivitu MainActivity z balíka (aplikácie) sk.tuke.smart.tryme pomocou správcu aktivít (Activity Manager).

Správca aktivít je dostupný v príkazovom riadku emulátora pomocou príkazu am.

Pri špecifikovaní aktivity je potrebné uviesť aj balíček, do ktorého aktivita (teda trieda) patrí. Syntax tohto zápisu vyzerá nasledovne:

path.to.your.package/.activity

Ak ste postupovali správne, po spustení sa vám na obrazovke zariadenia zobrazí aktivita MainActivity.

Aktivita MainActivity z balíka sk.tuke.smart.tryme

Úloha

Spustite aktivitu ReceiveMe z balíka sk.tuke.smart.tryme.

Úloha

Vytvorte broadcast správu sk.tuke.smart.tryme.MSG s extra reťazcovým argumentom message a správou “Hello world”

Broadcast je správa, ktorá je odoslaná do celého systému. Každá broadcast správa je identifikovaná jednoznačným identifikátorom a môže, ale nemusí so sebou niesť extra údaje. Ak chce aplikácia odoberať správy určitého typu, musí mať vytvorený tzv. broadcast receiver so špecifikovaním typu správ, ktoré má odoberať.

am broadcast -a sk.tuke.smart.tryme.MSG --es message "hello world"

Úloha

Odinštalujte aplikáciu Try Me z emulátora.

Summary

  • adb install tryme.apk - nainštaluje balík/súbor tryme.apk z hosťovského počítača
  • adb uninstall sk.tuke.smart.tryme - odinštaluje balík sk.tuke.smart.tryme z Android-u
  • pm list packages - zobrazí zoznam nainštalovaných balíkov v Android-e
  • pm path package sk.tuke.smart.tryme - zobrazí cestu k inštalačnému balíčku sk.tuke.smart.tryme v Android-e
  • pm list features - zobrazí zoznam dostupných vlastností Android zariadenia
  • am start sk.tuke.smart.tryme/.MainActivity - spustí aktivitu s názvom MainActivity z balíčka sk.tuke.smart.tryme
  • am boradcast -a sk.tuke.smart.tryme.MSG --es message "Hello world" - pošle broadcast správu sk.tuke.smart.tryme.MSG do celého systému (prepínač -a), ktorá nesie reťazec "Hello world" dostupný pod kľúčom message

Additional Tasks

  1. Pomocou nástroja dumpsys zistite oprávnenia pre aplikáciu Camera.

  2. Pokúste sa aplikácii Camera odobrať oprávnenie android.permission.CAMERA.

  • My Tracks - aplikácia pre Android, pomocou ktorej si môžete zaznamenať svoju trasu a exportovať ju do GPX alebo KML formátu vhodných pre použitie v Android emulátori
  • Android Package Manager (pm) Cheat Sheet - ťahák pre používanie Package Manager-a
  • Trieda PackageManager - dokumentácia Android SDK ku triede PackageManager
  • dumpsys - dumpsys is a tool that runs on Android devices and provides information about system services.