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



Podobne dokumenty
Programowanie usług działających w tle

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

Android, wprowadzenie do SDK

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

Programowanie aplikacji mobilnych

Android poradnik programisty

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Systemy operacyjne na platformach mobilnych

Android tworzenie aplikacji mobilnych

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:

akademia androida Intencje oraz URI część III

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

Systemy operacyjne na platformach mobilnych

Szkolenie Android dla początkujących

Tworzenie aplikacji na platformie Android

Intencje nadawcze. Aktywności mogą rozsyłać komunikaty do wszystkich zainstalowanych aplikacji

Programowanie dla Androida. Ubiquitous

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

Programowanie dla Androida. Ubiquitous

Przechowywanie danych

Systemy operacyjne na platformach mobilnych

Poczta elektroniczna na urządzeniu mobilnym - Outlook

Google Android. Opracował Maciej Ciurlik

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

SOP System Obsługi Parkingów

Atrybuty SMS. Nazwa Twojej firmy lub produktu w SMS-ie podniesie prestiż Twojej wiadomości

akademia androida Pierwsze kroki w Androidzie część I

Programowanie aplikacji dla Sklepu Windows w języku C#

WIĘCEJ NIŻ TELEFON! CZĘŚĆ PIERWSZA - WPROWADZENIE

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

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Podręcznik instalacji i konfiguracji aplikacji 7 Office Ship Control dla Microsoft Office 2007 i Siódemka S.A. Warszawa, dnia r.

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

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

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

MagicInfo Express instrukcja obsługi

Autoryzacja zleceń z użyciem aplikacji Java Web Start "Pocztowy24Podpis"

Dźwięk w IOS. Wykład 8. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.

Obsługa SMS i telefonii

Klient poczty elektronicznej - Thunderbird

Rejestr HKEY_LOCAL_MACHINE

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

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

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

INSTRUKCJA OBSŁUGI APLIKACJI WEBFAX DLA

Instrukcja odnawiania certyfikatów. przez stronę elektronicznypodpis.pl

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Programowanie urządzeń mobilnych. projekt 6 ( )

Zegarek należy ładować co najmniej 2 godziny przed pierwszym użyciem.

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Instrukcja odnawiania certyfikatów. przez stronê internetow¹ Podrêcznik u ytkownika

Platforma e-learningowa

elektroniczna Platforma Usług Administracji Publicznej

akademia androida Sensory część V Mobile Applications Developers

Instrukcja powiązania urządzenia mobilnego oraz autoryzacja operacji w bankowości elektronicznej Banku Spółdzielczego w Bieczu (Asseco CBP)

Symfonia Mała Księgowość 2013 Specyfikacja zmian

Język UML w modelowaniu systemów informatycznych

INSTRUKCJA POWIĄZANIA BANKOWOŚCI INTERNETOWEJ Z APLIKACJĄ MOBILNĄ mtoken ASSECO MAA KLIENCI INDYWIDUALNI

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

ROZDZIAŁ 1. PRZEGLĄD BRAMOFONU SAFE...

PROGRAMOWANIE MOBILNE: ANDROID. Marcin Luckner

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Projekt Hurtownia, realizacja rejestracji dostaw produktów

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

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

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

Sterbox e-pilot Dla iphone/ipad/ ANDROID

Instrukcja odnawiania certyfikatów. przez stronê internetow¹ Podrêcznik u ytkownika

Bank Spółdzielczy w Nidzicy

Prezentacja portalu INTEGRACJA APLIKACJI E-COMMERCE AUTOMATYZACJA PROCESÓW

Voicer. SPIKON Aplikacja Voicer V100

Sesje i logowanie. 1. Wprowadzenie

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.

Co to są Foldery publiczne (Public folders) i jak z nich korzystać?

Instrukcja odnawiania certyfikatów. przez stronę elektronicznypodpis.pl

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

INSTRUKCJA POWIĄZANIA BANKOWOŚCI INTERNETOWEJ Z APLIKACJĄ MOBILNĄ mtoken ASSECO MAA KLIENCI KORPORACYJNI

NAZWA PRODUKTU: Ukryta Mini Kamera IP WiFi FullHD Android ios Detekcja Ruchu S163

