Systemy operacyjne na platformach mobilnych

Podobne dokumenty
Systemy operacyjne na platformach mobilnych

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:

Systemy operacyjne na platformach mobilnych

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

Systemy operacyjne na platformach mobilnych

akademia androida Intencje oraz URI część III

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

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

Programowanie dla Androida. Ubiquitous

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

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

akademia androida Pierwsze kroki w Androidzie część I

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

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

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

Laboratorium 8 ( Android -pierwsza aplikacja)

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

WSTĘP DO ANDROIDA. Laboratorium

Android, wprowadzenie do SDK

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

Layouty. Kilka layoutów

Systemy operacyjne na platformach mobilnych

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

Tworzenie wydajnych interfejsów. Autorzy: Piotr Michałkiewicz, 2 rok AiR Daniel Maksymow, 2 rok Informatyki

Android tworzenie aplikacji mobilnych

Tworzenie aplikacji na platformie Android

Architektura interfejsu użytkownika

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

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

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

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

Android poradnik programisty

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Obsługa SMS i telefonii

Programowanie urządzeń mobilnych

Laboratorium Systemów Mobilnych. Wykład 1

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

Powiadomienia w systemie Android

Mobilne aplikacje multimedialne

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

akademia androida Składowanie danych część VI

Fragmenty są wspierane od Androida 1.6

Dokumentacja WebMaster ver 1.0

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

Programowanie aplikacji mobilnych

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

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

3.4. Opis konfiguracji layoutów.

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

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Programowanie usług działających w tle

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

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

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

GUI - projektowanie interfejsów cz. II

Diagramy klas. dr Jarosław Skaruz

DARMOWA PRZEGLĄDARKA MODELI IFC

Programowanie obiektowe

Zaawansowane programowanie UI na platformie Android

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Dodanie nowej formy do projektu polega na:

Backend Administratora

System Obsługi Zleceń

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

Nieskonfigurowana, pusta konsola MMC

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

System Gokart Timing

Tworzenie prezentacji w MS PowerPoint

Programowanie Obiektowe GUI

KATOWICE, LIPIEC 2018 WERSJA 1.0

Platforma e-learningowa

etrader Pekao Podręcznik użytkownika Jak zacząć pracę z etrader Pekao?

PRZEWODNIK PO ETRADER PEKAO ROZDZIAŁ I. JAK ZACZĄĆ PRACĘ Z ETRADER PEKAO? SPIS TREŚCI

Szkolenie Android dla początkujących

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie aplikacji na urządzenia mobilne

Platforma e-learningowa

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010

Programowanie obiektowe

Programowanie obiektowe

Dodawanie grafiki i obiektów

Kurs WWW. Paweł Rajba.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Tworzenie elementów graficznych

Warsztaty v2 Layout y i widget y. Tomasz Wachowski Kamil Snopek Jan Romaniak

Laboratorium Systemów Mobilnych. Wykład 2

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

SOP System Obsługi Parkingów

Podstawy technologii cyfrowej i komputerów

Programowanie urządzeń mobilnych. projekt 6 ( )

TWÓJ BIZNES. Nasz Obieg Dokumentów

Graphic User Interfaces pakiet Swing

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Transkrypt:

Systemy operacyjne na platformach mobilnych Wykład 2 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych

Zagadnienia wykładu Interfejs użytkownika Activity Views Resources Cykl życia aktywności Intencje 2

Aktywność (Activity) Jest podstawowym elementem aplikacji dla systemu Android Jest ściśle związana z ekranem, definiuje wygląd ekranu Bazuje na komponentach nazywanych widokami (views) Mechanizm przełączania aktywności bazuje na intencjach (intents) 3

Widoki (Views) Są obiektami, które użytkownik widzi i których używa do interakcji z aplikacją Obejmują: układy kompozycji (layouts) pola tekstowe (text elements) przyciski (buttons) obrazy (images) i wiele innych Korzystają z zasobów (resources) takich jak: style łańcuchy tekstowe obrazy 4

Widoki (Views) 5

Intencje (Intents) Zapewniają prosty mechanizm do przełączania aktywności Opisują operacje do wykonania akcja dane (URI) 6

Sposoby wywołania aktywności Poprzez class name (jawne) Dokładnie jedna aktywność może być dopasowana do intencji Aktywność musi być w tym samym projekcie, co aktywność wywołująca Intencja może przenosić dane do aktywności poprzez obiekt Bundle Poprzez URI (niejawne) Więcej niż jedna aktywność może być dopasowana do intencji Intencja może użyć class name lub URI aby określić aktywność Aktywność nie musi być w tym samym projekcie, co aktywność wywołująca Intencja może wysyłać dane do aktywności poprzez parametry URI lub obiekt Bundle Aktywność wywoływana jest metodą startactivity obiektu Context z intencją przekazaną jako argument. 7

Wywołania jawne Jawne wywołanie następuje, gdy wywołana zostaje konkretna aktywność, np. aktywność naszej aplikacji. Jawne wywołanie wykonywane jest przez zdefiniowanie parametru Class lub ComponentName. ComponentName zawiera w pełni kwalifikowaną nazwę klasy składającą się z nazwy pakietu i nazwy klasy. Intent(Context, Class)// konstruktor Intent setcomponent(componentname)// metoda Intent setclass(context, Class)// metoda Intent startactivity(newintent(this, MyActivity.class)); ComponentName component = newcomponentname( MyActivity.class.getPackage().getName(), MyActivity.class.getName()); Intent intent = newintent(); intent.setcomponent(component); startactivity(intent); Intent intent = new Intent(); intent.setclass(this, MyActivity.class); startactivity(intent); 8

