Feladatok (task) együttműködése



Hasonló dokumentumok
Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Operációs rendszerek. Az NT folyamatok kezelése

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

(kernel3d vizualizáció: kernel245_graph.mpg)

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Operációs rendszerek Folyamatok 1.1

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Konkurens TCP Szerver

Mobil operációs rendszerek. Készítette: Kisantal Tibor

Utolsó módosítás:


Feladatok (task) kezelése multiprogramozott operációs rendszerekben

Matematikai és Informatikai Intézet. 4. Folyamatok

Utolsó módosítás:

Szoftverfejlesztés a Google Android OS-re (Android 3.0, API level 11)

Concurrency in Swing

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Dr. Schuster György október 30.

Broadcast Service Widget

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Folyamatok. 6. előadás

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Nokia N9 - MeeGo Harmattan bemutatkozik

Programozási nyelvek és módszerek Java Thread-ek

Android Wear programozás. Nyitrai István

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Párhuzamos programozási platformok

UNIX / Linux rendszeradminisztráció

Számítógépek felépítése

6.2. TMS320C64x és TMS320C67xx DSP használata

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Zoiper VoIP mobil alkalmazás szoftver beállítása Android rendszerre

Operációs rendszerek. A Windows NT felépítése

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Hardver és szoftver követelmények

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Operációs Rendszerek II.

Fejlesztői szemmel at K

Szenzorhálózatok programfejlesztési kérdései. Orosz György

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

iphone és Android két jó barát...

.NET (Dot-NET) #1 (Bevezetés)

Számítógépes munkakörnyezet II. Szoftver

Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting

Mobil Informatikai Rendszerek

Párhuzamos programozási platformok

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

Java I. A Java programozási nyelv

UNIX: folyamatok kommunikációja

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

Windows történet Windows 1.0. DOS kiegészítő Grafikus felület

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

ARM Cortex magú mikrovezérlők. mbed

Hogyan működtethető a telefonrendszer virtuális környezetben? Mészáros Tamás Műszaki fejlesztési vezető

VIRTUALIZÁCIÓ KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS, BSC

Virtualizációs Technológiák Operációs rendszer szintű virtualizáció Konténerek Forrás, BME-VIK Virtualizációs technológiák

Mobil Peer-to-peer rendszerek

SQLServer. SQLServer konfigurációk

Mobilalkalmazás fejlesztés. Android I. előadás

Operációs rendszerek III.

Bevezetés, platformok. Léczfalvy Ádám

Windows Server 2012: a felhő OS

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Mobil Informatikai Rendszerek

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Utolsó módosítás:

Adatbázis és alkalmazás konszolidáció Oracle SPARC T4/5 alapon

Párhuzamos és Grid rendszerek

Mértékegységek a számítástechnikában

Melyek a Windows Server 2008 R2 tiszta telepítésének (Clean Install) legfontosabb lépései?

Android Pie újdonságai

Android alapok. Android játékfejlesztés

Miért jó nekünk kutatóknak a felhő? Kacsuk Péter MTA SZTAKI

ANDROID EMULÁTOR. Avagy nincsen pénz drága telóra.

Operációs rendszerek. Windows NT. A Windows NT

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

A LEGO Mindstorms EV3 programozása

MOBIL PLATFORMHÁBORÚ. Török Gábor

Operációs rendszerek MINB240

LabView Academy. 4. óra párhuzamos programozás

Bevezetés az informatikába

Segesdi Dániel. OpenNebula. Virtualizációs technológiák és alkalmazásaik BMEVIMIAV ősz

Operációs rendszerek. A Windows NT

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

Mire nem jó egy telefon!

Elosztott rendszerek

The modular mitmót system. DPY kijelző kártya C API

Win 8 változatok. 2. sz. melléklet felnottkepzes@gmail.com. Töltse ki az előzetes tudásszint felmérő dolgozatot!

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

1_Linux_bevezeto_bash

Operációs rendszerek

Operációs rendszerek

IBM felhő menedzsment

S&T CAD/PLM SuperUser Akadémia 2016

Számítógépes alapismeretek

