Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Podobne dokumenty
akademia androida Pierwsze kroki w Androidzie część I

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

PYTANIA - Programowanie aplikacji dla technologii mobilnych

Programowanie usług działających w tle

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

SOP System Obsługi Parkingów

Android, wprowadzenie do SDK

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Programowanie dla Androida. Ubiquitous

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

Systemy operacyjne na platformach mobilnych

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Laboratorium Systemów Mobilnych. Wykład 1

WSTĘP DO ANDROIDA. Laboratorium

Szkolenie Android dla początkujących

Programowanie aplikacji mobilnych

WSTĘP DO ANDROIDA. Laboratorium 1 Systemy i aplikacje bez granic

Życie aktywności Nawigując przez aplikacje poszczególne Aktywności przechodzą pomiędzy stanami. Dla przykładu gdy aktywność uruchamia się po raz

Programowanie Urządzeń Mobilnych. Laboratorium nr 9,10

Mariusz Fraś. Instytut Informatyki. olitechnika Wrocławska. Systemy Wbudowane. Android. Dr inż. Mariusz Fraś. maf 1

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Android tworzenie aplikacji mobilnych

Wątki w Android OS. Matt Rutkowski. GynSoft sp. z o.o. matt@gynsoft.net

Programowanie urządzeń mobilnych

akademia androida Intencje oraz URI część III

Layouty. Kilka layoutów

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

AndroidManifest.xml. Plik manifestu opisuje podstawowe charakterystyki aplikacji i definiuje jej komponenty.

Programowanie dla Androida. Ubiquitous

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

Programowanie aplikacji dla Sklepu Windows w języku C#

Mobilne aplikacje multimedialne

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Android - wprowadzenie. Łukasz Przywarty

akademia androida Składowanie danych część VI

PROGRAMOWANIE MOBILNE: ANDROID. Marcin Luckner

komunikator na platformę Android wspierający protokół GG

Tworzenie aplikacji na platformie Android

Programowanie Obiektowe GUI

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Programowanie urządzeń mobilnych. projekt 6 ( )

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Systemy operacyjne na platformach mobilnych

Agenda. Activity cd Layouty Jednostki Dialogi LogCat Drugie Activity i Intents Serializacja Własne widoki Menu

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Wprowadzenie do programowania aplikacji mobilnych

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

akademia androida Sensory część V Mobile Applications Developers

Tworzenie i wykorzystanie usług

Laboratorium 9 (Więcej Aktywności, w Androidzie)

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie obiektowe zastosowanie języka Java SE

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

AndCourier. Kamil Janowski Mateusz Kowalski. Mobilna aplikacja bazodanowa wspomagająca pracę kurierską

Część I Rozpoczęcie pracy z usługami Reporting Services

Android poradnik programisty

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Fragmenty są wspierane od Androida 1.6

KARTA PRZEDMIOTU. Aplikacje mobilne i wbudowane, D1.8

Utworzenie pliku. Dowiesz się:

Podstawowe elementy GUI - zadania

Systemy operacyjne na platformach mobilnych

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Microsoft PowerPoint 2003 efektywne tworzenie i prezentacji multimedialnych

protected void onsaveinstancestate(bundle outstate); protected void onrestoreinstancestate(bundle savedinstancestate);

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Agenda. Implicit intents Wyświetlanie obrazków Menu Ikona aplikacji Praca z kolekcjami i ListView Własny widok

Programowanie w Javie

Delphi podstawy programowania. Środowisko Delphi

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Obsługa SMS i telefonii

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Multimedia JAVA. Historia

Pakiety i interfejsy. Tomasz Borzyszkowski

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Aplikacja Novell Filr 2.0 Web Szybki start

Współpraca z platformą Emp@tia. dokumentacja techniczna

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania do wydania

Połączenie aplikacji mobilnej z Facebookiem

Przechowywanie danych

Czym jest MIT App Inventor. App Inventor jest to zbiór bloków jako język programowania używany do tworzenia mobilnych aplikacji na androida.

1. Opis. 2. Wymagania sprzętowe:

Podręcznik Administratora Szkoły

Instalujemy środowisko. Hello World! Odczyt/zapis informacji do komponentów na formie. onclick()

Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda

Android i Bluetooth Low Energy. Laboratorium 4 Niestacjonarne

Systemy operacyjne na platformach mobilnych

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Lokalizacja Oprogramowania

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Transkrypt:

Programowanie aplikacji dla technologii mobilnych mgr inż. Anton Smoliński

Agenda Cykl życia aplikacji Struktura plików Plik AndroidManifest.xml Elementy aplikacji Activity Layout Intent BroadcastRecivers Service Content Providers 2

Cykl życia aplikacji 3

Cykl życia aplikacji 4

Cykl życia aplikacji Design Cel aplikacji Projekt aplikacji Wygląd aplikacji Develop Programowanie Testowanie Distribute Sprzedaż Promocja Model biznesowy 5

