Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Távközlési és Médiainformatikai Tanszék Android Market - App fejlesztés Soós Ádám Timár István
2/35 Az Android története Az Android egy Linux kernel alatt futó, mobil operációs rendszer vagy mobil platform Fejlesztését az Android Inc. cég kezdte 2003- ban. Ezt a kis, induló céget vásárolta fel 2005-ben a Google Igazi változást az Open Handset Alliance (OHA) konzorcium 2007-es megalakulása jelentette.
3/35 Android OHA (Open Handset Alliance) egy 79 tagból álló üzleti szövetség, amelynek célja nyílt szabványok létrehozása mobileszközök számára. A konzorcium tagja többek között a Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile és az Nvidia.
4/35 Android A rendszer alapja egy átalakított monolitikus Linux kernel, ami képes kezelni a mobil eszközök hardvereit (érintőképernyő, WiFi, Bluetooth, stb ) Egy flexibils, könnyen frissíthető rendszer Ez a kis méretű kernel adja a memória kezelését, a folyamatok ütemezését és az alacsony fogyasztást elősegítő teljesítmény-kezelést is. Miután a Google megszerezte az Android Inc.-t, a fejlesztés kicsit más irányt vett, ugyanis a Linux kernel fölé Java alapú virtuális gép került, ami az alkalmazások futtatásáért és a felhasználói felület kezelésért felelős.
5/35 Android verziók Android 1.0 (Apple pie) T-Mobile G1 (amit a HTC gyártott) 2008. október 21-én került kiadásra Android 1.1 (Banana bread) Android 1.5 (Cupcake) Az első olyan verzió ami szélesebb körben is elterjedt Android 1.6 (Donut)
6/35 Android verziók Android 2.0 és 2.1 (Eclair) Ezzel a verzióval debütált a Motorola Droid (ami az első igazán sikeres Androidos telefon) és később a Nexus One. Android 2.2 (Froyo) Android 2.3 (Gingerbread) Android 3.0 és 3.1 (Honeycomb) Ez az első (és az utolsó) olyan verzió, ami nem fut telefonokon Android 4.0 (Ice Cream Sandwich) A rendszer ma hozzávetőlegesen 12 millió sornyi programkódból áll
7/35 Android verziók
8/35 Android alkalmazás fejlesztés Programozás nélkül Programozással
9/35 Fejlesztés kódolás nélkül Az App Inventor használatával a böngészőnkön keresztül egy apró program feltelepítése után könnyedén fejleszthetünk androidos alkalmazást Tulajdonképpen nem kell mást tennünk, mint egyfajta puzzle-ként összeilleszteni a megfelelő funkciókat, s végül az elkészítés gombra kattintani.
10/35 Fejlesztés kódolás nélkül
11/35 Fejlesztés kódolás nélkül Előny: Tulajdonképpen nulla sor kódot kell ahhoz írnunk, hogy egy működő alkalmazást kapjunk Fejlesztés közben azonnal látjuk az alkalmazás változásait a készülékünkön Hátrány: A böngészőben igen nehézkesen működik a tervező nézet, gyakran nem is frissíti önmagát Egy komplex alkalmazást eléggé nehézkesen lehet grafikusan megtervezni benne
12/35 Fejlesztés kódolással
13/35 Fejlesztés - kódolással Szükséges programok: Java Runtime Environment Eclipse + Android Development Tools Android SDK http://developer.android.com és rengeteg eszköz segíti a fejlesztést
14/35 Platform felépítése
15/35 Android SDK Java nyelven történik a fejlesztés Felületek grafikusan is megtervezhetőek, egyébként XML Rengeteg példakód és egyéb segítség a programoznak Nagyon jó dokumentációk
16/35 Android NDK Android Native Development Kit C/C++ kódrészleteket futtathatunk az alkalmazásunkban Gyorsabb kódokat eredményezhet (de komplexebbeket is) Saját library-k használhatók az alkalmazásban
17/35 Eclipse + ADT Eclipse plugin Androidos alkalmazások fejlesztésére Felület tervező nézet (XML) On Device fejlesztési lehetőség Emulátor támogatás DDMS nézet a fejlesztéshez
18/35 DDMS - Dalvik Debug Monitor Server Debug eszköz Eclipse külön nézettel LogCat Memória és processzor információk Képernyőkép mentés Hívás és SMS kezelés (virtuálisan) Helymeghatározás (pozíció megadása)
19/35 DDMS
20/35 Android AVD Manager
21/35 HelloWorld! Androidon public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } }
22/35 Fontosabb alkalmazás komponensek Activity Service Contetn Provider Broadcast Reciever
23/35 Activity Maga az UI Egy alkalmazás több különálló Activity-ből azaz felületből épül fel Általában minden felület külön Activity
24/35 Service Háttérben futó feladat Nincs felhasználói felülete Általában, hosszabb számításigényes feladatokra Activity indíthatja vagy csatlakozhat hozzá
25/35 Content Provider Más alkalmazások is hozzáférhetnek az adatokhoz És módosíthatják is azokat Az adat tárolása lehet fileban,adatbázisban, vagy egyéb perzisztens adattárban, amihez az alkalmazás hozzáfér Például telefonkönyv adatai, naptár
26/35 Broadcast Reciever Rendszerszintű eseményekre reagál Saját alkalmazás is küldhet ilyen üzeneteket Nem rendelkezik felülettel, jellemzően valamilyen figyelmeztetéssel tájékoztat Elindíthat egy másik komponenst is
27/35 Felület tervezés XML fájlok definiálják a felületet Eclipse alatt erre grafikus editor van a segítségünkre (drag&drop jelleggel összerakhatók a felületek) Rengeteg gyári felületi elem létezik, a legtöbb alkalmazás ezekből épül fel Saját felületelemeket is lehet definiálni
28/35 Felület tervezés
29/35 Manifest állomány Alkalmazás leíró, definiálja az alkalmazás komponenseit XML formátum Minimálisan elvárt Android verzió Futtatás előtt ellenőrzi a rendszer, hogy megfelelőek-e a követelmények
30/35 Az apk fájl tartalma Az Android SDK lefordítja a kódot és az erőforrás állományokkal együtt egy tömörített apk állományba helyezi el Lefordított class-ok Erőforrások: pl képek vagy egyéb fájlok Manifest fájl Hitelesítő aláírások Az apk fájt a készülékeken telepíteni lehet és tartalma megtekinthető
31/35 Alkalmazás aláírása Minden alkalmazást alá kell írni valamilyen kulccsal enélkül nem telepíthető az alkalmazás Automatikusan az Android Debug Key-el történik az aláírás Minden fejlesztő saját hitelesítő kulcsot készíthet és ezzel aláírhatja az alkalmazást
32/35 Az elkészült program Az elkészült programból az Eclipse egy apk fájlt generál. Feltölthetjük a Market-re (csak aláírtan) Weboldalakon terjeszthetjük QR-kód segítségével
33/35 QR-kód A QR kód egy kétdimenziós vonalkód, melyet a legtöbb okostelefon képes értelmezni Japán Denso-Wave cég fejlesztett ki 1994- ben Behívja a kód mögötte lévő weboldal urljét, telefonszámot vagy szöveget
34/35 QR-kód
35/35 Android QR kód MÁV