Átírás:

Operációs rendszerek (vimia219) Feladatok (task) együttműködése dr. Kovácsházy Tamás 4. anyagrész, Feladatok implementációja, folyamatok és szálak Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék BME-MIT 2013, Minden jog fenntartva

Feladat (task) fogalom megvalósítása... Feladat fogalom eredetileg folyamat (process) értelemben került használatra. A folyamat a végrehajtás alatt álló program. o Ugyanabból a programból több folyamat is létrehozható. o Saját kód, adat, halom (heap) és verem memória területtel rendelkezik. o Védettek a többi folyamattól. Szeparáció, virtuális gép, sandbox. Verem (stack) Szabad memória (free memory) Halom (Heap) Adat Kód BME-MIT 2013, Minden jog fenntartva 2. lap

Folyamatok szeparációja Virtuális CPU-n futnak: o Nem férhetnek hozzá a többi folyamat és az operációs rendszer futása során előálló processzorállapothoz. o Kontextusváltás történik, ha más folyamat kerül futásra. Saját virtuális memóriaterületük van (később). o Nem férhetnek hozzá más folyamatok virtuális memóriájához vagy direkt módon a fizikai memóriához. o A processzor MMU-ja oldja ezt meg. Lehetséges azonos fizikai memóriaterületek megosztása például olvasási joggal (pl. kód terület). A modern MMU-k ezt akár írási joggal is meg tudják tenni... BME-MIT 2013, Minden jog fenntartva 3. lap

Folyamatok létrehozása OS specifikus rendszerhívás (pl. CreateProcess(), fork(), stb.). Szülő/gyermek viszony a létrehozó és a létrehozott között. o Process fa (process tree) o A szülő erőforrásaihoz hozzáférés többnyire konfigurálható (mindenhez semmihez). o A szülő megvárhatja a gyermek terminálódását, vagy futhat vele párhuzamosan. o Paraméterezhető a gyermek (command line). UNIX fork() részletesen tárgyalásra kerül később. Sok adminisztráció, erőforrásigényes. BME-MIT 2013, Minden jog fenntartva 4. lap

Folyamatok kommunikációja A folyamatoknak együtt kell működniük (később lesz róla részletesen szó). o Ehhez kommunikálniuk kell. Két tetszőleges folyamat nem tud közös memórián keresztül kommunikálni. o Az MMU és a virtuális memória éppen ezt kívánja lehetetlenné tenni (szeparáció). o Csak OS rendszerhívásokon keresztül tudnak kommunikálni, ami erőforrás igényes. Hatékony a védelem/szeparáció szempontjából. Nem hatékony módja a párhuzamos, erősen összefüggő feladatok megoldásának. o Pl. akár GUI + számításigényes feladat (WORD újraszedés ) BME-MIT 2013, Minden jog fenntartva 5. lap

Folyamatok befejezése OS specifikus rendszerhívás (pl. TerminateProcess(), exit(), stb.). Nyitott, használatban lévő erőforrásokat le kell zárni. o Pl. nyitott file-ok, stb. A szülő megkapja a visszatérési értéket, többnyire egy egész értékű változó (integer) formájában. Mi történik, ha a szülő folyamat befejeződik, de a gyermek nem? o OS függő megvalósítás, tipikus megoldások: Alapértelmezett szülő folyamat (pl. UNIX init folyamat). A gyermek automatikus befejezése (cascading termination). Sok adminisztráció, erőforrásigényes. BME-MIT 2013, Minden jog fenntartva 6. lap

Folyamatok értékelése Védelmi/szeparációs szempontból jó megoldás, de erőforrásigényes: o Folyamat létrehozása és megszüntetése. o Folyamatok közötti kommunikáció és erőforrásmegosztás. Megoldás: Szál (thread) bevezetése: o A szál a CPU-használat alapértelmezett egysége, magában szekvenciális kód. o Saját virtuális CPU-ja van, és saját verem áll rendelkezésre. o A kód, adat, halom és egyéb erőforrások (pl. file) tekintetében osztozik azokkal a további szálakkal, amelyekkel azonos folyamat kontextusában fut. Folyamat = nehézsúlyú folyamat (heavyweight process) Szál = pehelysúlyú folyamat (lightweight process) BME-MIT 2013, Minden jog fenntartva 7. lap

