Wprowadzenie do systemu Android

Podobne dokumenty
Wprowadzenie do systemu Android

Technologie internetowe w programowaniu.

Podstawowe elementy GUI - zadania

Android - wprowadzenie. Łukasz Przywarty

Google Android. Opracował Maciej Ciurlik

Programowanie dla Androida. Ubiquitous

SOP System Obsługi Parkingów

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

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

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

Laboratorium Systemów Mobilnych. Wykład 1

Android, wprowadzenie do SDK

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

akademia androida Pierwsze kroki w Androidzie część I

Programowanie aplikacji mobilnych

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

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

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

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

Systemy operacyjne dla telefonów komórkowych i urządzeń typu smartphone

Systemy operacyjne na platformach mobilnych

WPAM. W5 Android bardzo krótkie wprowadzenie. Piotr Gawrysiak

Programowanie usług działających w tle

Systemy operacyjne na platformach mobilnych

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

Systemy operacyjne na platformach mobilnych

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Czym jest Android Architektura systemu Cechy platformy Android

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

WPAM. W5 Android bardzo krótkie wprowadzenie. Piotr Gawrysiak.

Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

Agenda. Wprowadzenie do Androida

Fragmenty są wspierane od Androida 1.6

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

Tworzenie aplikacji na platformie Android

Java jako język programowania

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

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

Programowanie obiektowe

Struktury systemów operacyjnych

Programowanie dla ios

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

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

Powiadomienia w systemie Android

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

OSGi Agata Hejmej

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

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

akademia androida Intencje oraz URI część III

INSTRUKCJA KORZYSTANIA Z APLIKACJI

Acronis Universal Restore

INSTRUKCJA INSTALACJI I AKTYWACJI KB TOKENA

Spis treści. S t r o n a 2

Programowanie aplikacji na urządzenia mobilne

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

WPROWADZENIE DO JĘZYKA JAVA

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Wstęp do systemu Linux

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

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet.

SERWER AKTUALIZACJI UpServ

Dlaczego Android? Uczę się Javy więc piszę.. w Androidzie. Nie mam telefonu z Androidem!

Obsługa SMS i telefonii

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

Pracownia Komputerowa wyk ad II

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Eco Harmonogram - Zarządzanie

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

Czym jest technologia Bluetooth?

Instrukcja instalacji i obsługi programu Szpieg 3

Android tworzenie aplikacji mobilnych

SYSTEM OPERACYJNY. Monika Słomian

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

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

Usługi sieciowe systemu Linux

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

Aplikacje RMI

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

Do użytku z aplikacjami z funkcją skanowania / czytania kodów QR

Instrukcja pierwszego logowania do Mobilnego Banku. Strona 1

Ford SYNC z AppLink UZUPEŁNIENIE

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

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Programowanie obiektowe zastosowanie języka Java SE

Wymagania systemowe dla Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Dodatki. Dodatek A Octave. Język maszyn

Mobilne aplikacje multimedialne

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Procedura aktualizacji systemu TelkomBud. dla serwera DBfC w wersji 4.x

Rejestratory AVILINK Konfiguracja połączenia przez Chmurę P2P Rejestratory AVILINK Konfiguracja połączenia przez Chmurę P2P

Przewodnik dla Użytkownika Aplikacja mobilna: Portfel SGB 2.1. Wersja

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

Mobilny system operacyjny Android

Podstawowe zagadnienia

Android. Zarz dzanie cyklem»ycia i stanem. Piotr Fulma«ski. March 10, 2015

PYTANIA - Programowanie aplikacji dla technologii mobilnych

Programowanie dla ios

Transkrypt:

Wprowadzenie do systemu Android

http://myphonedeals.co.uk/blog/33-the-smartphone-os-complete-comparison-chart www.techradar.com/news/phone-and-communications/mobile-phones/ios7-vs-android-jelly-bean-vs-windows-phone-8-vs-bb10-1159893

System operacyjny bazujący na jądrze i filozofii Linux a, przystosowany do urządzeń mobilnych. Tworzony przez Open Handset Alliance (w tym Google Inc.) Projekt typu Open Source.

2003 Powstaje Android Inc. Andy Rubin, Rich Miner, Nick Sears, Chris White 2005 Android Inc. przejęty przez Google Google chciało stworzyć a flexible and upgradable system 2007 Świat ujrzał iphone a Powstaje Open Handset Alliance Pierwsza prezentacja Androida 2008 Pierwsze urządzenie z Androidem HTC Dream Po co był Android?

