SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

Hasonló dokumentumok
SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

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


Broadcast Service Widget

BME MOGI Gépészeti informatika 8.

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

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Interfészek. PPT 2007/2008 tavasz.

Concurrency in Swing

Már megismert fogalmak áttekintése

Bevezetés a Python programozási nyelvbe

Objektumorientált programozás C# nyelven

Rekurzió. Dr. Iványi Péter

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

JAVA PROGRAMOZÁS 2.ELŐADÁS

Programozási nyelvek Java

Objektumelvű programozás

Android Commander Felhasználói kézikönyv

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

A C++ öröklés. (Előfeltétel: 12. tétel ismerete)

Serialization. RMI működése

Könyvtári címkéző munkahely

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

OOP #14 (referencia-elv)

Interfészek. Programozás II. előadás. Szénási Sándor.

Android Wear programozás. Nyitrai István

C++ programozási nyelv

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

Objektum orientált kiterjesztés A+ programozási nyelvhez

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Név: Neptun kód: Pontszám:

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

ELTE SAP Excellence Center Oktatóanyag 1

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Bánsághi Anna 1 of 67

Android Commander Felhasználói kézikönyv

Programozás C++ -ban 2007/7

DOAS FORD garanciális munkalap formátum változások

Bevezető. Servlet alapgondolatok

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Enterprise JavaBeans 1.4 platform (EJB 2.0)

és az instanceof operátor

Applikációk közötti kommunikáción alapuló sérülékenységek vizsgálata Android operációs rendszeren

Angol szótár V

SMS küldő központ Leírás

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

A dokumentáció felépítése

Osztályok. 4. gyakorlat

Akciók, diavetítés. 1. ábra Akciógombok. A lap két regiszterfülből áll, ezek a Kattintásra és az Áthaladáskor. Nézzük meg először az elsőt!

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

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

ANDROID ALKALMAZÁSFEJLESZTÉS

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

Bejövő hívások kezelése a Taxawin Callback moduljával.

Belföldi Termékosztályozás V

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Kölcsönhatás diagramok

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

FEOR szám kereső V

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

ViCA. Virtuális Chipkártya Alkalmazás

Online kötelező felelősségbiztosítás munkafolyamat 1 / 10

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Regisztrálási útmutató

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

Alkalmazásfejlesztés Android platformra

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Informatika. Középszintű érettségi vizsga témakörök. 1. Információs társadalom. 2. Informatikai alapismeretek hardver

Programozási nyelvek Java

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

Függőség injekció Konstantinusz Kft 2010

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Gyakorlati vizsgatevékenység A

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

BlackBerry Professional Server szoftver

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Smart Pointer koncepciója

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

Egyetemi könyvtári nyilvántartó rendszer

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Objektumorientált programozás C# nyelven

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

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

HÍRLEVÉL HASZNÁLATI ÚTMUTATÓ

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

C++ programozási nyelv

Tájékoztató. Használható segédeszköz: -

Feladat kezelő modul

Átírás:

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA Dr. Iszály György Barna

KOMPONENSEK KÖZÖTTI KOMMUNIKÁCIÓ Minden Androidos alkalmazás a saját Dalvik virtuális gépén fut Így az alkalmazások elkülönülnek egymástól, biztosítva ezzel az adatok és processzek védelmét. Az alkalmazásainknak valamilyen módon kommunikálniuk kell egymással, Az intent elemek segítségével valósíthatjuk meg Az intent-ek az Intent osztály példányai Az intent események vagy műveletek absztrakt leírását tartalmazza Az intent közvetítése mindig az operációs rendszeren keresztül történik.

KOMPONENSEK HÍVÁSA A Context.startActivity() vagy Activity.startActivityForResult() csak Activity-k fogadhatják. A Context.startService() vagy Context.bindService() csak Service-ek fogadhatják. A Context.sendBroadcast(), Context.sendOrderedBroadcast() vagy Context.sendStickyBroadcast() csak broadcast reciever-ek fogadhatják. Az Android rendszer keresi meg az adott típusú intent-hez a fogadására képes komponenst Szükség esetén példányosítja és elindítja a komponenst, és átadja neki az információkat A meghívott komponens nem csak az adott alkalmazás eleme lehet, hanem bármilyen más alkalmazás modulja is. Saját alkalmazásainkat is fel tudjuk készíteni más alkalmazásokból küldött intent-ek fogadására.

INTENT OBJEKTUMOK Az intent objektum nem más, mint egy információs csomag Részei: Komponens név Annak a komponensnek a neve, amelynek kezelnie kell az intentet. Ez tulajdonképpen egy ComponentName osztály béli objektum, ami a célkomponens minősített osztálynevének (pl.: hu.nyf.pelda.app.peldaactivity) és a komponenst tartalmazó alkalmazás csomagnevének az együttese. Akció A bekövetkezett eseményt, vagy az általunk kiváltandó eseményt azonosítja. Az intent ezen része határozza meg, hogy milyen egyéb adat és extra mezők kapcsolódnak majd az intent-hez. Példaképen a leggyakoribb akciók közül: ACTION_CALL (célkomponens: activity) Egy hívást kezdeményez az adatmezőben átadott telefonszám irányába. ACTION_MAIN (célkomponens: activity) Elindítja a kezdő activity-t. Nincs se bemenő, se kimenő adata. ACTION_BATTERY_LOW (célkomponens: broadcast receiver) Az alacsony töltöttségi szintre figyelmeztet. ACTION_SCREEN_ON (célkomponens: broadcast receiver) A képernyőt bekapcsolták.