Folyamat és szál eltérése ábrán Kód Halom Adat CPU Verem folyamat Kód CPU Adat Halom CPU Erőforrások Erőforrások CPU Verem Verem Verem szál szál szál szál... folyamat Egyszálas tiszta folyamat alapú rendszer Többszálú rendszer folyamat alapon BME-MIT 2013, Minden jog fenntartva 8. lap

Szálak támogatása Jelenleg a modern operációs rendszerek natív módon támogatják szálak létrehozását. Windows: o Program v. szolgáltatás = folyamat, folyamaton belül szálak. o Az ütemező szálakat ütemez. Linux: o Program v. daemon = folyamat, folyamaton belül szálak. o Az ütemező task-okat ütemez, amik lehetnek folyamatok vagy szálak. BME-MIT 2013, Minden jog fenntartva 9. lap

Felhasználó módú szálak Korábban a UNIX alatt (Linux alatt is). o green threads Az OS csak folyamat szintet ismer. Szükség van szálakra. o Felhasználói módú szál könyvtárak... Az OS csak a folyamatot tudja ütemezni, ha az fut, akkor azon belül a felhasználói módú szál könyvtár saját ütemezője fut. o Több szál felel meg egyetlen ütemezési egységnek! Nem tudja kihasználni a több processzoros rendszerek előnyeit. BME-MIT 2013, Minden jog fenntartva 10. lap

Szálak támogatása (létrehozása) Pl. Win32 API, Pthreads, JAVA thread Win32: CreateThread() bonyolult paraméterezéssel. Pthreads: POSIX threads pl. Linux és más UNIX variánsok kernel vagy akár user szinten (csak viselkedést ad meg). JAVA (VM a folyamat, VM-en belül szál): o Thread osztályból származtatva o Runnable interface megvalósítása o A JAVA platform-specifikusan valósítja meg a szálat: Natív OS specifikus szál (one-to-one, tipikus). JAVA specifikus szálak (many-to-one) egy natív OS szálra vagy folyamatra leképezve. many-to-many leképzés (kevesebb erőforrás kell mint a one-to-one esetben, de lehet párhuzamosan futtatni a szálak közül néhányat, amit a many-to-one nem tud). BME-MIT 2013, Minden jog fenntartva 11. lap

Szálak alkalmazásának előnyei Kis erőforrás igényű a létrehozásuk és megszüntetésük. o Kb. egy nagyságrenddel gyorsabb mérések szerint. Alkalmazáson belüli többszálúság támogatása. o A GUI válaszol, még ha háttérben csinál is valamit az alkalmazás (pl. számol). Gyors kommunikáció közös memóriában az azonos folyamat kontextusában futó szálakra. o Csak a verem szál specifikus, a többi osztott. Skálázhatóság. o Alkalmazáson belül kihasználható több CPU. BME-MIT 2013, Minden jog fenntartva 12. lap

Szálak alkalmazásának következményei A közös memórián keresztüli kommunikáció veszélyes. o A kommunikációra használt memóriaterületek (struktúrák vagy objektumok) konzisztenciája sérülhet. o Több előadás szól majd erről a témáról (kölcsönös kizárásnak fogjuk majd a megoldást hívni). o Eltérő folyamatok kontextusában futó szálak kommunikációja az OS-en keresztül történik. Erre ritkábban van szükség, mivel a szorosan összekapcsolódó (sokat kommunikáló) feladatok megvalósíthatóak egy folyamaton belül BME-MIT 2013, Minden jog fenntartva 13. lap

Thread 1 Process 1 Thread 2 Process 2 HW támogatás Thread M Process N Thread1 Thread2 ThreadN Virtuális memória MMU-val Csak fizikai memória, MMU nélkül (pl. egyes beágyazott OS-ek) Multiple Address Space OS Single Address Space OS CPU MMU CPU BME-MIT 2013, Minden jog fenntartva 14. lap

