Wpam w5 android bardzo kr tkie wprowadzenie
This presentation is the property of its rightful owner.
Sponsored Links
1 / 28

WPAM W5 – Android – bardzo krótkie wprowadzenie PowerPoint PPT Presentation


  • 70 Views
  • Uploaded on
  • Presentation posted in: General

WPAM W5 – Android – bardzo krótkie wprowadzenie. Piotr Gawrysiak [email protected] Politechnika Warszawska Instytut Informatyki Zakład Systemów Informacyjnych. 2010. Najbliższe wykłady. 24 listopada – Microsoft Windows Phone 7 (Bartłomiej Zass – Microsoft Polska)

Download Presentation

WPAM W5 – Android – bardzo krótkie wprowadzenie

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Wpam w5 android bardzo kr tkie wprowadzenie

WPAMW5 – Android – bardzo krótkie wprowadzenie

Piotr Gawrysiak

[email protected]

Politechnika Warszawska

Instytut Informatyki

Zakład Systemów Informacyjnych

2010


Najbli sze wyk ady

Najbliższe wykłady

  • 24 listopada – Microsoft Windows Phone 7

  • (Bartłomiej Zass – Microsoft Polska)

  • 1 grudnia – teoretycznie poniedziałek…

  • 8 grudnia – Nokia Qt (Meego/Symbian)

  • (Riku Salminen – Forum Nokia)

  • 15 grudnia – Advanced Android

  • (Mihai Preda – ex Google)

  • 22 grudnia – SAMSUNG BADA (niepotwierdzony)

  • (Janusz Lisiecki – SAMSUNG R&D Polska)


Dlaczego android

Dlaczego Android?

  • A dokładniej – po co firmie Google Android?

  • Dwa powody:

  • 1. Biznesowy

  • 2. Oraz moralno-filozoficzny

Google's mission is to organize the world's information and makeit universally accessible and useful.


Dlaczego android1

Dlaczego Android?

  • Oczywiście jest także trzeci powód

  • Ponieważ Silicon Valley to naprawdę małe miejsce…


A powa niej

A poważniej…

  • Model biznesowy Google słabo się sprawdza w przypadku zamkniętych systemów

  • … stąd zaangażowanie w lobbying net neutrality

  • … stąd także dążenie do zapewnienia otwartości platform mobilnych

  • … główne źródło przychodów firmy – targeted advertising


Open handset alliance

Open Handset Alliance

  • Android nie jest wyłącznie produktem Google (przynajmniej w teorii…)


Wpam w5 android bardzo kr tkie wprowadzenie

…ale…


Czym android nie jest

Nie jest skończony

I nie ma nic wspólnego z

Czym Android nie jest

Nie jest to „Guglofon”

Nie jest to „Linux Phone”


Android geneza

Android - geneza

Podobnie jak większość interesujących produktów Google (poza Google Search) Android został stworzony przez firmę zewnętrzną

2005 – Andy Rubin (twórca Danger Inc., doświadczenie z Magic Cap i WebTV) wraz z kolegami zakłada Android Inc.

2005 – Google kupuje Android Inc., Rubin zostaje szefem działu rozwiązań mobilnych w Google

2007 – powstaje Open Handset Alliance, „preview” SDK

2008 – pierwsza publiczna wersja systemu Android, opublikowana na licencji Open Source (Apache Licence 2.0)


Android infrastruktura

Android - infrastruktura

http://www.android.com – strona oficjalna

http://code.google.com/android - projekty Google dla Androida

Platforma open source dla urządzeń mobilnych (niekoniecznie telefony komórkowe) wykorzystująca system operacyjny Linux – jądro w wersji 2.6 (Froyo – 2.6.32)

„A software stack… including middleware and applications”

Wsparcie dla typowego sprzętu spotykanego w urządzeniach mobilnych

touchscreen (multitouch)radio GSM, Bluetooth, Wifi

akcelerometr, kompas, GPS

kamera wideo, aparat fotograficzny

Platforma otwarta, przy założeniu iż aplikacje tworzone są w języku Java

Założenia projektowe

Jak najłatwiejsze tworzenie aplikacji

Współdzielenie danych i zasobów w środowisku wielozadaniowym

Bezpieczeństwo

Możliwie jak największa rozszerzalność


Wpam w5 android bardzo kr tkie wprowadzenie

Komponenty

Android - infrastruktura


Linux kernel

Linux Kernel

Pierwsze wersje oparte na 2.6.24, najnowsza (Gingerbread) najprawdpodobniej na 2.6.33