Cykl życia aplikacji Design Od Androida 5.0 wbudowano szablon/skórkę/motyw Material Design Udostępnia ona wystandaryzowany (i estetyczny) wygląd poszczególnych komponentów interfejsu użytkownika Korzystanie z Material Design ułatwia stosowanie się do pryncypiów projektowania interfejsów graficznych (Android design principles): Enchant Me Oczaruj mnie Simplify My Life Uprość mi życie Make Me Amazing Zrób to niesamowicie 6

Cykl życia aplikacji 3 stany działania aplikacji Uruchomiona Ekran aplikacji jest widoczny Użytkownik pracuje z daną aplikacją Zapauzowana Inna aplikacja wyskakuje na ekran ALE nasza aplikacja dalej jest widoczna (np. gdy wyskoczy komunikat, czy inne okno nie na cały ekran) Aplikacja jest funkcjonalna, nie działa tylko sprzęg z użytkownikiem Może być zakończona przez system w ekstremalnych sytuacjach Zatrzymana Aplikacja zostaje zatrzymana, użytkownik jej nie widzi Aplikacja chodzi w tle (dalej zajmuje pamięć) 7

Cykl życia aplikacji 8

Cykl życia aplikacji Określa się 3 cykle: entire lifetime visible lifetime foreground lifetime 9

Cykl życia aplikacji Współdziałanie 2 aplikacji: Które funkcje/kiedy zostają wywołane Aplikacja A oncreate() onstart() onresume() Przebieg symulacji: Aplikacja B oncreate() onstart() onresume() 1. Uruchamiamy aplikację A 2. Następnie uruchamiamy aplikację B Aplikacja A onpause() onstop() 3. Wyłączamy aplikację B Aplikacja B onpause() onstop() ondestroy() 4. Przywracamy aplikację A Aplikacja A onrestart() onstart() onresume() 10

Struktura plików 11

Struktura plików Utworzenie projektu w Android Studio 12

Struktura plików Folder aplikacji app build pliki wynikowe.apk + dane debug + testy libs zewnętrzne biblioteki src źródła aplikacji 13

Struktura plików Folder aplikacji src/main java kod aplikacji i poszczególnych jej komponentów (klas) res pliki xml + obrazki z używanymi zasobami aplikacji AndroidManifest.xml Plik opisu aplikacji 14

Struktura plików Starsza wersja AndroidStudio czy Eclipse+SDK miała nieco inną strukturę plików. src zawierało pliki java (obecnie src to folder java+res+manifest) folder gen z wartościami generowanymi (obecnie ukryte w build) bin zawierający skompilowaną aplikację i jej zasoby (obecnie w build) W nowej wersji domyślnie dodano projekty testów jednostkowych Plik R.java nie jest też widoczny z poziomu domyślnego widoku 15

Struktura plików Plik R.java plik zawierający automatycznie generowaną klasę z identyfikatorami zasobów, do których odwołuje się programista w kodzie aplikacji. Automatycznie generowana klasa R zawiera identyfikatory zasobów aplikacji z podkatalogów katalogu /res. Dla każdego rodzaju zasobu zostaje utworzona publiczna statyczna klasa wewnętrzna z modyfikatorem final. Identyfikatory zasobów (pola danych klas wewnętrznych) mają postać stałych typu int, będących identyfikatorami zasobów Dzięki temu aby odwołać się do zasobu należy: Wynaleźć zasób w klasie R Utworzyć nową klasę typu danego zasobu Przypisać klasę zasobu do klasy na której można wprowadzać zmiany 16

Struktura plików Plik R.java Dzięki niemu IDE co chwile coś kompiluje Brak odświeżania pliku R.java sprawia, że komponenty czy zasoby nie są widoczne i nie można na nich operować 17

Plik AndroidManifest.xml 18

AndroidManifest.xml Wymagany plik zawierający niezbędne dla systemu Android informacje o wytworzonej aplikacji. Zawiera nazwę pakietu Java będącą unikalnym identyfikatorem danej aplikacji w systemie. Zawiera opis komponentów aplikacji takich jak Aktywności, Usługi, Odbiorniki komunikatów i Dostawców treści oraz ich wymagania. Zawiera ustawienia zabezpieczeń (do których elementów aplikacja ma mieć dostęp). Zawiera spis zewnętrznych bibliotek używanych w aplikacji. Określa minimalny poziom Android API wymagany przez aplikację. 19

AndroidManifest.xml Elementy <manifest> i <application> są wymagane, pozostałe opcjonalne. Właściwości elementów są określane jako atrybuty, a nie jako nowe znaczniki z zawartością Kolejność elementów tego samego poziomu nie ma znaczenia (wyjątek: activity-alias) Niemal wszystkie atrybuty mają prefix android:, pomijany w dokumentacji Wszystkie atrybuty name (android:name) muszą zawierać pełną ścieżkę pakietu Jako atrybuty można wykorzystywać pliki zasobów: @[package:]type:name lub pliki motywów:?[package:]type:name 20

AndroidManifest.xml Intent filter pozwala na tworzenie domyślnych Activity Określa też zdarzenie, na które będą reagować komponenty systemu Android zapewnia kompatybilność kodu w 3 obszarach: Urządzenia, Platformy, Ekranu 21

