Programowanie aplikacji mobilnych

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

GUI - projektowanie interfejsów

Programowanie aplikacji mobilnych

Laboratorium Systemów Mobilnych. Wykład 1

Android - wprowadzenie. Łukasz Przywarty

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

GUI - projektowanie interfejsów

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

Szkolenie Android dla początkujących

RESPONSYWNE INTERFEJSY. Klasy urządzeń klienckich Responsywne style CSS. Waldemar Korłub

Systemy operacyjne na platformach mobilnych 3 Wstęp do systemu Android

Android tworzenie aplikacji mobilnych

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

GUI - projektowanie interfejsów

RESPONSYWNE INTERFEJSY. Klasy urządzeń klienckich Responsywne style CSS. Waldemar Korłub

Wprowadzenie do systemu Android

Technologie internetowe w programowaniu.

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

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

Systemy operacyjne na platformach mobilnych

Tworzenie aplikacji na platformie Android

Google Android. Opracował Maciej Ciurlik

Android poradnik programisty

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

Programowanie dla Androida. Ubiquitous

Android, wprowadzenie do SDK

Czym jest Android Architektura systemu Cechy platformy Android

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 Service, BroadcastReceiver, ContentProvider część IV

Wprowadzenie do systemu Android

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

MagicInfo Express instrukcja obsługi

Systemy operacyjne na platformach mobilnych

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

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

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

Programowanie aplikacji mobilnych

Platforma e-learningowa

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.

Programowanie usług działających w tle

Instrukcja obsługi platformy PROMEDIO Transmisje. wersja dla ucznia

Programowanie aplikacji mobilnych

akademia androida Pierwsze kroki w Androidzie część I

Kraków, ver

Poczta elektroniczna na urządzeniu mobilnym - Outlook

SOP System Obsługi Parkingów

Programowanie aplikacji dla Sklepu Windows w języku C#

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

INSTRUKCJA UŻYTKOWNIKA

INSTRUKCJA OBSŁUGI wersja 1.0.2

Struktury systemów operacyjnych

Wprowadzenie do programowania aplikacji mobilnych

GUI - projektowanie interfejsów cz. II

Podstawy technologii cyfrowej i komputerów

Podstawy programowania. Wprowadzenie

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

Specyfikacja techniczna form reklamowych na urządzenia mobilne

1. Przypisy, indeks i spisy.

Konspekt pracy inżynierskiej

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

Instrukcja obsługi platformy PROMEDIO Transmisje. wersja dla nauczyciela

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

GUI - projektowanie interfejsów cz. II

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

Instrukcja obsługi platformy

Programowanie obiektowe

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Systemy operacyjne na platformach mobilnych

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

Przewodnik dla użytkownika. Instrukcja korzystania z aplikacji mobilnej mtoken Asseco MAA

Przewodnik połączenia (dla aparatu COOLPIX)

ŻYJE SIĘ RAZ. Żyje się tylko raz, więc zadbaj o stylowe życie. Strona 2 z 7

Layouty. Kilka layoutów

Mobilne aplikacje multimedialne

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

Wyświetlanie publikacji w formacie DjVu. Wyświetlanie publikacji w Bałtyckiej Bibliotece Cyfrowej można realizować na 3 sposoby:

Programowanie dla Androida. Ubiquitous

INSTRUKCJA OBSŁUGI

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

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Podstawy Windows Phone 7.5

Instrukcja instalacji i obsługi oprogramowania OPTIVA Mobile Viewer 2

INSTRUKCJA KORZYSTANIA Z APLIKACJI

Nowy sposób autoryzacji przelewów w Usłudze Bankowości Elektronicznej

Laboratorium Programowanie urządzeń mobilnych

Instrukcja obsługi notowań koszykowych w M@klerPlus

Instrukcja obsługi platformy

SMARTWATCH ZGPAX S99

Instrukcja korzystania z aplikacji mobilnej mtoken Asseco MAA

1) Naciśnij i przytrzymaj przez 2 sekundy ikonę z menu głównego, następnie naciśnij Potwierdź.

NAZWA PRODUKTU: Ukryta Kamera Podsłuch w Ładowarce FullHD WiFi USB MicroSD S160 Cechy produktu

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

GSMONLINE.PL. Nokia Lumia pierwszy tablet Nokii Nokia zaprezentowała dziś pierwszy tablet - Nokia Lumia 2520.

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

Lokalizacja Oprogramowania

Tworzenie prezentacji w MS PowerPoint

Tworzenie pliku źródłowego w aplikacji POLTAX2B.

Transkrypt:

