Technologie Mobilne - Wykład 1 - Notatki
Charakterystyka Systemu Android
- Android to system operacyjny działający głównie na urządzeniach mobilnych (smartfony, tablety) oraz multimedialnych (np. telewizory).
- Posiada funkcjonalności i mechanizmy dostępne dla użytkownika.
- Nowe funkcje (np. obsługa kamery, elementy interfejsu, sposób wyłączania ekranu blokady) są implementowane w systemie operacyjnym.
- Dostępne jest rozbudowane środowisko programistyczne do tworzenia aplikacji na Androida.
- Deweloperzy mają dostęp do wszystkich klas interfejsu API systemu Android.
Środowiska Programistyczne Androida
- Początkowo używano pakietu Eclipse do tworzenia aplikacji.
- Obecnie preferowany jest Android Studio (bazujący na IDE IntelliJ).
- Zasady działania Androida pozostają niezależne od używanego IDE.
- Google określa Androida jako innowacyjną, otwartą platformę, zaspokajającą potrzeby rynku urządzeń mobilnych, rozszerzającą się na nowe typy urządzeń.
Android Open Source Project (AOSP)
- Projekt Google udostępniający kod źródłowy Androida do przeglądania, analizowania i modyfikowania.
- Podobny do innych systemów Linuxowych, umożliwia programistom tworzenie i udostępnianie własnych dodatków do kodu.
- AOSP tworzy wytyczne zgodności dla firm OEM i producentów urządzeń, określające sposoby przenoszenia Androida na nowe urządzenia i tworzenia akcesoriów zgodnych ze standardami Androida.
- Celem jest zagwarantowanie typowych doświadczeń użytkownika.
Spójność Systemu Android
- Zachowanie spójności systemu Android jest bardzo ważne dla całego ekosystemu.
- Drastyczne modyfikacje mogą prowadzić do fragmentacji rynku i powstania konkurujących dystrybucji Androida.
- Więcej informacji i kod źródłowy można znaleźć na stronie: https://source.android.com/index.html.
Open Handset Alliance (OHA)
- Google angażuje się w propagowanie swojej wizji i przeniesienie marki do świata urządzeń mobilnych.
- Model biznesowy Google jest skuteczny w Internecie i podobny w urządzeniach przenośnych.
Cel OHA
- Celem OHA jest zmiana zamkniętego rynku telefonii przenośnej w rynek otwarty.
- Umożliwienie użytkownikom łatwej zmiany dostawców i dostępu do aplikacji.
- Google analizowało infrastrukturę telefonii bezprzewodowej, wymagania producentów telefonów, oczekiwania programistów i potrzeby operatorów.
- Google i inne firmy chciały stworzyć lepszy telefon bezprzewodowy, ale Apple z iPhonem ich wyprzedziło.
Powstanie Systemu Android
- Sojusz OHA powstał w listopadzie 2007 roku.
- Jest to sojusz biznesowy z udziałem dużych firm z różnych sektorów rynku telefonii bezprzewodowej: producentów podzespołów, oprogramowania, operatorów telekomunikacyjnych.
- Android został zaprojektowany przez Andy’ego Rubina, a Android Inc. została wykupiona przez Google w 2005 roku.
- Członkowie OHA pracowali nad otwartą platformą bazującą na technologii Android Inc.
Google Mobile Services (GMS)
- AOSP udostępnia kod źródłowy Androida oraz instrukcje dotyczące zgodności. Kod aplikacji Google nie jest udostępniany.
- Przystąpienie do OHA daje możliwość uzyskania licencji Google Mobile Services (GMS), obejmującej aplikacje takie jak Google Play, Gmail, YouTube, Google Maps itp.
- GMS nie jest częścią AOSP i należy ją uzyskiwać bezpośrednio od Google.
- Członkostwo w OHA umożliwia zainstalowanie aplikacji i usług GMS na urządzeniu z Androidem.
Producenci Urządzeń dla Androida
- Ponad połowa członków OHA to producenci telefonów (np. Samsung, Motorola, HTC, LG) oraz elektroniki (np. Intel, Texas Instruments, ARM, NVIDIA, Qualcomm).
- Pierwszy telefon z Androidem (T-Mobile G1) został stworzony przez HTC i obsługiwany przez T-Mobile (październik 2008).
- Od 2009 roku nastąpił boom telefonów dotykowych z Androidem.
- Android zdobył popularność szybko, będąc tańszym rozwiązaniem niż iOS.
- W czwartym kwartale 2010 roku Android uzyskał dominującą pozycję na rynku smartfonów.
Cechy Charakterystyczne Androida
- Kompletna: Nowa platforma dla telefonów przenośnych stworzona w sposób kompleksowy i wyczerpujący, zaczynając od bezpiecznego systemu operacyjnego.
- Otwarta: Platforma Android jest udostępniana na warunkach licencji open source, dając programistom dostęp do możliwości urządzeń.
- Darmowa: Twórcy aplikacji na Androida nie ponoszą opłat licencyjnych ani tantiem.
Rozpowszechnianie Aplikacji
- Aplikacje mogą być rozpowszechniane i sprzedawane na różne sposoby, co wiąże się z gorszym bezpieczeństwem niż u konkurencji.
- Samodzielne rozpowszechnianie aplikacji jest bezpłatne. Sklep Google Play pobiera jednorazową opłatę rejestracyjną.
- „Bezpłatny” oznacza brak opłat za platformę Android, nie uwzględniając kosztów projektowania, pisania, testowania, marketingu i utrzymywania aplikacji.
Android - Darmowy i Otwarty
- Android jest jak Linux – platformą otwartą, bez tantiem i opłat licencyjnych.
- System operacyjny jest udostępniany na warunkach Powszechnej Licencji Publicznej GNU w wersji 2 (GNU General Public License Version 2), co wymusza rozpowszechnianie usprawnień na zasadach oprogramowania otwartego.
- Szkielet Androida jest udostępniany na warunkach licencji Apache Software License (ASL/Apache2), co pozwala na rozpowszechnianie otwartych i zamkniętych zmodyfikowanych wersji kodu źródłowego.
Komercyjne Rozszerzenia Androida
- Firmy komercyjne mogą rozszerzać platformę bez udostępniania kodu źródłowego modyfikacji.
- Mogą czerpać korzyści z własnych usprawnień i rozpowszechniać je na warunkach wybranej licencji.
- Programiści mają możliwość rozpowszechniania aplikacji na warunkach dowolnej umowy licencyjnej (otwarte, komercyjne lub mieszane).
Narzędzia Programistyczne - Pakiet SDK
- Android SDK jest dostępny bezpłatnie po zaakceptowaniu licencji Android Software Development Kit License Agreement.
- Android Studio jest oficjalnym, zintegrowanym środowiskiem programistycznym (IDE) do tworzenia aplikacji na Androida.
- Zawiera narzędzia Android SDK, najnowszą wersję platformy Android, obraz systemu dla emulatora Androida oraz zestaw API firmy Google.
Android Studio
- Android Studio bazuje na bezpłatnej wersji Community Edition środowiska programistycznego IntelliJ IDEA (JetBrains s.r.o.).
- Android to solidna platforma dla urządzeń mobilnych dzięki środowisku programistycznemu z dostępem do wszystkich mechanizmów systemu operacyjnego.
- Sklep Google pozwala użytkownikom na kupno i sprzedaż aplikacji.
Podstawowe Pojęcia związane z Tworzeniem Aplikacji w Systemie Android
- Cztery podstawowe komponenty do zrozumienia działania systemu Android:
- Aktywności (obiekty klasy Activity)
- Intencje (obiekty klasy Intent)
- Usługi (obiekty klasy IntentService)
- Odbiorniki rozgłoszeń (obiekty klasy BroadcastReceiver)
Obiekty Klasy Activity - Aktywności
- Obiekty klasy
android.app.Activitysą podstawowymi komponentami platformy Android. Są powiązane z ekranem w aplikacji i wyświetlają interfejs użytkownika. - Po uruchomieniu aplikacji uruchamiana jest aktywność, która spełnia rolę punktu wejścia (ang. application entry point).
- Aktywność główna (ang. launch activity) jest określona w pliku manifestu aplikacji.
Obiekty Klasy Intent - Intencje
- Obiekty klasy
android.content.Intentsłużą do tworzenia żądań przekazywanych do systemu Android. - Zawierają informacje potrzebne do uruchomienia zadania.
- Przy uruchamianiu nowej aktywności tworzy się intencję opisującą tę aktywność.
- Metoda
startActivity()z obiektem klasy Intent jako parametrem wiąże akcję reprezentowaną przez intencję z określoną aktywnością i ją uruchamia.
Zarządzanie Aktywnościami
- Aplikacja posiada jedną lub więcej aktywności, zadeklarowanych w pliku manifestu aplikacji.
- Główna aktywność służy do uruchamiania innych aktywności.
- Uruchomienie nowej aktywności odbywa się przez wywołanie metody
startActivity()z obiektem klasy Intent jako parametrem.
Zadania OS Android
- Jednym z zadań OS Android jest przypisywanie intencji do odpowiednich akcji.
- Intencja może być ściśle sprecyzowana (żądanie uruchomienia konkretnej aktywności) lub ogólna (żądanie uruchomienia dowolnej aktywności spełniającej kryteria).
- Intencje jawne (ang. explicit Intent) – precyzują tworzony obiekt.
- Intencje niejawne (ang. implicit Intent) – definiowane ogólnie, system operacyjny prezentuje listę aplikacji, które mogą obsłużyć zadanie.
Przekazywanie Danych Między Aktywnościami
- Intencje mogą być wykorzystywane do przekazywania danych pomiędzy aktywnościami.
- W definicji obiektu klasy Intent można zamieścić informacje dodatkowe (ang. extras).
- Do zamieszczania dodatkowych informacji służy metoda
putExtra()z odpowiednim argumentem wywołania.
Obiekty Klasy IntentServices - Usługi
- Usługi (obiekty klasy
android.app.Service) to zadania działające niezależnie od aktywności, w tle. - Uruchamiane przez aktywności, wykonują zadania w tle, podczas gdy użytkownik pracuje z interfejsem aktywności.
- Interfejs użytkownika jest obsługiwany przez wątek UIThread (główny wątek aplikacji).
- Efektywna aplikacja korzysta z usług działających w tle i minimalizuje zadania w wątku UIThread.
- Usługi muszą być zdefiniowane w pliku manifestu aplikacji.
- Usługi są tworzone za pomocą metody
startService(), której parametrem jest intencja powiązana z daną usługą.
Obiekty Klasy BroadcastReceivers - Odbiorniki Komunikatów
- Odbiorniki komunikatów (obiekty klasy
android.content.BroadcastReceiver) odbierają komunikaty rozsyłane za pomocą metodysendBroadcast()i na ich podstawie podejmują działania. - Aktywność musi zostać poinformowana o zakończeniu działania innej usługi.
- Obiekty klasy IntentService po skończeniu działania mogą rozsyłać komunikaty rozgłoszeniowe (ang. broadcast).
System Powiadamiania
- Usługi i odbiorniki komunikatów mogą być traktowane jako system powiadamiania.
- Usługi rozsyłają informację o zdarzeniu, a odbiorniki je subskrybują.
- Odbiornik określa, czy powinien obsługiwać dane zdarzenie, sprawdzając zawartość intencji rozsyłanej w komunikacie.
Aktywności i Usługi w Działaniu
- Aktywności i usługi to zadania działające w aplikacjach.
- Projektanci tworzą kod, aby aktywności i usługi wykonywały zadania. Odbiorniki nasłuchują rozgłoszeń i reagują na nie.
- Aplikacje uruchamiają różne aktywności (np. przeglądarka Chrome rozpoczyna działanie od określonej aktywności).
- Przeglądarka wysyła intencję reprezentującą zadanie udostępnienia adresu URL strony, a system Android wyświetla listę aplikacji z odbiornikami obsługującymi udostępnianie adresów URL.
Klasy i Metody
- Wszystkie aktywności, intencje, usługi i odbiorniki komunikatów mają postać klas zdefiniowanych w modelu obiektowym systemu Android.
Klasa Activity - (android.app.Activity)
- Jest częścią pakietu
android.app. - Dokumentacja klas opisuje pola (właściwości klasy) i metody (operacje, funkcje).
- Programiści nadpisują metody wybranych klas, aby realizowały potrzebne funkcje.
- Klasa Activity posiada metodę
onCreate(), w której określa się operacje wykonywane podczas tworzenia nowej aktywności.
Klasa Intent - (android.content.Intent)
Określa akcje do wykonania i dane niezbędne do wykonania tych akcji.
Konstruktory obiektów klasy Intent zawierają definicje akcji i dane.
Definicja intencji wywołującej aktywność o nazwie HelpActivity:
Intent intent = new Intent(getApplicationContext(), HelpActivity.class); intent.putExtra("com.example.LEVEL", 23); startActivity(intent);Metoda
putExtra()dodaje dodatkowe dane dla intencji.
Pobieranie Danych z Intencji
Gdy klasa HelpActivity zostaje wywołana, można pobrać intencję za pomocą metody
getIntent()i wyodrębnić z niej dodatkowe dane:Intent receiveIntent = getIntent(); int helpLevel=receiveIntent.getIntExtra("com.example.LEVEL", 1);Argumenty wywołania metody
getIntExtra()to nazwa pobieranego parametru i jego wartość domyślna.Po zdefiniowaniu obiektu klasy Intent można do niego dołączać dane za pomocą metody
putExtra().
Klasa IntentService - (android.app.IntentService)
- Klasa IntentService ma metodę
onHandleIntent(), która jest wywoływana do przetwarzania żądań. - Do metody przekazywana jest intencja, na podstawie której usługa decyduje o wykonywanych zadaniach.
Klasa BroadcastReceiver - (android.content.BroadcastReceiver)
- Klasa BroadcastReceiver ma metodę
onReceive(), która jest wywoływana, gdy odbiornik otrzyma komunikat intencji rozgłaszany przez aktywności. - Po powiązaniu zadania z intencją musi zostać wykonane, co realizowane jest przez wywołanie metody
onReceive().
Podsumowanie
- Większość działań aplikacji odbywa się w aktywnościach i usługach.
- Obiekty klasy IntentService to specyficzny rodzaj obiektów klasy Service (android.app.Service).
- Usługa to operacja działająca w tle, bez interwencji użytkownika.
- Intencje są używane do uruchamiania usług i aktywności.
- Odbiorniki komunikatów są uruchamiane, gdy aktywność lub usługa wysyła intencję za pośrednictwem metody
sendBroadcast().
Obiekt Klasy Application - (android.app.Application)
- Obiekt, którego można używać do zarządzania globalnym stanem aplikacji.
- Aktywności i usługi definiowane w pliku manifestu są definiowane jako część aplikacji.
- Klasa Application i klasa Activity to rozszerzenia klasy Context (android.content.Context).
- Klasa Context zawiera informacje na temat globalnego środowiska aplikacji.
- Konteksty są wykorzystywane do uruchamiania aktywności i usług.
- Aktywności są podklasą kontekstów i mogą uruchamiać inne aktywności.
Uzyskiwanie Kontekstu Aplikacji
Do pozyskania kontekstu aplikacji dla bieżącego procesu używana jest metoda
getApplicationContext():Context context = getApplicationContext();Klasa Activity wywodzi się z klasy Context. Tworząc kod aktywności, nie trzeba jawnie pobierać kontekstu aplikacji, można używać obiektów klasy Activity.
Po otrzymaniu kontekstu aplikacji można go używać do uzyskiwania dostępu do globalnych funkcji i usług aplikacji.
Architektura Androida
- Platforma Android jest odporna na błędy i lepiej sobie z nimi radzi niż wiele konkurencyjnych rozwiązań.
- Urządzenia działają pod kontrolą systemu operacyjnego Linux, na którym bezpiecznie wykonywane są aplikacje.
- Każda aplikacja na Androida działa we własnej Application Sandbox („piaskownica”).
- Aplikacje te są kodem zarządzanym (ang. managed code), co zmniejsza prawdopodobieństwo awarii urządzenia spowodowanej wadliwą aplikacją.
System Operacyjny Linux
- Podstawowe usługi systemowe są obsługiwane przez jądro Linuksa, pełniące funkcję warstwy abstrakcji sprzętowej (ang. hardware abstraction layer).
Funkcje Jądra Systemu
- Funkcje realizowane przez jądro systemu:
- Wymuszanie zasad bezpieczeństwa aplikacji i udzielanych im uprawnień.
- Zarządzanie pamięcią na niskim poziomie.
- Zarządzanie procesami i wątkami.
- Obsługa stosu sieciowego.
- Dostęp do sterowników ekranu, przycisków, aparatu fotograficznego, Wi-Fi, kart pamięci, systemu dźwiękowego, konsolidatora komunikacji pomiędzy procesami (IPC) oraz sterowników zasilania.
ART - Środowisko Wykonawcze Aplikacji
- Każda aplikacja w OS Android działa jako osobny proces wykonywany we własnej Application Sandbox.
- Środowisko wykonawcze Androida (Android Runtime - ART) zastąpiło wirtualną maszynę DALVIK.
- ART wprowadza kompilację z wyprzedzeniem (ang. ahead-of-time compilation) zamiast kompilacji na żądanie (JIT) w DALVIK.
- Aplikacje są kompilowane podczas instalacji i przechowywane w formie plików wykonywalnych, których nie trzeba ponownie kompilować przed uruchomieniem.
- DALVIK kompilował aplikacje bezpośrednio przed uruchomieniem. ART zapewnia znaczący wzrost wydajności (wprowadzony w Android 5.0).
Bezpieczeństwo i Uprawnienia
- Integralność platformy Android jest realizowana dzięki mechanizmom zabezpieczeń.
- Zapewniają bezpieczeństwo danych użytkownika i chronią telefon przed złośliwym oprogramowaniem.
- Aplikacja działa jako użytkownik systemu operacyjnego.
- System tworzy nowy profil użytkownika dla każdej instalowanej aplikacji.
- Aplikacje działają jako różni użytkownicy, posiadają prywatne pliki, identyfikatory i bezpieczne środowisko.
- Aplikacje są wykonywane we własnym procesie, we własnej „piaskownicy” i posiadają własny identyfikator użytkownika.
Moduł Jądra SELinux
- W Android 4.3 wprowadzono zmodyfikowaną wersję modułu jądra systemu Security-Enhanced Linux (SELinux).
- Zastosowano rozszerzone mechanizmy bezpieczeństwa, ograniczające aplikacje do działania w obrębie „piaskownicy” i wymuszające stosowanie obowiązkowej kontroli dostępu (MAC) dla wszystkich procesów.
Jawne Definiowanie Uprawnień Aplikacji
- Aplikacje muszą rejestrować się i prosić o niezbędne uprawnienia do uzyskania dostępu do wspólnych zasobów systemu (np. połączenia telefoniczne, dostęp do sieci, obsługa aparatu).
- Uprawnienia pozwalają na korzystanie z poufnych danych.
- Aplikacje mogą wymuszać swoje własne uprawnienia, deklarując je i pozwalając innym aplikacjom ich używać (uprawnienia tylko do odczytu lub zapisu).
Uproszczony Model Przydzielania Uprawnień
- W Android 6.0 (API level 23) wprowadzono uproszczony model przydzielania uprawnień (prośba o uprawnienia w czasie działania aplikacji).
- Uprawnienia operujące na normalnym poziomie ochrony są przydzielane podczas instalacji, a pozostałe – w trakcie działania aplikacji.
Podpisywanie Aplikacji i Więzy Zaufania
- Pakiety aplikacji są podpisywane certyfikatami, potwierdzając ich autentyczność (klucz prywatny znajduje się w posiadaniu programisty).
- Rozwiązanie to pomaga nawiązać więzy zaufania między twórcą aplikacji a użytkownikiem.
- Zapewnia programistom kontrolę nad tym, które aplikacje mogą udzielać uprawnień innym aplikacjom.
Konta Użytkowników i Profile Ograniczone
- Od Android 4.2 (API level 17) wprowadzono możliwość tworzenia wielu kont użytkowników na urządzeniach używanych przez kilka osób.
- W Android 4.3 (API level 18) wprowadzono konta ograniczone, pozwalające na korzystanie jedynie z wybranych aplikacji.
- Programiści mogą dostosowywać aplikacje do kont ograniczonych, umożliwiając ograniczanie dostępu do treści.
Rejestracja Programistów w Google Play
- Do publikowania aplikacji w Google Play programista musi utworzyć konto.
- Google Play sprawdza, jakie aplikacje trafiają do kanału dystrybucji, i nie toleruje złośliwego oprogramowania, jednak w praktyce zdarzają się wyjątki.
Programowanie Aplikacji na Androida
- Android SDK udostępnia interfejsy programowania aplikacji (API).
- Podstawowe usługi urządzeń z Androidem są dostępne dla wszystkich aplikacji.
- Aplikacje mogą udostępniać informacje innym aplikacjom i korzystać z informacji oferowanych przez system operacyjny (przy posiadaniu odpowiednich uprawnień).
Języki Programowania
- Aplikacje dla OS Android są pisane w języku Java.
- Microsoft umożliwia pisanie aplikacji ponad platformowych z użyciem języka C#.
- Można tworzyć aplikacje internetowe działające na urządzeniach z Androidem (wyświetlane za pomocą przeglądarki lub kontrolki WebView w aplikacji napisanej w Javie).
- Więcej informacji: http://d.android.com/guide/webapps/index.html
Popularne Pakiety
- Dostępne są pakiety i biblioteki klas Javy do realizacji powszechnych czynności (generacja grafiki, obsługa baz danych, komunikacja sieciowa, bezpieczne połączenia).
Obsługa w Popularnych Pakietach
- Kontrolki interfejsu użytkownika (przyciski, pola przewijane, pola tekstowe).
- Układy interfejsu użytkownika (tabele, karty, listy).
- Możliwości integracji (powiadomienia, widżety).
- Bezpieczne połączenia sieciowe i przeglądanie WWW (SSL, WebKit).
- Przetwarzanie kodu XML (DOM, SAX, XML Pull Parser).
- Mechanizmy składowania strukturalnego i relacyjnych baz danych (preferencje aplikacji, SQLite).
Obsługa w Popularnych Pakietach (Ciąg Dalszy)
- Grafika 2D i 3D (SGL, OpenGL ES, RenderScript).
- Szkielety multimedialne do odtwarzania i rejestrowania klipów oraz strumieniowania (MediaPlayer, JetPlayer, SoundPool, AudioManager).
- Możliwości różnych formatów audio i wideo (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG).
- Dostęp do opcjonalnych komponentów sprzętowych (usługi lokalizacyjne, USB, Wi-Fi, Bluetooth, NFC, sensory sprzętowe).
Szkielet Aplikacji Androida
- Szkielet aplikacji zapewnia niezbędne elementy do stworzenia aplikacji. Cykl działania aplikacji składa się z kluczowych komponentów:
- Aktywności (funkcje wykonywane przez aplikację).
- Fragmenty (modularne i nadające się do wielokrotnego stosowania części aktywności).
- Mechanizmy wczytywania (asynchroniczne wczytywanie danych).
- Grupy widoków (interfejs użytkownika).
- Intencje (informują system o planach aplikacji).
- Usługi (przetwarzanie w tle).
- Powiadomienia (informują użytkownika).
- Dostawcy treści (przekazywanie danych pomiędzy aplikacjami).
Usługi Platformy Android
- Aplikacje wchodzą w interakcje z systemem operacyjnym i komponentami sprzętowymi urządzenia przez kolekcję menedżerów. Każdy menedżer odpowiada za przechowywanie stanu konkretnej usługi systemu operacyjnego.
Przykłady Usług Platformy Android
LocationManager(usługi lokalizacyjne).ViewManageriWindowManager(zarządzanie interfejsem użytkownika).AccessibilityManager(ułatwienia dostępu dla osób z ułomnościami).ClipboardManager(dostęp do schowka).DownloadManager(operacje pobierania przez HTTP).FragmentManager(zarządzanie fragmentami).AudioManager(dostęp do systemu dźwiękowego).
Usługi Firmy Google
- Google udostępnia API integrujące aplikacje z licznymi swoimi usługami.
- Umożliwia korzystanie z najnowszych wersji usług, dodając SDK do aplikacji.
Przykłady Usług Google
- Mapy (maps).
- Miejsca (places).
- Usługi związane z grami (Play Game Services).
- Mechanizmy logowania (Google Sign-in).
- Zakupy i subskrypcje wewnątrz aplikacji (In-app Billing and Subscriptions).
- Komunikaty w chmurze (Google Cloud Messaging).
- Usługi analityczne (Mobile App Analytics SDK).
- Reklamy (AdMob Ads).
Konfiguracja Środowiska Programistycznego
- Skonfigurować środowisko do pisania programów w języku Java (Windows, Macintosh, Linux).
- Instalacja oprogramowania:
- Java Development Kit (JDK) w wersji 7 (http://oracle.com/technetwork/java/javase/downloads/index.html lub http://java.sun.com/javase/downloads/index.jsp).
- Użytkownicy Mac OS X powinni stosować Java Runtime Environment w wersji 6 i skonfigurować projekt, by korzystał z JDK 7.
Dodatkowe Elementy Konfiguracji
- Najnowsza wersja Android SDK (http://d.android.com/sdk/index.html).
- Android Studio udostępnia narzędzia SDK, narzędzia platformy Android, najnowszą wersję platformy Android i obraz systemu dla emulatora Androida.
- Android Studio (IDE oparte na IntelliJ IDEA Community Edition) jest zalecane przez Google i dostarczane z najnowszą wersją Android SDK.
Podstawowy Proces Instalacji
- Pobranie i zainstalowanie JRE/JDK dostosowanego do systemu operacyjnego.
- Pobranie i zainstalowanie/rozpakowanie Android Studio (wybrać opcję instalacji wszystkich komponentów: Android SDK i Android Virtual Device).
Dalsza Konfiguracja
- Uruchomienie Android Studio i użycie Android SDK Manager do pobrania i zainstalowania platformy Android i innych komponentów (dokumentacja, sterowniki USB, dodatkowe narzędzia).
- Android SDK Manager jest zintegrowany z Android Studio (dostępny jako niezależne narzędzie).
- Zainstalowanie sugerowanych narzędzi.
- Skonfigurowanie komputera do debugowania urządzenia (sterowniki).
- Skonfigurowanie urządzenia (lub urządzeń) do debugowania.
- Rozpoczęcie tworzenia aplikacji na Androida.