INTENT OBJEKTUMOK Adat Az eseményhez tartozó adat URI-jét és MIME28 típusát tartalmazza. Bár sok esetben az adat URI-jéből egyértelműen következik az adat típusa, mégis sok esetben nem csak az adat URI-jét, de az adat típusát is ismernünk kell, hogy helyesen kezeljük az intentet. Az adat típusát a MIME típussal adhatjuk meg. Az adatokra vonatkozó információkat mi magunk is beállíthatjuk és lekérdezhetjük a következő metódusokkal: setdata() az adat URI-jét adhatjuk meg vele settype() a MIME típus adható meg vele setdataandtype() az URI és MIME típus együtt adható meg vele getdata() az adat URI-je kérdezhető le vele gettype() az adat MIME típusa kérdezhető le vele

INTENT OBJEKTUMOK Kategória További információkat tartalmaz az intent-et feldolgozó komponens típusáról. Kategóriából egyszerre több is megadható. A kategóriák leírásai az intent osztályban lettek elhelyezve. Példa a kategóriákra: CATEGORY_HOME Ez az első activity, amely a rendszer indítása után végrehajtódik. CATEGORY_BROWSABLE Azoknak az alkalmazásoknak, melyek biztonságosan meghívhatóak a webböngészőkből, azoknak támogatniuk kell ezt. Extrák Olyan további kulcs-érték párokat tartalmaz, amelyeket az intent kezelő komponenshez kell eljuttatni. Ezekből akár több is lehet. A kulcs-érték párokat beállíthatjuk és visszaolvashatjuk a put () és get () metódusok sorozatával, de úgy is, mint egy Bundle objektumot, felhasználva a putextras() és getextras() metódusokat.

ACTIVITY INDÍTÁSA EXPLICIT INTENT A startactivity() metódussal Bemenő paraméter: Intent Explicit intent pontosan tudjuk melyik activity-t akarjuk meghívni Saját alkalmazásunk egy másik activity-jének meghívása az intent konstruktorában át kell adni az alkalmazás környezetet a getapplicationcontext() metódussal és az indítandó activity osztály nevét a class kiterjesztéssel. Más alkalmazásból való activity elindítása a külső alkalmazás pontos csomagnevét kell megadnunk az alkalmazás környezet attribútumaként

PÉLDA ACTIVITY INDÍTÁSÁRA Saját Activity indítása Intent relative_hivas=new Intent(getApplicationContext(), RelativeActivity.class); startactivity(relative_hivas); Külső Activity indítása Intent hivasextra=new Intent(); hivasextra.setaction(intent.action_send); hivasextra.setclassname("nyf.hu.animaciok", "nyf.hu.animaciok.animacioactivity"); hivasextra.putextra(intent.extra_text, "Ez az elküldött szöveg"); hivasextra.settype("text/plain"); startactivity(hivasextra);

ACTIVITY INDÍTÁSA IMPLICIT INTENT Nem kell pontosan tudnunk melyik alkalmazást akarjuk meghívni Azt kell tudnunk milyen akciót szeretnénk végrehajtatni alkalmazásunkkal Ilyenkor az elvárt akciót kell megadnunk kiegészítve a hozzá tartozó adatokkal Az Intent adat mezőjével Az Intent Extra Bundle-jének feltöltésével Az operációs rendszer fogja megkeresni számunkra a kérés kiszolgálásához legmegfelelőbb alkalmazást Ha nincs egyetlen megfelelő alkalmazás az ActivityNotFoundException kivételt eredményez Ha több lehetséges alkalmazás is a rendelkezésünkre áll, akkor a felhasználónak kell döntenie, hogy melyiket alkalmazza.

PÉLDA ACTIVITY INDÍTÁSÁRA Implicit Intenttel Intent fotokeszites=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startactivityforresult(fotokeszites, 1);

ACTIVITY INDÍTÁSA VISSZATÉRÉSI ÉRTÉKKEL startactivityforresult() - információval tér vissza a hívott alkalmazás befejeződése után Paraméterei: Intent Kérés azonosító egész szám A meghívott activity-ben a setresult() metódussal állíthatjuk be a visszaadandó adatokat. visszatérési kód RESULT_CANCELED RESULT_OK Intent objektum a visszaadandó adatokkal finish() metódus hívására az activity befejezi a működését A hívó oldalon az onactivityresult() metódussal dolgozhatjuk fel a visszaadott adatokat