Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1
Wstęp Platforma Android jest opartym na Linuxie systemem operacyjnym przeznaczonym dla urządzeń mobilnych. Platforma Android wspiera programowanie aplikacji w języku Java z użyciem standardowych bibliotek Javy oraz bibliotek wyspecjalizowanych wchodzących w skład Android Software Development Kit (SDK). W skład narzędzi Android SDK wchodzą między innymi: Android Development Tools Plugin plugin dla tworzenia aplikacji w Eclipce IDE Android Emulator emulator urządzenia z systemem android Android Virtual Devices (AVDs) narzędzie służące do konfiguracji cech wirtualnego urządzenia dla emulatora Dalvik Debug Monitor Service (ddms) narzędzie pozwala na zarządzanie procesem uruchamianym na urządzeniu lub, przykładowo: wgląd w zawartość stosu, zabicie procesu, zrzut ekranu Android Debug Bridge (adb) narzędzie adb pozwala instalować pliki.apk na emulatorze lub urządzeniu oraz zapewnia dostęp do niego z linii poleceń. Android Asset Packaging Tool (aapt) narzędzie aapt pozwala tworzyć pliki.apk zawierające binaria i zasoby aplikacji Androida. android skrypt pozwalający na zarządzanie urządzeniami AVD, oraz umożliwiający wygenerowanie szkieletu projektu możliwego do zbudowania z narzędziem Ant. Ćwiczenie polega na utworzeniu i uruchomieniu prostych aplikacji dla platformy Android. W pierwszej części należy utworzyć i uruchomić aplikację z użyciem narzędzia android oraz narzędzia kompilacji Ant oraz emulatora. W drugiej części do tworzenia i uruchamiania aplikacji należy wykorzystać Eclipse IDE z pluginem ADT. Ostatnia część polega na przetestowaniu działania utworzonych aplikacji na rzeczywistym urządzeniu. Szkielet aplikacji na platformie Android Activity Klasą bazową dla dowolnej funkcjonalności jaką można zaimplementować w aplikacji na platformie Android jest Activity. Obiekt klasy Activity jest podstawową jednostką cyklu życia aplikacji. Z punktu widzenia programisty najważniejsze są metody, które najczęściej są przeciążane dla podklasy Activity oncreate, onpause oraz onresume. Xml Język xml jest szeroko wykorzystywany do definiowania stałych cech tworzonej aplikacji. Przykładowo jest on zastosowany do zdefiniowania wyglądu okna aplikacji (/res/layout/), wartości stałych stosowanych w programie (/res/values/), ale również do konfiguracji uprawnień oraz funkcjonalności aplikacji (AndroidManifest.xml). 2
R Klasa R jest automatycznie wygenerowaną umożliwiającą uzyskanie dostępu do elementów okna oraz stałych zdefiniowanych w plikach xml w czasie działania aplikacji (runtime). Na następnym rysunku przedstawiony został cykl życia obiektu klasy Activity. Aby przygotować i zweryfikować środowisko dla tworzenia aplikacji na platformę Android należy UWAGA: Większość potrzebnych plików znajduje się w katalogu D:\Mobilne_Android 1. Rozpakować Android SDK pod postacią D:\Mobilne_Android\android-sdk-windows. 2. Dodać ścieżkę do katalogu <SDK>/tools oraz <SDK>/platform-tools do zmiennej środowiskowej PATH. 3. Rozpakować Ant. 4. Dodać ścieżkę do <Ant>/bin do zmiennej środowiskowej PATH. 5. Ustawić ścieżkę do <Ant> w zmiennej ANT_HOME. 6. Ustawić ścieżkę do JDK (Java Development Kit) w zmiennej JAVA_HOME. Nowy Android Virtual Device (AVD) Aby utworzyć nowy AVD oraz szkielet projektu z użyciem narzędzia android należy wykorzystać następujące polecenia: android list target Wyświetla listę dostępnych typów dla urządzeń wirtualnych. android create avd --target <id> --name <nazwa> Tworzy nowy AVD. <id> - identyfikator typu wirtualnego urządzenia (np.: <nazwa> - nazwa tworzonego wirtualnego urządzenia (własna) android create project --package <nazwa pakietu> --name <nazwa projektu> -- activity <nazwa klasy activity> --target <id> --path <ścieżka> Tworzy szkielet projektu dla Androida do kompilowania z użyciem narzędzia Ant. 3
<nazwa pakietu> <nazwa projektu> <nazwa klasy activity> <id> <ścieżka> - np. lab.android.imienazwisko - nazwa projektu, np. ImieNazwisko - nazwa klasy dziedziczącej po Activity, np. ImieNazwiskoActivity - identyfikator typu wirtualnego urządzenia - miejsce tworzenia nowego projektu UWAGA: Polecenia należy wykonywać z folderów w których mamy pełne prawo zapisu np.: D:\Mobilne_Android\imie-nazwisko-testy\. UWAGA: Tworząc projekt spersonalizować go imieniem i nazwiskiem, aby nie było problemów z instalowaniem powtarzających się aplikacji na urządzeniu. Budowanie projektu z konsoli Aby zbudować i uruchomić w emulatorze utworzony szkielet aplikacji. 1. Uruchomić emulator (<SDK>/tools/emulator.exe) emulator uruchamia się długo dlatego Raz uruchomionego emulatora zaleca się nie wyłączać podczas pracy, gotowe aplikacje można zainstalować i uruchomić używając adb. emulator -avd <nazwa> Można również uruchomić emulator korzystając z narzędzia <SDK>\SDK Manager.exe 4
W katalogu z projektem zbudować aplikację: ant debug 2. Poszukać pliku z rozszerzeniem apk w podkatalogu bin projektu. 3. Zainstalować aplikację używając adb. adb install plik.apk W przypadku obecności większej liczby urządzeń lub emulatorów jako parametr adb należy podać dodatkowy parametr -s <serial number>. Uzyskanie listy urządzeń wraz z numerami seryjnymi: adb list devices 4. Poszukać w emulatorze zainstalowanej aplikacji i uruchomić ją: Przygotowanie prostego kalkulatora i uruchomienie na rzeczywistym urządzeniu. 1. Utworzyć nowy projekt Androida. 2. Podłączyć urządzenie do komputera przy użyciu kabla USB. 3. Sprawdzić czy urządzenie zostało wykryte adb devices 4. Można zainstalować plik.apk bezpośrednio na urządzeniu używając narzędzia adb adb -d install <plik>.apk Przygotowanie środowiska Eclipse Aby przygotować i/lub zweryfikować środowisko Eclipse IDE wraz z pluginem ADT. 5
UWAGA: Eclipse powinien być w folderze D:\Mobilne_Android\eclipse. 1. Rozpakować Eclipse IDE. 2. Dodać (Help > Install New Software...) pluginy Android DDMS oraz Android Development Tools. 3. Skorzystać z repozytorium pod adresem: https://dl-ssl.google.com/android/eclipse/ 4. Podać ścieżkę do Android SDK (Window > Preferences). Aplikacja Eclipse Uwożenie i uruchomienie aplikacji Android z użyciem Eclipse IDE wymaga następujących czynności: 1. Utworzyć aplikację Android Project (File > New > Other). 6
2. Utworzyć konfigurację debugowania. 3. Kliknąć przycisk Debug. 4. Ewentualnie jeśli mamy więcej niż jedno podłączone urządzenie / emulator wybrać na jakim ma zostać przeprowadzona instalacja i uruchomienie. Modyfikacja interfejsu użytkownika i zachowania aplikacji Modyfikacja aplikacji z użyciem Eclipse IDE polegająca na dodaniu przycisku. 7
1. Do standardowego, niemal pustego, wyglądu okna dodać przycisk. a. W pliku res/layout/main.xml można wprowadzić następującą treść (plik ten jest metaopisem wyglądu okna aplikacji i odwołuje się do niego funkcja setcontentview(r.layout.main);) Należy zwrócić uwagę na identyfikator dodany do obiektu TextView oraz Button dzięki niemu będzie możliwe uzyskanie programistycznego dostępu do tego obiektu w trakcie działania aplikacji. 2. Zmodyfikować właściwe źródło dodając prostą obsługę przycisku Button01. a. W tym celu należy przy użyciu metody findviewbyid(r.id.button01); uzyskać referencję do przycisku, a następnie zarejestrować obiekt OnClickListener używając metody Button.setOnClickListener(...). b. Przykładowa zawartość metody oncreate zapewniająca obsługę przycisku znajduje się na poniższym listingu: Zadania na zajęcia 1 Zadanie 1. Przygotować korzystając z narzędzi konsoli nowy AVD, następnie nowy projekt, zbudować projekt korzystając z konsoli. Zadanie 2. Zainstalować powstały plik apk w urządzeniu mobilnym. Zadania na zajęcia 2 8
Zadanie 1. Przygotować i uruchomić środowisko Eclipse. Zadanie 2. Uruchomić aplikację Hello World. Zadanie 3. Zbudować prosty kalkulator realizujący 4 podstawowe działania (można skorzystać z kontrolek Edit zamiast przycisków z cyferkami). UWAGA: Modyfikacja pliku z opisem interfejsu może być przeprowadzona z użyciem prostego WYSIWYGOWEGO edytora. 9