Na którą wersję systemu pisać aplikacje? https://developer.android.com/about/dashboards/index.html

http://opensignal.com/reports/fragmentation-2013/

http://opensignal.com/reports/fragmentation-2013/

http://opensignal.com/reports/fragmentation-2013/

https://developer.android.com/about/dashboards/index.html

https://developer.android.com/guide/practices/screens_support.html

http://www.youtube.com/watch?v=qbgfus9mqyy

Android kernel = Linux kernel po drobnych modyfikacjach Kernel zapewnia m.in.: Warstwę abstrakcji sprzętowej (HAL) Zarządzanie pamięcią Zarządzanie procesami Zarządzanie siecią Zarządzaniem zasilaniem Linux shell komendą: adb shell Czemu właśnie jądro Linux a?

Kod napisany w C lub C++ Przykładowe elementy: Surfaces Manager zarządzanie wyświetlaniem ekranów OpenGL ES zarządzanie grafiką 2D i 3D Media Framework kodeki (MPEG 4, H.264, MP3, AAC FreeType rendering czcionek SQLite przechowywanie danych Webkit silnik przeglądarki internetowej

Android Runtime dostosowano do warunków urządzeń wbudowanych (ograniczone zasoby procesora, pamięci, baterii) Dalvik własna implementacja Wirtualnej Maszyny (Javy) Różnice względem JVM: Dalvik operuje na plikach.dex Inny zestaw bibliotek niż w JDK Bardziej zwarta i efektywna implementacja Dalvik jest register-based VM Po co tworzyć własną WM?

Włączenie: W Androidzie 4.4 ART (Android Runtime) należy uaktywnić w menu Ustawienia -> Opcje programistyczne. Zalety: (AOT) Ahead-of-time compilation Ulepszony mechanizm garbage collector Ulepszone mechanizmy odplukwiania (debuger) java.lang.nullpointerexception: Attempt to write to field 'int android.accessibilityservice.accessibilityserviceinfo.flags' on a null object reference java.lang.nullpointerexception: Attempt to invoke virtual method 'java.lang.string java.lang.object.tostring()' on a null object reference Wady: Nie wszystkie aplikacje będą w 100% funkcjonować poprawnie

Responsywność zamiast Holo będzie Material Design Rozszerzone powiadomienia na ekranie blokady Lepsze zarządzanie (oszczędzanie) energii Nowy sposób zarządzania/przełączania między aplikacjami. Wsparcie dla 64-bitowych układów/aplikacji Cały ekosystem: nie tylko telefony i tablety, ale również Android Wear.

Czemu kod Javy nie jest bezpośrednio kompilowany do Dalvik Byte Code? http://markfaction.wordpress.com/2012/07/15/stack-based-vs-register-based-virtual-machine-architecture-and-the-dalvik-vm/

Główne komponenty Activity Manager zarządza cyklem życia (i nawigacją) aplikacji Package Manager zarządzanie zainstalowanymi aplikacjami Content Providers zarządzanie udostępnianiem danych między aplikacjami View System zarządzanie warstwą GUI oraz generowanymi zdarzeniami https://sites.google.com/site/io/inside-the-android-application-framework

Plik wykonywalny Dalvik + Zasoby = APK Aplikacje muszą być podpisane Istnieje też debug key Dostępne są różne sklepy: Google Play, Amazon AppStore, GetJar, AppBrain, F-Droid itp. = dex zasoby

Google Play Amazon App Store SlideMe GetJar Mobango Koszt wgrania aplikacji 25 $ 100 $ Za darmo Za darmo Za darmo Procent prowizji 30 % 30 % 9 % 0 % przy reklamach 1 $ per pobranie Dzienna liczba pobrań 10 milionów lub więcej Zalety Dużo potencjalnych klientów Łatwa instalacja aplikacji Instalowany domyślnie Brak recenzji Wady Duża konkurencja Dane na 2012 rok Brak danych Brak danych 3 miliony 1 milion lub więcej Zintegrowany z wyszukiwarką sklepu Długotrwała recenzja aplikacji Szybki proces recenzji Dość duża baza użytkowni ków Kiepskie możliwości kontaktu z klientem Darmowa promocja Użytkownicy często korzystają szukając promocji Konieczna recenzja aplikacji Tylko darmowe aplikacje Dostęp przez przeglądarkę Brak kosztów dla developera (gdy nikt nie ściągnął aplikacji) Nieprzyjazn y UI/wyszuki wanie

adb shell

Przydatne komendy powłoki systemowej: ls... listing plików i katalogów mkdir... stwórz nowy katalog rmdir... usuń katalog rm -r... usuń katalog(i) z plikami rm... usuń pliki mv... przenoszenie/zmiany nazwy plików cat... podgląd zawartości plików cd... zmiana aktualnej ścieżki pwd... aktualna ścieżka df... wolne miejsce na dysku chmod... zmiana uprawnień (do pliku/katalogu) date... wyświetlenie daty exit... zakończenie sesji Brak jest komendy kopiowania (cp), ale można ją zastąpić poleceniem cat: #cat data/app/apidemos.apk > cache/apidemos.apk

telnet localhost 5554 sms send <numer> <treść> gsm call <numer dzwoniącego>

Każda aplikacja uruchamiana jest jako należąca do innego użytkownika. Tylko użytkownik o określonym ID (właściciel) ma bezpośredni dostęp do wszystkich plików danej aplikacji. Każda aplikacja jest izolowana od pozostałych uruchamiana w osobnej instancji wirtualnej maszyny. Każda aplikacja to osobny proces systemowy. Proces jest uruchamiany, gdy jakikolwiek komponent aplikacji musi zostać uruchomiony i zakończony gdy nie jest potrzebny bądź należy zwolnić zasoby (w wyniku ich zapełnienia)

Aplikacja na Androida składa się z jednego lub więcej elementu składowego. Takim elementem może być: 1. Activity 2. Service 3. Broadcast receiver 4. Content provider

Zwykle aplikacja składa się z jednej lub więcej aktywności. Tylko jedna aktywność (zwana główną) jest wybrana do wyświetlania przy pierwszym uruchomieniu aplikacji. Aktywność może przekazać sterowanie (i dane) do innej aktywności wykorzystując protokół komunikacyjny zwany intencją (intent). Aktywność zazwyczaj utożsamiana jest z pojedynczym ekranem GUI.

Aktywność 1 Aktywność 2 Aktywność3

Usługa to specjalny typ aktywności, która nie posiada wizualnej reprezentacji Usługi zwykle uruchamiane są w tle na nieograniczony przedział czasu Aplikacje mogą uruchamiać własne usługi lub korzystać z już aktywnych Przykład: Usługa GPS działa w tle i co jakiś czas wysyła dane lokalizacyjne do aplikacji nimi zainteresowanymi

Broadcast receiver to słuchacz oczekujący na globalnie (w obrębie całego systemu) przesyłane komunikaty. Nie posiada graficznego interfejsu. Zwykle brodcast receiver jest rejestrowany w systemie za pomocą filtra. Gdy komunikat zostanie dopasowany do danego filtra, BR jest aktywowany. Brodcast receiver może odpowiedzieć na komunikat wywołując określoną aktywność lub wyświetlając powiadomienie (notification).

Jego zadaniem jest udostępnianie zbiorów danych aplikacjom. Typowe zbiory danych (globalne): kontakty, zdjęcia, wiadomości, pliki audio itp. Globalne zbiory danych często przechowywane są w bazie SQLite. Dostawca treści jest warstwą abstrakcyjną dostarcza spójne metody do pobierania, dodawania, modyfikacji i usuwania danych, bez względu na specyfikę zbioru danych.

http://wwwsimpleandroid.blogspot.com/2013/05/activity-stack-in-android.html

public class PrzykladAktywnosci extends Activity { @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // Aktywność jest tworzona } @Override protected void onstart() { super.onstart(); // Aktywność będzie widoczna } @Override protected void onresume() { super.onresume(); // Aktywność jest widoczna (na pierwszym planie) } @Override protected void onpause() { super.onpause(); // Inna aktywność posiada focus } @Override protected void onstop() { super.onstop(); // Aktywność nie jest już widoczna } @Override protected void ondestroy() { super.ondestroy(); // Aktywność zostanie usunięta } }

Metody onpause(), onstop(), ondestroy() mają status killable, czyli po zakończeniu dowolnej z nich, pozostałe nie muszą zostać wywołane (jeśli system wymusi zakończenie aplikacji). onpause() to jedyna metoda, która na pewno będzie wywołana przed zakończeniem aplikacji. Metoda onpause() powinna być wykorzystywana do zapisania stanu aplikacji.

Dziękuję za uwagę!