Top Banner
Szoftverfejlesztés a Google Android OS-re (Android 3.0, API level 11) Dudás András 2011 30 percben!
14

AndroidEA

Apr 04, 2018

Download

Documents

Katona Tamás
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 1/14

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

Dudás András2011

30 percben!

Page 2: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 2/14

Tartalom

● Egy alkalmazás alapjai, alapvető építőkövek

● Fejlesztés mikéntje

● Technológia áttekintés

● Projektek, számonkérés

● További infó, elérhetőség

Page 3: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 3/14

 Az Android OS felépítése

Page 4: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 4/14

Egy alkalmazás alapjai I.

Activity● Egy képernyőnyi információ /

interakciós lehetőség prezentálására – Megoldható több is, csak nem

 javasolt

“Egyéb”: – Broadcast receivers: rendszer és program üzenetekre reagáló komponens – Content providers: magasabb szintű perzisztencia – Intent: komponensek közötti interakció – Fragment: API Level 11, Activity “építőkocka” – Loader: API Level 11

Komponens szegregáció: miért?● Principle of least knowledge● Resource efficiency

Service● Az elemi perzisztencia

egysége● Activityk mögötti adattárolás,

koherens alkalmazás “magja”

A háttérben:● Minden alkalmazás:

● Külön userként● Külön processzként● Külön Dalvek VM-en fut

● IPC természetesen van, lásdIntent, lifecycle hívások, etc.

Page 5: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 5/14

Egy alkalmazásalapjai II.

Életciklusok:● Minden komponens különféle

callbackekkel kell rendelkezzen,ezeket a rendszer az életciklusbizonyos pontjain meghívja, és avisszatérésig vár

● Ezek határozzák meg aviselkedést a rendszereseményekfüggvényében, illetve adják megazon pontokat, amikor az adatokatperzisztálni kell.

● Az ide vonatkozó API referenciátkulcsfontossűgú megismerni!

Page 6: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 6/14

Egy alkalmazásalapjai III.

Adat perzisztencia:● Bizonyos helyzetekben

az Activity állapotamegsemmisülhet

● Erre megoldást kínál aBundle, és az

onSaveInstanceState()callback.● Vigyázat: ez a

mechanizmus nemmindig működik!

● Vannak jobb

megoldások, pl. Service(bár ezzel vigyázni kell),Content Provider.

Milyen adatot hová érdemes tenni? Milyen

adataink lehetnek?● Activity (Fragment) specifikus● Service specifikus● Alkalmazás specifikus● Távoli adat források, adatbázisok

Page 7: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 7/14

Egy alkalmazás alapjai IV.Komponensek közti kommunikáció:

● Intent, “szándék”● Tartalmaz:

Akció: “Mi a szándék. “● Pl. ACTION_MAIN elindíthatja az Activitynket mint az alkalmazás belépési

pontja.● Személetesebben, ACTION_DIAL

● Adat: “Min hajtsa végre a vevő a szándékot.”● Pl.: ACTION_CALL akció esetén lehet az adat egy URI, tel:06201337434

Kategória● A vevő komponensekre egy megkötés.● Pl. CATEGORY_LAUNCHER: jelenjen meg az adott Activity az OS fő

alkalmazás indító menüjében.● “Extrák”:● Flagek

● Lehet egy akció végrehajtási kérelme, vagy egy esemény megtörténtéről egyértesítés.

● A célbajuttatásuk módja, illetve a (potenciális) címzettek listája függ a “tipusától”● Implicit, explicit

● Nem secure: a szűrők (később) nem védenek meg attól, hogy “célba vegyenek”egy Intentel.

Page 8: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 8/14

Egy alkalmazás alapjai V.

XML konfigurációs állományok és szerepük:● AndroidManifest.xml

● Permission kérelmek● Pl. android.permission.READ_OWNER_DATA● Egyátalán mi az a permission?

● Min API Level (lásd később)● Servicek, Activityk, egyéb komponensek deklarálása

Intent szűrők, amikkel megadhatjuk, milyen Intentekre reagálhat az adottkomponens● Alkalmazás ikonja (res/drawable/icon.png)● Library link kérelmek

● Resourceok: (res/)● Layout (res/layout)

main.xml (“main” a Resource ID)● Az Activityk Viewjeinek viselkedés / kinézetleírása● Values (res/values)

● strings.xm (“strings” a Resource ID)● Egyszerű String->String map, az alkalmazás által használt szövegek