Katedra Inżynierii Wiedzy Wykład 1

- laborki Ocena ustalana na podstawie aktywności indywidualnej oraz projektów realizowanych w ramach ćwiczeń. - ocena W ramach ćwiczeń realizowany będzie jeden, lub dwa projekty - będą one podstawą oceny uzyskanej z ćwiczeń. Dodatkowy mniejszy projekt (z naciskiem na aspekt teoretyczny) będzie podstawą zaliczenia wykładu.

Tematyka zajęć Wprowadzenie do aplikacji mobilnych i platformy Android; Program a wersje systemu Android; Środowisko Android Studio; Wygląd aplikacji i podstawy GUI; Wysyłanie wiadomości SMS; Użycie aparatu fotograficznego; Odtwarzanie dźwięku; Odbiór sygnału GPS.

Rysunek: Producenci na rynku. Źródło: opensignal.com/reports/

Rysunek: Urządzenia na rynku. Źródło: opensignal.com/reports/

Rysunek: Wielkość ekranu dostępnych urządzeń. Źródło: opensignal.com/reports/

Rysunek: Wersje systemu. Źródło: https://developer.android.com

Rysunek: Wielkość ekranu. Źródło: https://developer.android.com

Gdzie możemy zarobić na aplikacji? Google Play (koszt wgrania 25 $) - łatwa instalacja, dużo potencjalnych odbiorców; Amazaon App Store (koszt 100 $); SlideMe - za darmo; GetJar - za darmo (w przypadku dwóch ostatnich społeczność, a co za tym idzie liczba pobrań jest mniejsza). Plusem jest mniejsza konkurencja niż w przypadku np. Google Play.

Tworzenie aplikacji dostosowanie środowiska i stworzenie projektu; tworzenie kodu i dodawanie elementów (assety, biblioteki); przełączenie telefonu w tryb programisty; podłączenie telefonu lub emulacja urządzenia; iteracyjnie: uruchomienie, debugowanie i testowanie; przygotowanie aplikacji i publikacja w sklepie (opcjonalnie).

Android API API - Application Programming Interface - kod Java (biblioteki) umożliwiający obsługę dodatkowych elementów takich jak GPS, czy np. akcelerometr, albo: maszyna wirtualna Dalvik; wbudowana przeglądarka bazująca na WebKit; biblioteki umożliwiające wykorzystanie grafiki 2D (własna biblioteka platformy) oraz 3D w oparciu o OpenGL ES 1.0; baza danych SQLite.

Możliwości Android Android różne formaty multimediów (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF); technologie komunikacyjne: GSM, Bluetooth, EDGE, 3G i WiFi; aparat fotograficzny,kamera, kompas, ekran dotykowy, GPS i akcelerometr. Nowy projekt; Dodatkowe elementy - Android API; Android application package (APK) - czyli paczka spakowanych plików (od kodu, po resources takie jak grafika) - kod DEX; APK przekazywane jest do DVM - Dalvik Virtual Machine (wykonanie kodu DEX); DVM to oprogramowanie uruchomione na specjalnej wersji Linux.

Rysunek: Podstawowe komponenty system Android. Źródło: https://nodeclipse.org/

Bardziej szczegółowo Android Kernel = Linux kernel; warstwa abstrakcji sprzętowej (HAL); zarządzanie pamięcią, siecią, zasilaniem, procesami; interfejs HAL - lista sensorów, uruchomienie sensora, częstotliwość próbkowania sensora; czym są sensory? - wirtualne urządzenia dostarczające dane z fizycznych elementów układu: akceleromter, żyroskop, barometr, oświetlenie.

Bardziej szczegółowo - biblioteki natywne język C/C++; silnik przeglądarki internetowej (Webkit); przechowywanie danych (SQLite) - baza danych dostarczana domyślnie z systemem Android; kodeki (Media Framework).

Biblioteki natywne - mechanizmy SQLite SharedPreferences - pary klucz - wartość (np. przechowywanie ustawień); pliki - brak obsługi plików (przechowywanie na karcie pamięci); baza danych - duże ilości uporządkowanych danych.

Rysunek: Struktura projektu

Aplikacje Android brak pojedynczego punktu wejścia (brak funkcji main); aktywność (activity) prezentuje element interfejsu użytkownika (pojedyncze okno); usługi (services) uruchamiane są w tle, najczęściej na nieokreślony z góry okres czasu; odbiorcy transmisji (broadcast receivers) - to komponenty odpowiedzialne za odbiór i reagowanie na komunikaty; aktywności, usługi i odbiorcy transmisji aktywowane są za pomocą asynchronicznych komunikatów zwanych intencjami (intents); intencja jest to obiekt, który przechowuje treść wiadomości. AndroidManifest.xml - główny element, który pozwala Androidowi uruchomić aplikację.

