Architektura systemu - Hi, I`m Łukasz Przywarty aka Lucc
Transkrypt
Architektura systemu - Hi, I`m Łukasz Przywarty aka Lucc
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? System operacyjny + Zestaw bibliotek + Aplikacje • Utworzony przez konsorcjum 86 firm wchodzących w skład Open Handset Alliance (OHA) w 2007 r. 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 Androida z 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 znane z języka JAVA. – API do struktur danych, obsługi plików, sieci, grafiki etc. • Dalvik Virtual Machine (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. • Dalvik Virtual Machine (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: .java .class .dex – wydajna obsł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 Cykl życia aplikacji c.d. 18/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ż telefony i 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., Anroid in practice, 2012 • http://developer.android.com 22/23 Android - wprowadzenie Łukasz Przywarty 171018