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