Thread 1 Process 1 Thread 2 Process 2 HW támogatás Thread M Process N Thread1 Thread2 ThreadN Virtuális memória MMU-val Csak fizikai memória, MMU nélkül (pl. egyes beágyazott OS-ek) Multiple Address Space OS Nincs MMU vagy nem használjuk Single Address Space OS CPU MMU CPU BME-MIT 2013, Minden jog fenntartva 15. lap

Coroutine és fiber (rost?) Kooperatív multitasking o Folyamaton vagy szálon belül. OS támogatással vagy programnyelvi megvalósítás. Az OS szinten a coroutine-eket vagy fiber-eket tartalmazó folyamat vagy szál kerül ütemezésre Az ütemezési algoritmus a programozó kezében van, neki kell implementálnia (kooperatív ütemezés). o Coroutine: programnyelvi szintű elem Haskell, JavaScript, Modula-2, Perl, Python, Ruby, etc. o Fiber: rendszerszintű eszköz Win32 API (ConvertThreadToFiber and CreateFiber). Symbian BME-MIT 2013, Minden jog fenntartva 16. lap

Coroutine Subroutine általánosítása o Subroutine: LIFO (Last In/called, First Out/returns). Egy belépési pont, és több kilépési pont (return/exit) A vermet használja a paraméterek és a visszatérési érték átadására. o Coroutine: Az első belépési pont azonos a subroutine-nal. Utána viszont a legutolsó kilépési pontra tér vissza! Átlépés a yield to Coroutine_id utasítással lehet. Nem használhat vermet, hiszen az megtelne (ide-oda lépked, igazából nem tér vissza). BME-MIT 2013, Minden jog fenntartva 17. lap

Coroutine példa, 1. hívás var q := new queue coroutine produce loop while q is not full create some new items add the items to q yield to consume coroutine consume loop while q is not empty remove some items from q use the items yield to produce BME-MIT 2013, Minden jog fenntartva 18. lap

Coroutine példa, hívás később var q := new queue coroutine produce loop while q is not full create some new items add the items to q yield to consume coroutine consume loop while q is not empty remove some items from q use the items yield to produce BME-MIT 2013, Minden jog fenntartva 19. lap

Coroutine és fiber értékelése Kooperatív multitasking-gal megoldható problémák esetén. Verem alapú környezetben (pl. C/C++) nehéz az implementációja a coroutine-nak (fiber rendszerszintű). Egyes kooperatív együttműködést igénylő feladatok jól megvalósíthatóak vele. Nem szükséges osztozni az erőforrásokon (kooperatív): o Nem kellenek OS hívások. o Kisebb erőforrás igény. Az OS ütemezi egy szálban/folyamatban őket, vagyis egyetlen végrehajtó egységet tudnak csak kihasználni. BME-MIT 2013, Minden jog fenntartva 20. lap

Egyéb érdekes megoldások Az Android Linux alapon (folyamat és szál támogatás) felépít egy érdekes keretrendszert, ami túllép a Linux-on. Nézzük meg ezt részletesen BME-MIT 2013, Minden jog fenntartva 21. lap

Android BME-MIT 2013, Minden jog fenntartva 22. lap

Android és a Linux Az Android alapja egy Linux kernel: o Erősen módosítva (patched). Android Mainlining Project (részsikerek). o Az Android verzióból következik a kernel verzió. 4.0 alatt 2.6.x Linux kernel. 4.0 és felette 3.x Linux kernel. Kivéve az Android Emulator (qemu alapú, default 2.6.29 még 4.2.2 alatt is). Platform: Elsődlegesen ARM, azon belül is ARM-Ax processzorokon: o x86-os (netbook, notebook, PC virtualizáció, x86 alapú telefonok). Intel ATOM alapú mobil platformja. Hogyan futtat egy natív (ARM) kódot is tartalmazó alkalmazást? Houdini (binary translation). o MIPS architektúrára is fejlesztik. BME-MIT 2013, Minden jog fenntartva 23. lap