Activity - czynność, czyli pojedynczy ekran czynnosć pokazująca listę wiadomości; czynność umożliwiająca przygotowanie nowej wiadomości; inne aplikacje mogą uruchomić (w ramach swoich uprawnień inne elementy), np. zrobienie zdjęcia powoduje wysłanie maila itp.

Service - usługa odtwarzanie muzyki w tle; pobieranie danych w tle - bez blokowania interakcji użytkownika z aplikacją; usługa nie zapewnie interfejsu użytkownika; inne komponenty (czynności) mogą uruchamiać usługi.

Dostawca zawartości - Content Provider zarządzanie zbiorami danych aplikacji; dzięki dostawcy inne aplikacje mogą uzyskiwać dane lub je modyfikować; dostawca zawartości nie musi być publiczny i można go wykorzystywać do zarządzania danymi prywatnymi. 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), lub aplikacja (pobranie danych); odbiorca rozgłoszeń nie wyświetla interfejsu użytkownika, ale może tworzyć powiadomienia; dostawca zawartości nie musi być publiczny i można go wykorzystywać do zarządzania danymi prywatnymi.

Android Runtime ograniczone zasoby procesora, pamięci itp.; Dalvik - własna implementacja Java Virtual Machine; Kilka różnic pomiędzy Dalvik a JVM Dalvik operuje na plikach DEX; Dalvik to register-based virtual machine (w odróżnieniu od stack-based virtual machine JVM. W drugim przypadku operacje realizowane są z wykorzystaniem stosu - komendy PUSH oraz POP; natomiast w pierwszym przypadku bazujemy na rejestrach); inny zestaw bibliotek niż w przypadku JDK.

Application Framework zarządzanie cyklem życia aplikacji (o tym za chwilę); zarządzanie GUI; zarządzanie udostępnianiem danych pomiędzy aplikacjami (kiedy chcemy, aby złożone dane lub pliki były dostępne dla innych aplikacji; kiedy chcemy udostępnić możliwość kopiowania tych elementów).

Android - czas życia aplikacji stworzenie (kliknięcie ikony aplikacji); uruchomienie (zaraz po stworzeniu); wznowienie (aplikacja zaraz po uruchomieniu jest wznawiana); działanie; pauza; zatrzymanie; zniszczenie. Każda aktywność ma swój własny cykl.

Rysunek: Aplikacja i widgety Aplikacja i widgety najwyżej położona warstwa zawierająca aplikacje oraz widgety; aplikacje to programy działające na pełnym ekranie; widgety to aplikacje wykorzystujące fragment (prostokątną część ekranu).

Uprawnienia (do wersji Marshmallow) dodajemy niebezpieczny element (np. pobieranie sygnału GPS); dodajemy informację do pliku Manifest; przy pobieraniu aplikacji zezwalamy na użycie tej funkcji; potencjalnie niebezpieczny kod: dodajemy funkcję, która nie jest konieczna w aplikacji, ale najczęściej użytkownik i tak ją zaakceptuje. Uprawnienia (od wersji Marshmallow) od wersji Marshmallow pytanie o uprawnienia zadawane jest dla każdej cechy osobno; możemy zatem zablokować dostęp do książki adresowej, ale zezwolić na inną funkcję.

Coś więcej o pliku Manifest definicje komponentów; pozwolenia, które powinny być uzyskane od użytkownika; deklaracje minimalnego API; deklaracje wymaganych zasobów sprzętowych; biblioteki, które powinny być dołączone (poza tymi z Android API).

Plik strings.xml i zasoby tworzenie aplikacji wielojęzycznych; ciągi znaków (jak np. opis przycisku) nie powinny być wpisane jako stałe w pliku layout.xml; korzystanie z informacji z pliku strings.xml umożliwi przygotowanie wersji dedykowanych dla różnych języków Rysunek: Struktura katalogów dla plikow strings.xml

Rysunek: Widgety w środowisku Android

Właściwości Widgetów wysokość, szerokość, czcionka; wielkość elementu - match (dopasowanie do elementu rodzica); padding - margines wewnętrzny między ramką a obiektem (dlatego najpierw umieszczamy elementy wewnętrz pojemnika np. layout, a dopiero potem padding); margin - margines zewnętrzny pomiędzy ramką a sąsiednimi obiektami.

Podstawy GUI View - prosty komponent; View group - layout (grupua). Rysunek: GUI - ekran Activity

