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

Podobne dokumenty