AndroidManifest.xml Należy wykazać urządzenia/api które są używane w aplikacji Można określić atrybut required, który uniemożliwi instalację aplikacji z GooglePlay Podobnie należy określić permission aplikacji system blokuje dostęp do niektórych funkcji systemowych (sandbox dla każdej aplikacji) Istnieje podział na Normal i Dangerous persmission. http://developer.android.com/reference/android/manifest.permission.html - lista możliwych permission aplikacji. 22

Elementy aplikacji 23

Elementy aplikacji Activity (Aktywność): Aktywność reprezentuje pojedyncze okno aplikacji służące do komunikacji z użytkownikiem. Każdy ekran w aplikacji to osobna Aktywność. Aktywność nie jest tożsama z widokiem/ułożeniem elementów interfejsu graficznego za to odpowiadają Layouty (widoki). Aktywność odpowiada za reagowanie na zdarzenia i obsługę elementów interfejsu. W danym momencie może być uruchomiona tylko jedna Aktywność Aktywności są grupowane i przechowywane na stosie W skrócie Główny element aplikacji to co uruchamiamy i odpowiada za interakcję. 24

Elementy aplikacji Activity 25

Elementy aplikacji Layout (widoki): Podstawowa wiedza z inżynierii oprogramowania. Klasy odpowiadające za graficzny interfejs użytkownika. Pojedyncza aktywność może posiadać wiele Layoutów, np. dla różnych wielkości ekranów czy ich orientacji. Layout opisuje za pomocą języka XML wyświetlane elementy oraz ich parametry Prace nad Layoutem można wykonywać za pomocą Designera programowania wizualnego W skrócie Layout to to co widać na ekranie: elementy UI oraz ich położenie 26

Elementy aplikacji Layout Podstawowa wiedza z inżynierii oprogramowania. 27

Elementy aplikacji Intent (Intencja): Podstawowa wiedza z inżynierii oprogramowania. Abstrakcyjny mechanizm odpowiedzialny przede wszystkim za obsługę rozkazów wydawanych przez użytkownika (np. uruchamianie aktywności, uruchamianie usługi (z ang. service) czy nadanie komunikatu (broadcast)) Za pomocą intencji możemy wprowadzić komunikację pomiędzy aplikacjami (lub mniejszymi komponentami, jak Usługi, Aktywności itp.). Jest wykorzystywana przez system lub aplikację do powiadamiania różnych komponentów aplikacji o pojawiających się zdarzeniach. Dla aktywności lub usługi intencja określa akcję do wykonania i dane do przetworzenia. Dla odbiorników komunikatów (broadcast receivers) definiuje rozgłaszany komunikat. Najważniejszym zadaniem tego komponentu jest uruchamianie odpowiednich aplikacji/aktywności. W skrócie komunikacja wewnątrz aplikacji i uruchamianie aktywności 28

Elementy aplikacji Intent (Intencja): Podstawowa wiedza z inżynierii oprogramowania. 29

Elementy aplikacji Broadcast Receivers (Odbiorniki komunikatów): Podstawowa wiedza z inżynierii oprogramowania. Mechanizm komunikacji z systemem i innymi aplikacjami. Możliwość odbioru powiadomień (np. SMS, Stan baterii, Zdjęcia, Połączenia przychodzące) Jest to mechanizm bez interfejsu graficznego. Korzystanie wymaga jego zarejestrowania (AndroidManifest lub kod) W skrócie reagowanie na zdarzenia systemowe 30

Elementy aplikacji Broadcast Receivers (Odbiorniki komunikatów): Podstawowa wiedza z inżynierii oprogramowania. 31

Elementy aplikacji Service (Usługa): Podstawowa wiedza z inżynierii oprogramowania. Element aplikacji, który obsługuje długo działające procesy w aplikacji (np. pobieranie/wysyłanie plików przez sieć). Może istnieć samodzielnie lub być powiązany (bound). Nie zawiera elementów interfejsu graficznego. W skrócie część programu działająca w tle niezależnie do tego co widzi/robi użytkownik. 32

Elementy aplikacji Service (Usługa): Podstawowa wiedza z inżynierii oprogramowania. 33

Elementy aplikacji Content Providers (Dostawcy treści): Podstawowa wiedza z inżynierii oprogramowania. Abstrakcyjne źródła danych, zapewniające dostęp do składowanych danych (system plików, baza SQLite, sieć) oraz odczyt i zapis danych. Dzięki dostawcom treści możliwe jest współdzielenie danych pomiędzy aplikacjami. (wbudowane w system bazy SQLite zawierają m.in. Kontakty, Historię połączeń, Dane multimedialne, Ustawienia) Jest to interfejs zarządzania danymi oparty o adresy URI (które wykorzystują schemat content://) W skrócie Dane wykorzystywane w aplikacji 34

Elementy aplikacji Content Providers (Dostawcy treści): Podstawowa wiedza z inżynierii oprogramowania. 35

Koniec! mgr inż. Anton Smoliński 36