Projekt Hurtownia, realizacja rejestracji dostaw produktów

ABC systemu Windows 2016 PL / Danuta Mendrala, Marcin Szeliga. Gliwice, cop Spis treści

Laboratorium Systemów Mobilnych. Wykład 1

Prezentacja portalu INTEGRACJA APLIKACJI E-COMMERCE AUTOMATYZACJA PROCESÓW

Tomasz Grześ. Systemy zarządzania treścią

Ulotka skrócona Moduł Analizy BI. Wersja:

Komunikacja i wymiana danych

Stworzenie programu KSIĄŻKA ADRESOWA posiadającego funkcjonalności przechowywania danych o osobach dodanych przez użytkownika.

ActiveXperts SMS Messaging Server

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

7 Office Ship Control dla Microsoft Outlook

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

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

Podręcznik użytkownika

Przewodnik Szybki start

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

INSTRUKCJA OBSŁUGI URZĄDZEŃ ANDROID BOX MINIX

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Delphi podstawy programowania. Środowisko Delphi

1 Warta Mobile Manual

Transkrypt:

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

Aplikacje w systemie Android Aplikacje tworzone są w języku Java: Skompilowane pliki programów ( dex ) wraz z plikami danych umieszczane w pliku apk (Android Package), który można przesłać do urządzenia w celu instalacji. Aplikacje uruchamiane są we własnym środowisku: Domyślnie każda aplikacja jest oddzielnym użytkownikiem (otrzymuje unikalny UID) od systemu. System ustawia uprawnienia do wszystkich plików aplikacji, aby wyłącznie aplikacja miała do nich dostęp. Każda aplikacja jest uruchamiana we własnej maszynie wirtualnej. Domyślnie każda aplikacja jest uruchamiana w oddzielnym procesie Linuksowym. 2

Dzielenie zasobów Istnieje możliwość współdzielenia danych pomiędzy aplikacjami, jak również do korzystania przez aplikację z zasobów systemowych: Dwie aplikacje mogą współdzielić pliki, gdy posiadają nadany ten sam Linuksowy identyfikator użytkownika (UID). Dzięki dzieleniu tego samego UID można również spowodować, aby obie aplikacje były uruchamiane w tym samym procesie i dzieliły jedną maszynę wirtualną. Aplikacja może żądać zezwolenia do uzyskania dostępu do zasobów urządzenia (kontakty, SMS-y, pamięć masowa, kamera, interfejsu Bluetooth itp.) Zezwolenie musi zostać udzielone przez użytkownika w trakcie instalacji. 3

Komponenty aplikacji Komponenty stanowią składowe aplikacji. Każdy komponent stanowi punkt, poprzez który system steruje aplikacją. Pozwalają na określenie ogólnego zachowania aplikacji. Nie wszystkie komponenty są właściwymi punktami wejścia i niektóre komponenty powiązane są ze sobą (są od siebie zależne). Istnieją cztery rodzaje komponentów aplikacji. Każdy z nich służy do konkretnego celu i ma wyznaczony czas życia, który określa jak komponent jest tworzony i niszczony. Komponentami są: Activities (czynności), Services (usługi), Content providers (dostawcy zawartości), Broadcast receivers (odbiorcy rozgłoszeń). 4

Activity (czynność) Activity (czynność) reprezentuje pojedynczy ekran zawierający interfejs użytkownika. Przykłady (na podstawie aplikacji klienta poczty): czynność pokazująca listę nowych wiadomości e-mail, czynność pozwalająca na tworzenie wiadomości e-mail, czynność przedstawiająca treść odczytanej wiadomości. Każda z czynności jest niezależna w działaniu, chociaż tworzą spójny interfejs użytkownika. Inne aplikacje (w miarę posiadanych uprawnień) może uruchomić czynność innej aplikacji (np. aplikacja kamery może po wykonaniu zdjęcia uruchomić czynność aplikacji klienta poczty, aby wysłać zrobione zdjęcie). Czynność jest implementowana jako podklasa klasy Activity. 5

