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
2012.03.01.
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 2003ban. 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
2012.03.01.
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
2012.03.01.
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
2012.03.01.
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
2012.03.01.
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
2012.03.01.
8/35
2012.03.01.
Android alkalmazás fejlesztés Programozás
nélkül Programozással
9/35
2012.03.01.
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
2012.03.01.
Fejlesztés – kódolás nélkül
11/35
2012.03.01.
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
2012.03.01.
13/35
2012.03.01.
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
2012.03.01.
15/35
2012.03.01.
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
2012.03.01.
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
2012.03.01.
18/35
2012.03.01.
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
2012.03.01.
20/35
Android AVD Manager
2012.03.01.
21/35
2012.03.01.
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
2012.03.01.
23/35
2012.03.01.
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
2012.03.01.
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
2012.03.01.
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
2012.03.01.
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
2012.03.01.
28/35
Felület tervezés
2012.03.01.
29/35
2012.03.01.
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
2012.03.01.
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
2012.03.01.
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
2012.03.01.
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
2012.03.01.
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 1994ben Behívja a kód mögötte lévő weboldal urljét, telefonszámot vagy szöveget
34/35
QR-kód
2012.03.01.
35/35
Android – QR kód – MÁV
2012.03.01.