dependency injectionja, használható pl. lokalizációra

Page 9: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 9/14

Támogatott techonlógiák 

● Hang – MP3;MIDI;AAC LC/LTP;Ogg Vorbis;PCM/WAVE;HE-AACv1

(AAC+);HE-AACv2 (enhanced AAC+);AMR-NB,AMR-WB● Kép

 – JPEG;GIF,PNG,BMP● Videó

 –

MPEG-4 SP; H.263;H.264 AVC; VP8● 3D

 – OpenGL ES (NDK) – “Absztrakt”: RenderScript

● Kommunikáció: – Bluetooth, NFC, Wifi, USB

● Testing: – JUnit – MonkeyRunner

A lista nem teljes.

Page 10: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 10/14

3D részletesebben

● RenderScript “new” feature, 3.0 – Relative kevés információ – 3 fő eszköz

● ~C99 kód● CUDA szerű compute API● Az eredmény alkamazásba ágyazásának módszere

 – Absztrakt, mégis natív kód – 2 irányú kommunikáció adott – Korábban “zárt” volt – OpenGL ES alapú

● OpenGL ES – Részleges support az NDK segítségével – Gyors, picit talán jobban kitaposott, mint a RenderScript – OpenGL ES alapú

Page 11: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 11/14

Fejlesztési folyamat I.

“Konzolos” fejlesztés● Virtualizáció adott● Szükséges hozzá:

 – Android SDK – Ant

Eclipse SDK●

Virtualizáció adott● Szükséges hozzá:

 – Android SDK – Eclipse – Eclipse Android

Development Tools plugin

Natív kód integráció lehetséges: Android NDK, GNU Make, awk, Windows esetén Cygwin

Alapvetően minden Android alkalmazás a Dalvik VM alatt fut: JavaVM implementáció.Két fejlesztési megközelítés lehetséges:

Page 12: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 12/14

Fejlesztési folyamat II.

Eszközhasználat és virtualizáció:● Android Virtual Device (AVD): nagyon jól paraméterezhető, virtuális telefon

építhető vele, amin aztán tesztelni lehet. Némi hiányosság van, főleg aszenzorok terén.

● Android Debug Bridge (ADB): AVD vagy igazi telefonon történő teszteléshez.● Rengeteg opció, parancs, jól dokumentált

Kód API Level kiválasztása:● Mi az az API level? Hogyan korrelál az Android verziókkal?● A támogatott featureok nagy mértékben változnak a külömböző API szintek

között● Érdemes minél alacsonyabb szintet választani

AVD felépítése, API level kiválasztása:● A telefon API szintje létrehozásnál beállítható● Annyi AVD-t lehet készíteni amennyire futja tárhelyből● Egyszerre több AVD-t is lehet futtatni, és adott a lehetőség a kommunikációs

képességek letesztelésére, akár virtuálisan felhívhatják egymást● A hardware képességei is állíthatóak

Page 13: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 13/14

Projektmunka

NIPG projektek:Adott a lehetőség Android marketre kikerülésre, ELTE IP, ELTE-Softkeretein belül, bevétel részesedés.Max 2 hallgató / projekt.

4 Projekt: – Gyro és accelerometer adatgyűjtés (távoli adatbázisba), megjelenítés, akár

TDK is lehet.

 – Accelerometer + Dasher, adatgyűjtés

 – OpenCV fejegér Androidra (nehéz)

 – Menu dinamikus átrendezés használatnak megfelelően, “ajánló rendszer”.

Szabadon válaszott, egyeztetetett téma, vagy NIPG által megfogalmazott projekt

Aki ezeken jól teljesít, nyáron mobil hightech projektben részvételi lehetőség,nemzetközi projektben, fizetés, diplomunka, Msc 16 kredit adott.A téma játékfejlesztés, arcfelismerés, arckifejezés-felismerés.

Page 14: AndroidEA

7/29/2019 AndroidEA

http://slidepdf.com/reader/full/androidea 14/14

Az előadás letölthető:● A honapomról: dna.web.elte.hu● A tárgy honlapjáról:

pszt.inf.elte.hu/index.php/mobil-alkalmazasok-fejlesztese

● További információ:● Az SDK-t letöltve a samples könyvtárban rengeteg

érdekes példa van!● developer.android.com●

android-developers.blogspot.com● Sikeres ZH esetén [=)] tőlem, 4-729

Köszönöm a figyelmet!

További Információ