Informacje w intencji Intencje oprócz wywołania aktywności, mogą także przenosić w sobie dane Dane przenoszone są w postaci obiektu klasy Bundle Bundle przypomina map<> z java posiada klucze i wartości Do intencji obiekt Bundle wstawia się metodą putextras, wyjmuje metodą getextras (najczęściej po stronie uruchomionej przez intencję aktywności) 9

Dane intencji - Bundle W aktywności wywołującej: Intent activityintent = new Intent(this, NewActivity.class); Bundle newactivityinfo = new Bundle(); newactivityinfo.put...( );// putdouble, putstring, etc. activityintent.putextras(newactivityinfo); startactivity(activityintent); W aktywności wywołanej (NewActivity): Intent intent = getintent(); Bundle info = intent.getextras(); 10

Wywołania niejawne Niejawne wywołanie aktywności następuje w momencie, gdy platforma podejmuje decyzję, którą aktywności wywołać. Np. użytkownika interesuje jedynie nawiązanie połączenia telefonicznego, nie ma znaczenia czy użytkownik ma systemową aplikację telefoniczną, czy aplikację innej firmy, która obsłuży użytkownika. Niejawne wywołanie aktywności następuje w momencie, gdy w intencji nie jest wyspecyfikowany komponent (lub klasa aktywności). Intencja musi zawierać odpowiednie informacje, na podstawie których system zdecyduje, który komponent jest najlepszy do obsługi intencji. 11

Wywołania niejawne case MENU_WEB_REVIEW:... intent = new Intent(Intent.ACTION_VIEW, Uri.parse(link)); case MENU_MAP_REVIEW:... intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + location.gettext().tostring())); case MENU_CALL_REVIEW:... String phonestring = parsephone(phone.gettext().tostring()); intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phonestring)); 12

Wywołania niejawne 13

Wyszukiwanie odbiorcy intencji W systemie Android obsługę żądań intencji oprócz Activity mogą realizować także BroadcastReceiveri Service Wymienione trzy komponenty ogłaszają swoje możliwości za pomocą elementu <intent-filter> w pliku AndroidManifest.xml <intent-filter> zawiera odpowiednie informacje, na podstawie których system zdecyduje, który komponent jest najlepszy do obsługi intencji Android przekształca każdy element <intentfilter> w obiekt IntentFilter 14

Wyszukiwanie odbiorcy intencji Po zainstalowaniu pliku.apk Android rejestruje komponenty aplikacji w tym filtry intencji Posiadając rejestr filtrów intencji Android może odwzorować każde nie-jawne żądanie intencji na właściwy, zainstalowany obiekt Activity, BroadcastReceiver i Service. Dopasowanie następuje poprzez analizę: akcji typu danych kategorii 15

Cykl życia aktywności Procesy umieszczane są na stosie. Procesy są związane z aktywnościami. Proces aktywności na pierwszym planie umieszczany jest na szczycie stosu. W momencie zmniejszania zasobów Android decyduje o tym, który proces zabić: każdy proces nie obsługujący żadnej aktywności (ani usługi ani BroadcastReceiver) jest nazywany pustym procesem i jest pierwszym do usunięcia każdy proces obsługujący aktywność działającą w tle jest następny w kolejce każdy proces obsługujący widoczną aktywność, ale niebędącą na pierwszym planie, jest następny w kolejce proces obsługujący widoczną aktywność działającą na pierwszym planie jest najważniejszy 16

Cykl życia aktywności W momencie tworzenia aktywności, przełączania na pierwszy plan, w tło i wyłączenia wywoływane są przez Androida odpowiednie metody Aktywności 17

Cykl życia aktywności 18

Layouty W systemie android układ ekranu definiowany jest za pomocą obiektów ViewGroup i LayoutParams. ViewGroup jest widokiem, który zawiera inne widoki Każdy typ ViewGroup posiada LayoutParams, które opisują sposób rozmieszczenia widoków podrzędnych (komponentów) Komponenty rysowane są na ekranie w kolejności, w jakiej znajdują się w drzewie layoutu 19

Typy layoutów AbsolutLayout pozwala określić dokładne współrzędne x i y dla poszczególnych komponentów FrameLayout wszystkie elementy są wyrównane do lewego górnego rogu (przysłaniają się) LinearLayout kolejne elementy są układane od góry do dołu (vertical) lub od lewej do prawej (horizontal) RelativeLayout pozwala określić wzajemne położenie elementów względem siebie TableLayout elementy są układane w postaci macierzy (w kilku wierszach i kolumnach) 20

Typy zasobów res/anim reprezentacja XML animacji 'ramka po ramce res/drawable.png,.png, i.jpg obrazy res/layout reprezentacja XML obiektów widoków res/values reprezentacja XML napisów, kolorów, styli, rozmiarów i tablic res/xml zdefiniowane przez użytkownika pliki XML aplikacji kompilowane do postaci binarnej res/raw pliki niekompilowane dodawane do aplikacji 21