Service (usługa) Service (usługa) jest komponentem pracującym w tle, którego zadaniem jest wykonywanie długoterminowych operacji lub operacji dla zdalnych procesów. Przykłady: odtwarzanie muzyki w tle (użytkownik może w tym czasie pracować z inną aplikacją), pobieranie danych w tle (dane mogą być pobierane bez blokowania interakcji użytkownika z aplikacją). Usługa nie zapewnia interfejsu użytkownika. Inne komponenty (np. Activity) mogą uruchamiać usługi (startservice) lub wiązać się z nimi (bindservice). Usługa uruchomiona pracuje bez końca, powiązana kończy się, gdy znikną wszystkie powiązania. Usługa jest implementowana jako podklasa klasy Service. 6

Content provider (dostawca zawartości) Content provider (dostawca zawartości) zarządza zbiorami danych aplikacji. Dane mogą być przechowywane w plikach (systemie plików), bazie danych SQLite, w sieci web lub innym miejscu dostępnym dla aplikacji. Dzięki dostawcy inne aplikacje mogą uzyskiwać dane lub je modyfikować (jeżeli dostawca im na to pozwoli). Na przykład książka adresowa jest dostępna przez dostawcę zawartości. Aplikacje posiadające uprawnienia mogą odpytywać dostawcę i uzyskiwać informacje o wpisach w książce. Dostawca zawartości nie musi być publiczny i można go wykorzystywać do zarządzania danymi prywatnymi. Dostawca zawartości jest implementowany jako podklasa klasy ContentProvider. 7

Broadcast receiver (odbiorca rozgłoszeń) Broadcast receiver (odbiorca rozgłoszeń) służy do odbierania komunikatów rozgłoszeniowych. Źródłem komunikatów rozgłoszeniowych może być system (np. wyłączenie ekranu, niski poziom naładowania baterii) lub aplikacja (np. pobranie danych z sieci). Odbiorca rozgłoszeń nie wyświetla interfejsu użytkownika, może jednak tworzyć powiadomienia na pasku stanu. Odbiorca rozgłoszeń jest implementowany jako podklasa klasy BroadcastReceiver. 8

Uruchamianie komponentów Trzy typy komponentów (czynności, usługi i odbiorcy rozgłoszeń) tworzone są za pomocą asynchronicznego komunikatu nazywanego intencją (intent). Uruchomienie komponentów poszczególnych typów następuje poprzez: Czynność za pomocą startactivity() lub startactivityforresult(), Usługa za pomocą startservice() (lub jeżeli chcemy powiązać się z usługą za pomocą bindservice()), Rozgłoszenie za pomocą sendbroadcast(), sendorderedbroadcast() lub sendstickybroadcast(), Dostawca zawartości można go odpytywać za pomocą metody query() na obiekcie ContentResolver. W każdym przypadku konieczne jest utworzenie intencji (obiektu klasy Intent), która będzie zawierała dane przekazywane uruchamianemu komponentowi. 9

Intent (intencja) Intencja wiąże jeden komponent z innym niezależnie czy drugi komponent należy do uruchamiającej aplikacji, czy innej. Intencja jest obiektem klasy Intent, która określa komunikaty niezbędne do uruchomienia komponentu. Intencja opisuje następujące cechy: akcja (action) ogólna akcja, która ma być wykonana, np. ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, itd., dane (data) dane, które mają być przekazane komponentowi, określające np. osobę z książki adresowej, kategoria (category) dodatkowe informacje, typ (type) typ MIME danych, komponent (component) jawne określenie komponentu (domyślnie system sam określa na podstawie danych), dodatki (extras) dodatkowe elementy zapisane w obiekcie klasy Bundle. 10

Manifest Plik AndroidManifest.xml zawiera informacje o aplikacji, jak: definicje komponentów, które mogą być tworzone przez system, pozwolenia, jakie mają być uzyskane od użytkownika (np. dostęp do kontaktów, Internetu itp.), deklaracje minimalnego poziomu API wymaganego przez aplikację, deklaracje zasobów sprzętowych i programowych wymaganych przez aplikację, biblioteki, które mają być dołączone (poza bibliotekami Android API), np. biblioteka Google Maps. 11

Dziękuję za uwagę :) 12