Zapewnia dostęp do sprzętu („sterowniki”) oraz podstawowe usługi systemu operacyjnego (zarządzanie procesami, pamięcią).

Pierwsza warstwa abstrakcji sprzętu dla pozostałych elementów infrastruktury systemu.

Niektóre „standardowe” elementy, których można by się spodziewać w systemie Linux zostały usunięte (w szczególności biblioteka Glibc, większość aplikacji userland)

Niektóre elementy zostały dodane, w szczególności – zarządzanie energią (aplikacje mają częściowy wpływ na zachowanie urządzenia – WakeLocks) oraz komunikacja pomiędzy procesami (Binder)


Libraries runtime

Libraries / Runtime

Każda aplikacja „androidowa” jest wykonywana przez osobną instancję (osobny proces) maszyny wirtualnej Dalvik, (co zapewnia m.in. „sandboxing”)

Dalvik – maszyna wirtualna (de facto przerobiona maszyna Apache Harmony) przystosowana do pracy w środowisku o ograniczonych zasobach sprzętowych (powolny procesor, ograniczona ilość pamięci operacyjnej, brak pliku wymiany)

Dalvik nie potrafi wykonywać bezpośrednio skompilowanych klas Java, potrzebna jest konwersja kodu osobnym narzędziem (dx) a następnie zapakowanie do archiwum APK

Core Libraries = Java Core Libraries


Wpam w5 android bardzo kr tkie wprowadzenie

System zawiera zbiór wspomagających bibliotek (kod natywny, napisane w C / C++, wiele to biblioteki pochodzące z innych projektów open source) np.

Baza danych (SQLite)

Przeglądarka WWW (WebKit)

Renderer czcionek (Freetype)

Biblioteki grafiki 3D (OpenGL)

oraz stworzonych przez Google np.

Surface Manager (compositor obsługujący wyświetlanie aplikacji)

Media Framework (odtwarzanie audio i wideo)

HAL libraries (vibration, camera, GPS, …)

Libraries / Runtime


Wpam w5 android bardzo kr tkie wprowadzenie

Surface manager

Audio manager

Libraries / Runtime

Framebuffer (/dev/fb0)

Surfaces (double buffering)

Audio flinger

Diagramy by Esmertec


Application framework

Application Framework

Aplikacje wykorzystują przede wszystkim usługi dostępne w Application Framework np.

Notification Manager – wyświetlanie „informacji statusowych” dla użytkownika

Resource Manager – składnica komponentów aplikacji (tekst, grafika itp.)

View System – zbiór gotowych widgetów (elementy GUI)

Ale są też kontrolowane przez jego elementy – Activity Manager


Android bootup

Android bootup

  • Kolejność uruchamiania komponentów

  • Linux kernel

  • Init

  • Procesy systemowe (usb, adb, radio itp.)

  • Pierwsza maszyna wirtualna Dalvik (Zygote)

  • System Server (w oddzielnej maszynie Dalvik)

  • Komponenty takie jak Activity Manager uruchamiane są przez System Server

  • Surface Manager i Audio Manager – od tego momentu coś może być wyświetlone i działa dźwięk

Diagramy by Esmertec


Komponenty aplikacji

Komponenty „aplikacji”

Nie istnieją tu „monolityczne” aplikacje znane z klasycznych systemów operacyjnych. Aplikacje (tj. oprogramowanie z którym ma do czynienia użytkownik) składane jest z komponentów:

Activity – w uproszczeniu pojedynczy ekran aplikacji, to z czym w danym momencie ma do czynienia użytkownik

… ale może być to także „okienko” nałożone na inne Activity

… Activities grupowane są w stosy (task) – kolejność w stosie ma znaczenie (system zapamiętuje kolejność wyświetlanych activities)

Każda „activity” może być zastąpiona inną, która realizuje taką samą funkcjonalność


Komponenty aplikacji1

Komponenty „aplikacji”

Inne komponenty nie posiadają interfejsu użytkownika:

Service – komponent działający w tle który nie wyświetla interfejsu użytkownika (typowy przykład – odtwarzacz muzyki, radio internetowe)

ContentProvider– udostępnia innym aplikacjom dane pochodzące z naszej aplikacji

IntentReceiver– interfejs przyjmujący żądania wykonania pewnej czynności

Aplikacja (tj. to użytkownik postrzega jako zbiór powiązanych ze sobą elementów interfejsu użytkownika) nie musi być wykonywana w jednym procesie, nie musi nawet zawierać się w jednym pakiecie APK


Cykl ycia activity

Cykl życia activity

Usuwane są w pierwszej kolejności aplikacje mniej istotne dla użytkownika,