Android és API verzió Az alkalmazások szempontjából az API verzió a fontos: o Android 2.2 2.2.3 Froyo (API level 8). o Android 2.3 2.3.2 Gingerbread (API level 9). o Android 2.3.3 2.3.7 Gingerbread (API level 10). o Android 4.0 4.0.2 Ice Cream Sandwich (API level 14). o Android 4.0.3 4.0.4 Ice Cream Sandwich (API level 15). o Android 4.1 Jelly Bean (API level 16). o Android 4.2 Jelly Bean (API level 17). Melyikre fejlesszünk? o Többnyire visszafelé kompatibilisek BME-MIT 2013, Minden jog fenntartva 24. lap

Android a piacon http://en.wikipedia.org/wiki/file:android-dist-by-dessert.png BME-MIT 2013, Minden jog fenntartva 25. lap

Akkor melyikre fejlesszünk? Rémálom o Majdnem a 100%-a a felhasználóknak elérhető API level 8-cal o Még ma is tömegével lehet API level 10-es telefonokat kapni (2011 februárja és szeptembere között jelent meg a 2.3.3 és a 2.3.7) o A piacon kapható közép és alsó kategóriás 4.x-es telefonok nagy része 4.0.3-4.0.4 verzióval kapható (API level 14). o A gyártók többnyire egy további verziójú Android-ot adnak ki Mi van a biztonsággal? o A felismert OS szintű biztonsági hiányosságokat hogyan fogják javítani? Az Androidra leselkedő legnagyobb veszély a fregmentáció o A második a megbízhatóság/biztonság BME-MIT 2013, Minden jog fenntartva 26. lap

Android alkalmazás és a Linux Application Security Sandbox Az Android alkalmazások egy alkalmazás specifikus UNIX folyamatban futó Dalvik VM-ben futnak. o Saját folyamatban a Dalvik VM saját példánya: Szál és alacsony szintű memória menedzsment standard/módosított Linux módon. o A Dalvik speciálisan mobil eszközökre lett kifejlesztve: Alacsony memória használat. Nem verem, hanem regiszter alapú gép. Hatékonyan futtatható több (sok) példányban párhuzamosan. Minden alkalmazás külön Linux UID-et kap, hogy még véletlenül sem tudjanak egymáshoz férni. o Ennek megfelelően állítódnak be a hozzáférési jogosultságok mindenki más hozzáférését tiltva az alkalmazás által kezelt erőforrásokhoz (pl. file-ok). o A legkisebb jogosultság alapelve (principle of least privilege). o A Manifest file adja meg a részleteket BME-MIT 2013, Minden jog fenntartva 27. lap

A Manifest file AndroidManifest.xml A futtatáshoz szükséges jogosultságok megadása: o A felhasználó eldönti, hogy ezek ismeretében futtatja vagy nem, máshoz nem férhet hozzá (az OS nem engedi). o Pl. telefon funkcióhoz, telefonkönyvhöz, hálózatelérés, stb. Minimális API level, ami szükséges a futtatásához. Használt hardware és szoftver eszközök felsorolása: o Kamera, Bluetooth, stb. Az Android keretrendszeren kívüli API-k megadása (pl. Google Maps felhasználásához). Az alkalmazás komponenseinek megadása. BME-MIT 2013, Minden jog fenntartva 28. lap

Android alkalmazás életciklusa Az Android OS agresszív módon kezeli az erőforrásokat Az alkalmazás (és a mögötte lévő UNIX folyamat) erőforrás hiány miatt bármikor terminálható: o Ezt az operációs rendszer automatikusan meg is teszi, ha szükséges. o Vannak erre eszközök is (taskmanager), de vita van arról, hogy ezek hasznosak vagy nem. o Egyes alkalmazásokban van Exit/Quit lehetőség is (de ritka, pl. komplexebb játékok, stb.). o Permanens módon kell tárolni az alkalmazás állapotát ehhez. A gyakran használt alkalmazásokat betölti a rendszer a memóriába magától vagy a leállítottak bent tartja: o Running állapotban van, csak nem használt CPU-t. o Empty process tartozik hozzájuk (első áldozatok). BME-MIT 2013, Minden jog fenntartva 29. lap

