230 likes | 351 Views
Android - wprowadzenie. Łukasz Przywarty 171018. Ramowy plan prezentacji. Czym jest Android: definicja, krótka historia. Architektura systemu. Architektura aplikacji. Właściwości systemu. Środowisko deweloperskie. Zalety i wady. 2/23. Czym jest Android?.
E N D
Android- wprowadzenie Łukasz Przywarty 171018
Ramowy plan prezentacji • Czym jest Android: definicja, krótka historia. • Architektura systemu. • Architektura aplikacji. • Właściwości systemu. • Środowisko deweloperskie. • Zalety i wady 2/23
Czym jest Android? • Utworzony przez konsorcjum 86firm wchodzącychw skład OpenHandset Alliance (OHA) w 2007 r. + + Aplikacje System operacyjny Zestaw bibliotek 3/23
Czym jest Android? C.d. • Napisany w: C, C++, Java. • Wspierane platformy: ARM, MIPS, x86. • Rodzina systemów operacyjnych: Unix, Linux. • Ostatnia stabilna wersja: 4.2 Jelly Bean. • Licencja: Apache 2.0. 4/23
Czym jest Android? C.d. • 75% - udział na rynku platform mobilnych (iOS – 14,9%, Blackberry - 4,3%). • 500 000 000– liczba aktywowanych urządzeń. • 1 300 000 – dzienna liczba aktywacji. • System dostępny na telefonach komórkowych, tabletach ale również: telewizorach, netbook’ach czy aparatach cyfrowych. 5/23
Krótka historia rozwoju Androida • 10.2003 – utworzenie Android Inc. (Andy Rubin, Rich Miner, Nick Sears, Chris White). • 17.08.2005 – przejęcie Android Inc. przez Google. 6/23
Krótka historia rozwoju Androida c.d. • 5.11.2007 – pierwsze oficjalne wydanie SDK. • 22.10.2008 – pierwsze komercyjne wydanie Androidaz telefonem komórkowym (HTC Dream). • 2010 – Android wiodącą platformą na rynku urządzeń mobilnych (wcześniej Symbian). • 2012 – 75% udział w rynku, 500 milionów aktywnych urządzeń. 7/23
Architektura systemu 8/23
Architektura systemu - aplikacje • 4. warstwa. • Wykonywane przez maszynę wirtualną Dalvika. • Wbudowane aplikacje: książka kontaktów, kalendarz, przeglądarka internetowa, telefon, klient wiadomości SMS/MMS itd. • Aplikacje w markecie /aplikacje użytkownika. • Aplikacje napisane w języku JAVA. 9/23
Architektura systemu - komponenty • 3. warstwa. • Framework aplikacji: manager widoków, manager aktywności, manager powiadomień, manager zasilania, manager okien, odtwarzacz multimediów… • Możliwość zastępowania komponentów. • Każda aplikacja równa. • Równoległe wykonywanie. 10/23
Architektura systemu - biblioteki • 2. warstwa. • Zestaw bibliotek (C/C++) wykorzystywanych przez komponenty. • SQLite, SSL, libc, OpenGL, WebKit etc. • Dostęp możliwy poprzez framework aplikacji. 11/23
Architektura systemu – biblioteki c.d. • 2. warstwa. • Podstawowe biblioteki dające funkcjonalności znanez języka JAVA. • API do struktur danych, obsługi plików, sieci, grafiki etc. • DalvikVirtualMachine (1): • wirtualna maszyna Javy – wersja Google, • środowisko uruchomieniowe dla każdej aplikacji (jedna aplikacja, jeden proces, jedna instancja DVM), 12/23
Architektura systemu – biblioteki c.d. • DalvikVirtualMachine (2): • różnice w stosunku do JVM: inne kody bajtowe (bytecodes), kod w całości w jednym pliku .dex(zamiast w wielu plikach klas), DVM bazuje na rejestrach (zamiast stosach), • kompilacja: • wydajnaobsługa nawet dużej liczby odrębnych DVM. 13/23
Architektura systemu – Linux kernel • 1. warstwa. • Język C. • Obsługa podstawowych usług systemu. • Zarządzanie pamięcią i procesami. • Stos sieciowy. • Sterowniki. • Bezpieczeństwo. 14/23
Architektura aplikacji • Plik .apk– zasadniczo .zip z określoną strukturą pliku. • Budowa pliku .apk: • plik manifestu (XML z dużą dawką metadanych – biblioteki, uprawnienia, wersja API etc.), • paczka źródeł (dźwięki, grafika etc.), • klasy DVM tworzące aplikację. 15/23
Stos aplikacji • Uruchomienie aplikacji: • tworzenie procesu zawierającego aktywność, • okno aplikacji zajmuje cały ekran (oprócz paska statusu) • możliwość przełączenia aplikacji lub ekranu aplikacji, • ekrany są przechowywane na stosie, istnieje możliwość powrotu do poprzedniego widoku. 16/23
Cykl życia aplikacji • 3 stany. • Stan aktywny – aktywność na pierwszym planie (na szczycie stosu), • Stan pauzy – gdy traci focus, ale jest nadal widoczna dla użytkownika (np. gdy zajmuje część ekranu), • Stan zatrzymania – aktywność przykryta przez inną aktywność. 17/23
Środowisko deweloperskie • Android SDK – debugger, biblioteki, emulator, dokumentacja, próbki kodu, tutoriale. • Wspierane IDE: Eclipse z ADT (Android Development Tool), IntelliJ IDEA, NetBeans. • Android NDK (Native Development Kit) – dla bibliotek napisanych w C i innych językach. • Android Debug Bridge(ADB). 19/23
Zalety systemu Android • Kompletna platforma (IDE, emulator). • Otwartość i dostępność. • Łatwość i prostota wdrożenia (Java). • Bogata biblioteka komponentów (np. klawiatura), które można zastąpić własnym rozwiązaniem. • Możliwość obsługi innych urządzeń niż telefonyi tablety. 20/23
Wady systemu Android • Otwartość – względy bezpieczeństwa. • Rozproszenie – dedykowane wersje systemu na różne urządzenia, dla różnych operatorów, utrudniona procedura aktualizacji. 21/23
Bibliografia • Collins Ch., Halpin M., Kappler M., Anroidinpractice, 2012 • http://developer.android.com 22/23
Android- wprowadzenie Łukasz Przywarty 171018