Rysunek: GUI - plik XML

View groups - LinearLayout i RelativeLayout układ w poziomie; układ w pionie; układ ustalany na podstawie parametru: android:orientation. View groups - RelativeLayout układ w odniesieniu do rodzica - np. Container; odniesienie: Bottom Parent, Top Parent, (left, right, center); położenie elementów w odniesieniu do innyc elementów;

View groups - waga ustalając LinearLayout i zmieniając wielkość danej kontrolki View na wartość 0 możemy przypisać jej wagę; waga oznacza, jaką częśc widoku będzie zajmować dany View; Przykładowo: 3 elementy, każdy z wagą 1 oznaczają, iż poszczególne elementy będą rozmieszczone na ekranie równomiernie.

Jak zapewnić sobie wsparcie dla różnych urządzeń? rozmiary w postaci dip (px = dp ( dip 160 )); dla tekstów używamy sp; < supports screens > - wskazujemy, jakie rozmiary ekranu są wspierane; dostarczamy różne elementy resources (dla różnych ekranów); stosujemy różne layout.

dpi, dip, dp, dps, sp? dpi - dots per inch (kropki na cal) - 160 (w przypadku ekranu o niższej rozdzielczości), lub 240 (w przypadku ekranu o większej rozdzielczości); pixels = dpi razy szerokość (1.5 cala), a więc odpowiednio 240 lub 360 pikseli; gęstość - 1.0 - dla ekranów o niższej rozdzielczości oraz 1.5 dla większej rozdzielczości; Denisity-independent pixels (dip,dp, dps) - 240; scale-independent pixels - zależy od ustawień dotyczących czcionki.

Rysunek: Więcej szczegółów. Źródło: stackoverflow.com

Krótko o Javie typy proste; typy referencyje; deklaracja zmiennych; instrukcje sterujące; rzutowanie; metody i zwracane typy; zasięg zmiennych; obiekty i dziedziczenie; interfejsy.

Co dobrze będzie znać? podstawy klas i obiektów; dziedziczenie (większość komponentów dziedziczy po innych elementach); podstawy liczb losowych (pseudolosowych); tablice statyczne (oraz dynamiczne);

Komponenty a intencje czynności, usługi oraz odbiorcy rozgłoszeń tworzeni są za pomocą intencji (intent); konieczne jest wcześniejsze utworzenie obiektu Intent, który będzie zawierał dane przekazywane wskazanemu komponentowi; intencja wiąże komponenty (niezależnie od tego, czy inny komponent należy do uruchamiającej aplikacji, czy innej). Jeszcze intencje 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.

Cechy intencji akcja - ogólna akcja, która ma zostać wykonana (ACTION VIEW, ACTION EDIT); dane - informacje, które mają zostać przekazane komponentowi (np. dane adresowe); kategoria - informacje dodatkowe; typ MIME danych (identyfikator formatu plików) składający się z typu oraz podtypu (przetwarzania wiadomości e-mail); komponent; dodatki.

Zasoby wygląd, układ iz zachowanie interfejsu użytkownika; parametry takie jak rozmiar ekranu, język, orientacja ekranu; zasoby typu drawable, animacje, ikony aplikaci.

The Draw 9-patch tool - tworzenie elementów GUI 9 części obrazy (np. przyciski) ze specjalnym rodzajem skalowania; określenie wyglądu obramowań; używane do android:background; cały obrazek podzielony jest na 9 obszarów. 4 narożniki - statyczne; 4 obszary pomiędzy narożnikami - powielane w jednym wymiarze (na szerokość, lub na wysokość); środek - skalowalny.

Bardziej złożone struktury więcej elementów niż 9; możliwe skalowanie tylko poziomo, lub tylko pionowo; wybrane fragmenty ramki mogą być stale. Rysunek: Przykład ramki

Rysunek: Stany przycisków Interaktywność kontrolek interaktywność kontrolek; osobne grafiki dla poszczególnych stanów przycisku; nie mamy Listenera do przycisku.

Stany kontrolek android:state enabled czy element jest aktywny; android:state focused czy element ma fokus; android:state pressed czy element jest wciśnięty; android:state checked czy element jest wybrany.

Na koniec o powiadomieniach Toast - interaktywność (brak) - Krótko widoczne informacje wyświetlane domyślnie pośrodku dolnej części ekranu. Pasek stanu - interaktywność (mała) - Zdarzenia oczekujące akcji użytkownika (np. powiadomienie o sms, albo o e-mailu); Okno dialogowe - interaktywność (duża).

Dziękuję za uwagę