np. service działający w tle jest ważniejszy niż activity znajdująca się na dole stosu (ponieważ użytkownik szybko do niej zapewne nie powróci)

onPause(), onStop(), onDestroy() – po ich zakończeniu activity może (nie musi) zostać usunięta z pamięci

onPause() powinna być jak najkrótsza – blokuje kolejną activity


Intent s

Intents

Intent Receivers reagują na rozgłaszane wiadomości „intents”.

Rozgłoszenie wiadomości może służyć celom informacyjnym, ale może być też „prośbą” o wykonanie pewnej akcji.

Można traktować je jako komendy np. „PLAY”, „EDIT”, „PICK” itd.

Aplikacje mogą tworzyć własne rodzaje „intents”, każda aplikacja definiuje (element konfiguracji) jakie „intents” jest w stanie „obsłużyć”

System dobiera te, które najlepiej wypełniają zadanie

To pozwala na dowolne wymienianie elementów infrastruktury


Tworzenie aplikacji sdk

Tworzenie aplikacji / SDK

Przede wszystkim mamy do dyspozycji darmowe SDK

Emulator (oparty na Qemu – bardzo powolny)

Zestaw narzędzi (android debugging bridge, usb driver itd.)

Plugin do Eclipse zawierający m.in. zestaw narzędzi automatujących tworzenie kodu źródłowego

Tworzenie kodu w języku Java, jeśli niezbędna jest większa szybkość (lub niezbędny jest porting już istniejącej aplikacji) możemy skorzystać z pakietu NDK (Native Development Kit) pozwalającego na tworzenie bibliotek w C / C++

A co jeśli nie chcemy korzystać z Javy / C / C++ ?

Możliwe jest wykorzystanie jednego z istniejących interpreterów, w tym w szczególności z SL4A (Scripting Layer for Android, dawniej Android Scripting Environment) - http://code.google.com/p/android-scripting/

Obecnie wspierane Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl i BourneShell.

Możliwość tworzenia skryptów bezpośrednio na urządzeniu


Tworzenie aplikacji sdk1

Tworzenie aplikacji / SDK

A co jeśli nie lubimy pisać kodu źródłowego?

Visual Basic for Android co prawda jeszcze nie istnieje, ale Google eksperymentuje z projektem App Inventor (http://appinventor.googlelabs.com)

System programowania „wizualnego” oparty na koncepcjach opracowanych w MIT Lifelong Kindergarten (Scratch)


Urz dzenia

Urządzenia

Dlaczego dopiero w tym miejscu wspominamy o sprzęcie?

Bardzo duża różnorodność urządzeń, jednak pewne cechy pozostają wspólne:

Ekran dotykowy multitouch capacitive

Rozdzielczość 320x480 lub 480x800 (ew. 845)

Procesor ARM, przynajmniej 256 MB RAM, przynajmniej 512 MB Flash

WiFi, Bluetooth, GPS, GSM

Podział według funkcji:

Telefony (Samsung Galaxy S, Nexus One, HTC Legend itp.)

Tablety / MID (Samsung Tab, CherryPad, Eken M005)

Czytniki książek (Barnes & Noble Nook, Nook Color)

Urządzenia „wbudowane”

Podział na „oficjalne” i nieoficjalne

Oficjalne posiadają wbudowane aplikacje „premium” Google (np. Gmail, Google Maps) oraz dostęp do Google Android Market

Nieoficjalne posiadają jedynie aplikacje open source i dodane przez producenta oraz ew. dostęp do własnego „sklepu”

Bardzo duże możliwości modyfikacji systemu powodują wielkie różnice w wyglądzie interfejsu użytkownika


Custom ui

Custom UI

HTC Sense

Stock Froyo

Motorola

Nook Color


Fragmentation

Fragmentation


Wersje nieoficjalne

Wersje nieoficjalne

  • Ponieważ kod źródłowy platformy (oraz większość sterowników) jest otwarty, toteż w dość prosty (i legalny) sposób można tworzyć alternatywne wersje systemu

  • Oczywiście niezbędny jest tu dostęp na poziomie „root” (odpowiednik „jailbreak) w iPhone

  • Typowy przykład – Cyanogen Mod, rozszerza możliwości standardowego systemu o m.in.

    • Busybox

    • Compressed cache

    • Boot menu

    • Ulepszony lock screen (m.in. kontrola odtwarzacza audio z poziomu lock screen)

    • Nieco lepsza wydajność

    • „Theming” interfejsu użytkownika

    • Radio FM


Wpam w5 android bardzo kr tkie wprowadzenie

Cdn.


  • Login