Technologia Programowania 2016/2017 Wykªad 13 Android Jakub Lemiesz
Plan wykªadu 1 ARM vs. x86 2 Mobilne systemy operacyjne 3 Wprowadzenie do Androida 4 Programowanie na Androida 2 / 33
Architektura ARM lata 80 XX w. - pocz tek architektury procesorów ARM (ARM Holdings sprzedaje jedynie licencje): inna budowa, inny zestaw instrukcji, mniejsza wydajno± ni» Intel x86, ale te» mniej ciepªa, mniejszy pobór mocy, patrz: [1] [2] lata 90 XX w. - dost pno± niedrogich urz dze«przeno±nych wyposa»onych w ró»ne systemy ª czno±ci bezprzewodowej poªowa lat 90 XX w. - systemy operacyjne tworzone z my±l o specycznych wymaganiach zwi zanych z wydajno±ci i zastosowaniami urz dze«mobilnych (np. Winodws CE) W 2005, okoªo 98% wszystkich sprzedanych telefonów miaªo w sobie co najmniej 1 procesor ARM (wiki) W 2010 wyprodukowano okoªo 6 miliardów procesorów ARM (telewizory, dyski twarde, komórki, zabawki...) (wiki) Do roku 2014 ponad 50 miliardów procesorów ARM (wiki) 3 / 33
ARM vs. Intel Intel troch zaspaª, ale si budzi, od okoªo 2012 sporo telefonów z Intel Atom, http://www.android-x86.org/ Z drugiej strony: Apple A7, A8, A9, A10 wydajne 64-bit procesory w architekturze ARM Zapowiedzi: MacBook na ARM, serwery na ARM? Przykªadowy raport-porównanie: A detailed analysis of contemporary arm and x86 architectures "We analyze measurements on the ARM Cortex-A8 and Cortex-A9 and Intel Atom and Sandybridge i7 processors over workloads mobile, desktop, and server computing." 4 / 33
ARM vs x86 wyniki raportu 5 / 33
ARM vs x86 wyniki raportu 5 / 33
ARM vs x86 udziaª w zyskach (¹ródªo: AMD Report) Total Addressable Market for processors across embedded, mobile, PC, console, and server segments by architecture 6 / 33
Architektura a systemy operacyjne ARM: Android, Windows RT, Windows 10, Linux (wiele), Chrome OS, ios, Blackberry OS,... x86: Windows, Linux, Android-x86 (nieocjalny projekt), Chrome OS,... 7 / 33
Systemy operacyjne (¹ródªa: [1], [2]) 8 / 33
Systemy operacyjne (¹ródªa: [1], [2]) 8 / 33
Mobilne systemy operacyjne (¹ródªa: [1], [2]) 9 / 33
Mobilne systemy operacyjne (¹ródªa: [1], [2]) 9 / 33
Android podstawowe informacje 1 Android pierwotnie byª rozwijany przez rm Android Inc. kupion przez Google w 2004 2 W 2007 powstaje z inicjatywy Google Open Handset Alliance sojusz 78 rm, który wydaje system Android i Software Development Kit 3 SDK - zestaw narz dzi dla programistów przeznaczony do tworzenia aplikacji na Android (SDK Tools, SDK Platform Tools) 4 Java gªównym j zykiem programowania, wiele dedykowanych bibliotek (telefonia, graka, GPS,...) 10 / 33
11 / 33
ródªo 1 Applications domy±lne app: Browser, Camera, Gallery, Phone,... 2 Application Framework wysokopoziomowe API umo»liwiaj ce ªatwe pisanie aplikacji oraz komunikacj z systemem 3 Libraries and Runtime biblioteki oraz Android Runtime (ART) 4 Linux kernel - obsªuga hardware, zarz dzanie pami ci, procesami,... 11 / 33
Wersje systemu Android 12 / 33
API - ró»nice mi dzy wersjami s istotne! 13 / 33
14 / 33
Android SDK 1 Google wspiera IDE do rozwijania aplikacji Android Studio, ale na razie nie b dzie nam potrzebne, wi c... 2...pobieramy Android SDK > Download Options > Get just the command line tools (300 Mb vs. 1,5 Gb) 3 Dopisujemy katalogi platform-tools/ oraz tools/ z <sdk-folder> do ±cie»ki systemowej, tak by polecenia, android, ant, adb,... byªy dost pne 4 Uruchamiamy SDK Manager poleceniem android 15 / 33
16 / 33
Android Virtual Device (AVD) 1 Je±li nie mamy telefonu z Androidem (lub dla wygody) mo»emy u»y emulatora telefonu 2 W SDK Manager instalujemy obraz wybranej wersji Androida, sprawdzamy poleceniem android list targets 3 Tworzymy wirtualne urz dzenie: android create avd n avdkuba t 1 4 Uruchamiamy wirtualne urz dzenie: emulator -avd avdkuba 5 Mo»esz te» podª czy telefon przez USB... 17 / 33
Tworzenie i instalowanie aplikacji 1 Stwórz now aplikacj poleceniem android create project --target 1 --name anappname --path apath --activity amainactivity --package mypackage.com 2 Wejd¹ do stworzonego katalogu ze szkieletem aplikacji, skompiluj j poleceniem ant debug i zainstaluj poleceniem ant installd na urz dzeniu (pojawi si w menu) 18 / 33
Dodatkowe uwagii 1 Aplikacja musi by podpisana odpowiednim kluczem zanim zostanie zainstalowana. My na razie dziaªamy w 'trybie debugowania' i aplikacja jest podpisana kluczem do debugowania (ale takiej na Google Play nie wrzucimy...) 2 Dziaªaj ce AVD mo»esz analizowa i wysyªa mu informacje (np. sms, dane gps) za pomoc /tools/ddms (Dalvik Debug Monitor) 3 Dost p do Unix Shell na AVD mo»esz uzyska wpisuj c w lini komend polecenie adb shell 19 / 33
Budowa aplikacji 20 / 33
21 / 33
AndroidManifest.xml 22 / 33
res/values/strings.xml 23 / 33
res/layout/main.xml 24 / 33
Linear, Relative, Grid Layout 25 / 33
wrap_content vs. match_parent 26 / 33
R.java generowany automatycznie 27 / 33
Kod ¹ródªowy gªównej klasy aplikacji KubaActivity.java 28 / 33
main.xml callback dla przycisku 29 / 33
Akcja zwi zana z przyciskiem w KubaActivity.java 30 / 33
Klasa Activity gªówny komponent Reprezentuje okno aplikacji (ka»de okno aplikacji to oddzielna aktywno± ) Mo»e zawiera Widoki (Views), czyli kontrolki, guziki, itp. oraz reaguje na zdarzenia W jednej chwili u»ytkownik mo»e u»ywa jednej Aktywno±ci, aktywno±ci s przechowywane na stosie Uruchamiana jest przez Intencj lub inn Aktywno± Najcz ±ciej u»ywane (przesªaniane) metody klasy Activity: oncreate( ) onpause( ) setcontentview( ) findviewbyid( ) 31 / 33
Cykl»ycia Aktywno±ci zarz dzanie pami ci Aktywno± na szczycie stosu jest widoczna, dziaªaj ca Aktywno± A jest w stanie Paused, gdy pojawi si nowa aktywno± wy»ej na stosie, ale aktywno± A jest widoczna Aktywno± jest w stanie Stopped gdy zostanie caªkowicie przesªoni ta przez inn (ale jej dane nie s utracone) W stanie Paused (rzadko) i Stopped (cz sto) aktywno± mo»e zosta usuni ta z pami ci, je±li pami ci brakuje 32 / 33
Cykl»ycia Aktywno±ci ródªo 33 / 33