Alkalmazás Prioritás és Életciklus Események Alkalmazás prioritása alapján dől el, hogy a hozzá tartozó UNIX process(ek) mikor kerülnek terminálásra: o Prioritások: Aktív alkalmazás (Critical Priority) Látható alkalmazás (High Priority) Elindított szolgáltatás (High Priority) Háttérfolyamat (Low priority) Üres folyamat (Low priority) o Azonos prioritás esetén a régebben elindultat terminálja a rendszer. Application Lifecycle Events o Felül lehet őket definiálni. oncreate(), onlowmemory(), ontrimmemory (4.x), onconfigurationchanged() BME-MIT 2013, Minden jog fenntartva 30. lap

Android alkalmazás komponensek Aktivitás (activity) Szolgáltatás (service) Content providers (tartalom szolgáltatók) Intent (alkalmazások közötti kommunikációra) Broadcast receivers (Intentek feldolgozására, fogadására) Widgets (A HOME screen-re kerülő vizuális komponensek) Notifications (Jelzések a felhasználónak, LED villogás, hang, Notification Bar, stb.) Binder (Távoli metódushíváson alapuló Android kompatibilis kommunikációs keretrendszer folyamaton belüli és folyamatok közötti kommunikációra) o Az Intent is Binder alapú BME-MIT 2013, Minden jog fenntartva 31. lap

Android alkalmazás komponensek 1. Aktivitás (activity) o Activity Stack (LIFO) o Egy képernyő felhasználói felülettel. o Egy alkalmazáson belül több lehet/van. o Egy alkalmazáson belül az aktivitások függetlenek egymástól, de együttműködve teszik lehetővé az alkalmazás használatát. o 3 féle állapot: Active/Running (képernyőn aktív), Paused (képernyőn inakatív, az aktív részben takarja), Stopped (teljesen takart, leállított). Mindig az éppen a képernyőn lévő aktivitások futnak, de a többi állapota is tárolásra kerül. Lifecycle callbacks BME-MIT 2013, Minden jog fenntartva 32. lap

Aktivitás életciklus BME-MIT 2013, Minden jog fenntartva 33. lap

Android alkalmazás komponensek 2. Szolgáltatás (service) o Háttérben futó funkció felhasználó felület nélkül Folyamatosan futó háttérfeladatok megvalósítására (pl. mp3 lejátszóban a fájl tényleges lejátszására) Nem csinál saját szálat az alkalmazásban, ha CPU intenzív, akkor csinálni kell neki egyet o Started szolgáltatás Addig fut, amíg nem végzi el a dolgát, túlélheti az alkalmazást Pl. nagy fájl letöltése o Bound szolgáltatás Együtt él az alkalmazással Egy jól meghatározott interfészen keresztül érhető el az alkalmazásból P. MP3 lejátszó háttér komponens play, stop, előre- és hátratekerés, lejátszási sebesség, hangerő, stb. beállítási lehetőségekkel o Lifecycle callbacks o Foreground Service + Notification = Never killed o Wake Locks : Felülbírálható velük az energiamenedzsment BME-MIT 2013, Minden jog fenntartva 34. lap

Szolgáltatás életciklus BME-MIT 2013, Minden jog fenntartva 35. lap

Szenzorok az Andoridban Nagyszámú szenzor található a készülékekben o Location: GPS, Hálózat alapú lokalizáció, A felhasználó ki- és bekapcsolhatja az információt o Sensor: Különböző hőmérsékletek, nyomás, kamerák, gyorsulásmérő és giroszkóp, magnetométer, közelségérzékelő, telefon pozíció/orientáció, stb. Android verzió és HW függő hogy mi támogatott Az alkalmazás is képes az igényeit a Manifest fájlban megadni o Fizikai és virtuális szenzorok (szenzor fúzió) o Szenzorok használata LocationManager/SensorManager LocationListener/SensorEventListener BME-MIT 2013, Minden jog fenntartva 36. lap