Wprowadzenie do Androida

Co to jest Android?

Android to platforma dla urządzeń mobilnych, w skład której wchodzi system operacyjny, middleware i aplikacje. Obecna wersja Android SDK zawiera zestaw narzędzi oraz API potrzebne do tworzenia aplikacji dla platformy Android z wykorzystaniem Javy. Główne funkcjonalności to:
  • Framework aplikacji umożliwiający ponowne wykorzystywanie komponentów
  • Wirtualna maszyna Dalvik zoptymalizowana pod mobilne urządzenia
  • Zintegrowana przeglądarka internetowa oparta o silnik WebKit
  • Zoptymalizowana obsługa grafiki za pomocą własnej biblioteki 2D. Obsługa 3D oparta o specyfikację OpenGL ES 1.0.
  • SQLite do przechowywania danych
  • Obsługa popularnych formatów multimedialnych (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • Obsługa sieci GSM (zależne od sprzętu)
  • Bluetooth, EDGE, 3G i WiFi (zależne od sprzętu)
  • Kamera, GPS, kompas i akcelerometr (zależne od sprzętu)
  • API Akcelerometru posiada stałe grawitacyjne dla Ziemi, wszystkich planet układu słonecznego, Gwiazdy Śmierci i "Tej Wyspy" (z Zagubionych/LOST) :)
  • Bogate środowisko programistyczne zawierające debuger, profiler pamięci i wydajności, wtyczkę dla Eclipse IDE oraz emulator.
system-architecture

Aplikacje

Android będzie udostępniany z zestawem podstawowych aplikacji takich jak klient pocztowy, program do SMSów, kalendarz, mapy, przeglądarka internetowa, kontakty i inne. Wszystkie aplikacje napisane są w Javie.

Framework Aplikacji

Programiści mają dostęp do tego samego API z jakich korzystają podstawowe aplikacje. Architektura aplikacji jest tak zaprojektowana by ułatwić wykorzystywanie gotowych komponentów i elementów aplikacji. Pod spodem działających aplikacji znajduje się szereg aplikacji, usług i podsystemów:
  • Zestawi Widoków, które można używać do budowania aplikacji (listy, siatki, kontenery tekstowe, przyciski, wbudowana przeglądarka)
  • "Content Providers", czyli system umożliwiający dostęp do danych innych aplikacji (np. Kontaktów), lub do ich współdzielenia.
  • Menedżer Zasobów zapewniający dostęp do zasobów takich jak lokalizacje, grafika i pliki layoutów
  • Menedżer Powiadomień pozwalający wyświetlać własne powiadomienia w pasku stanu
  • Menedżer Aktywności zarządzający cyklem życia aplikacji i udostępniający standardową nawigację

Biblioteki

Android wykorzystuje zestaw bibliotek C/C++. Ich funkcjonalność dostępna jest przez API frameworka Androida. Oto najważniejsze biblioteki:
  • Systemowa biblioteka C - implementacja libc dostosowana do wymogów systemów wbudowanych
  • Biblioteki multimedialne - oparte o bibliteki OpenCORE firmy PacketVideo.
  • Menedżer powierzchni - zarządza dostępem do podsystemu wyświetlania i obsługą grafiki 2D i 3D dla aplikacji
  • LibWebCore - silnik przeglądarki www
  • SGL - silnik grafik 2D
  • Biblioteki 3D - implementacja bazująca na API OpenGL ES 1.0. Biblioteki wykorzystują sprzętowe wsparcie 3D jeżeli dostępne lub zoptymalizowane wsparcie sprzętowe.
  • FreeType - rendering czcionek
  • SQLite - baza danych

Środowisko aplikacji

Każda aplikacja działa jako oddzielny proces ze swoją instancją maszyny wirtualnej Dalvik. Maszyna wirtualna została tak napisana, by w systemie mogło wydajnie działać wiele jej instancji. Dalvik wykonuje pliki w formacie .dex (Dalvik Executable), zoptymalizowanym pod kątem niskiego zużycia pamięci. Maszyna wirtualna jest zależna od kernela Linuksa w kwestiach takich jak wielowątkowość czy niskopoziomowe zarządzanie pamięcią.
RkBlog

Systemy wbudowane, 20 October 2008, Piotr Maliński

Comment article
RkBlog main page Search RSS Contact