Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Bevezetés az Android világába             Gerháth Gábor       Gabor.Gerhath@logmein.com
Miről is lesz szó?• Android fejlesztés előnyei-hátrányai, felépítése• Fejlesztői környezet kialakítása• Programunk felépít...
Miért éri meg Androidra fejleszteni?• Sok felhasználó, több mint 300 millió eladott eszköz• Legnagyobb piaci részesedés az...
Miért nem éri meg rá fejleszteni? Készülékek:                                   OS verziók:Képernyő méretek és felbontáso...
Architektúra-Futtatható programok-App Widget-ek-   Operációs rendszer    programjai-   Dalvik Virtual    Machine (.dex fáj...
C/C++ támogatásAndroid Native Development Kit (NDK):• Támogatott könyvtárak (legismertebbek):       - libc (C library) hea...
Fejlesztői környezet telepítése•   Támogatott platformok: Windows, Linux, Mac•   Java JDK telepítés (minimum 1.6)•   Eclip...
Új projekt létrehozása Eclipse-benFile  New  Android Project„Project” név megadása„Bulid Target” megadása (kötelező) :  ...
Projekt fájlok:•   Forrásfájlok, „package”-ekbe rendezve•   R.java: automatikusan generált fájl       Célja: a program fut...
AndroidManifest.xmlA programunk központi jegyzékeA felhasználótól kért jogok listája  - CAMERA  -   INTERNET  -   SET_WALL...
Az alkalmazás (app) komponensei              Activity    Egy activity egy képernyőt                         Service       ...
Activity életciklusa:                        Egy program több activity-t is tartalmazhat:                    Minden progra...
LayoutsLayout = konténer, ami összefoglalja a képelemeket, különböző szabályok szerint.LinearLayout (vertical)   Tablelayo...
Layouts (2)• Különböző képernyő méretekhez és típusokhoz  alkalmazkodás:    - px: pixel szám    - „dp” vagy „dip”:    (den...
Layouts (3)Szerkeszthető, létrehozható:Grafikusan / xml szerkesztővel:Programkódból:                                  15
Projekt tuning• Design – felhasználó barát app    - Képek, animációk• App widget• GoogleAnalytics                         ...
Képek/res/drawable-... Könyvtár (dpi szerintcsoportosítva)     Nine-patch kép:          - Alkalmas tetszőleges méretű nyúj...
App WidgetsKicsi alkalmazás, periodikus frissítéssel.Pl: időjárás widget, óra widget     - Két fajtája van:          - Pro...
App Widgets (2)Két feltétel kell a létrehozásához:   - AppWidgetProvider típusú osztály: hasonló életciklus   mint egy ser...
GoogleAnalytics• Web-fejlesztőknek már biztosan ismerős...• Célja: a felhasználót minél jobban megismerjük• Anonim adatok ...
Ha valamit elrontottunk... DebugEclipse LogCat használatávalBreakpoint elhelyezésével    - Ugyanolyan jól működik, mint bá...
Dalvik Debug Monitor ServerRendszerjellemzők, screenshot készítésIndítása: # ddms                                         22
Előkészületek a kitöltésre• Debug és logolás kikapcsolása• Generált projektfile-ok törlése• Engedélyek felülvizsgálata, ve...
Tesztelés, kitöltés• Elsősorban készülékeken, (80/20-as szabály  alkalmazásával, a többin csak „villámteszt”)• AVD (Androi...
Pénzügyek...• Egyszeri app vásárlás (kb 1 éve lehet itthonról  forintban fizetni)• Alkalmazáson belüli vásárlás (in-app bi...
Hasznos parancsok# adb connect <IP_address>:port# adb devices# adb install –r <App_neve>.apk# adb uninstall <Package_name>...
ÉrdekességekGoogleTV –re fejlesztés:   - Most még kicsi piac, de nem szabad   elfelejtenünkTesztelési tapasztalat:   - A h...
Érdekességek (2)Használatunk-e magasabb API szintű metódust, mint ajelenleg használt?   Válasz: Igen, java.lang.reflect –e...
Érdekességek (3)Egyedi OS verziók támogatása:    Pl: Cyanogen, MIUI, Codename, ...    App fejlesztés szempontjából másodla...
ÖsszefoglalóNagy lehetőségek, nagy kihívások, de nem „Amegváltó” mobil operációs rendszer (egyiksem az..)Érdemes belevágni...
Hasznos linkekKeress, olvass, kérdezz. Legjobb barátod a google... Referencia: http://developer.android.com/index.htmlFór...
Köszönöm a figyelmet!    Kérdések?
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
Self Development
Next
Download to read offline and view in fullscreen.

1

Share

Download to read offline

Android fejlesztés

Download to read offline

Hogyan gazdagodj meg a munkádból? Légy Te is őstermelő! Irány a piac!

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Android fejlesztés

  1. 1. Bevezetés az Android világába Gerháth Gábor Gabor.Gerhath@logmein.com
  2. 2. Miről is lesz szó?• Android fejlesztés előnyei-hátrányai, felépítése• Fejlesztői környezet kialakítása• Programunk felépítése, építőelemei• App widget, GoogleAnalytics• Tesztelés• Publikálás a Play Store-ban• Érdekességek 2
  3. 3. Miért éri meg Androidra fejleszteni?• Sok felhasználó, több mint 300 millió eladott eszköz• Legnagyobb piaci részesedés az okostelefon piacon:• Mindig tanulhatsz valami újat...  3
  4. 4. Miért nem éri meg rá fejleszteni? Készülékek: OS verziók:Képernyő méretek és felbontások: 4
  5. 5. Architektúra-Futtatható programok-App Widget-ek- Operációs rendszer programjai- Dalvik Virtual Machine (.dex fájlok futásidejű fordítása)- C/C++ könyvtárak (Android NDK)- Gyártók architektúrájára épülő linux kernel (2.6-os verziótól indult, jelenleg a 3.4-est, tervezik ) 5
  6. 6. C/C++ támogatásAndroid Native Development Kit (NDK):• Támogatott könyvtárak (legismertebbek): - libc (C library) headers - media framework - JNI interface headers - OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers - SQLite - ...• Támogatott architektúrák: - ARMv5 - ARMv7 pl: Nexus S, LG Optimus 2X, Aus Eee Transformer Prime (Tegra2 & Tegra3) - X86 - MIPS• Buildeléshez: ANT• Megjegyzés: tök jó, lehet is használni, de csak ha „indokolt”... 6
  7. 7. Fejlesztői környezet telepítése• Támogatott platformok: Windows, Linux, Mac• Java JDK telepítés (minimum 1.6)• Eclipse (esetleg Netbeans) letöltése: Google az Eclipse-t ajánlja• Android Software Development Kit (SDK) telepítése: Ebből azt az SDK-t kell elsősorban amit használni akarunk. Letöltjük, kicsomagoljuk, hozzáadjuk az számítógép OS path-hoz Visszafele kompatibilitással nincs gond, a régebbi API-val készített apk jól fut magasabb API szinten• Android Developer Tools (ADT) plugin telepítése• Android Virtual Device (AVD) emulátor• Android NDK telepítése• Usb driver 7
  8. 8. Új projekt létrehozása Eclipse-benFile  New  Android Project„Project” név megadása„Bulid Target” megadása (kötelező) : - Android 4.03 (Android SDK 4.0.3 -as) - Google APIs (Android SDK 4.0.3-as + Google szolgáltatások (pl: GPS, Media API, 3D grafika))„Package” név kitöltése (kötelező): - Érdemes jó nevet választani, ami egyedi és az alkalmazás életciklusára jó lesz„Create Activity” beállítása (opcionális): - Akkor kell, ha szeretnénk egy képernyőt (user interface) a programunkhoz. - Ha nincs, akkor ez gyakorlatilag egy csak a háttérben futtatható program lesz. 8
  9. 9. Projekt fájlok:• Forrásfájlok, „package”-ekbe rendezve• R.java: automatikusan generált fájl Célja: a program futásának gyorsítása• Android API jar• Dependecies mappa: annotations.jar• Anim• Drawable könyvtárak• Layout könyvtárak• Strings• AndroidManifest.xml• Proguard.cfg• Project.properties 9
  10. 10. AndroidManifest.xmlA programunk központi jegyzékeA felhasználótól kért jogok listája - CAMERA - INTERNET - SET_WALLPAPER - WRITE_CONTACTS - ...Hol és mit használunk - Activity, Service beregisztrálása - Api verzió - Hardware komponensek használataReceivers: - SMS, Akkumulátor állapot... 10
  11. 11. Az alkalmazás (app) komponensei Activity Egy activity egy képernyőt Service mutat (általában) Nincs hozzárendelt képernyő Kapcsolat a felhasználói Háttérben fut felülettel Content Provider Intent/Broadcast Receiver Adatokat tesz közzé más Fogadja és feldolgozza a programok számára broadcast intent objektumot SQLite adatbázisba, fájlba Indíthat Activity-t, de külön ment UI nincs hozzá Pl: Névjegyzék Intent: aszinkron üzenet/objektum (tartalma: ki, mit, hogyan) 11
  12. 12. Activity életciklusa: Egy program több activity-t is tartalmazhat: Minden program (app) külön VM-en fut, külön linux rendszer azonosítóval (process ID) A rendszer állítja be az app jogosultságait (milyen szolgáltatáshoz, milyen fájlokhoz) Memória felszabadítás GC-vel (garbage collector) történik 12
  13. 13. LayoutsLayout = konténer, ami összefoglalja a képelemeket, különböző szabályok szerint.LinearLayout (vertical) Tablelayout RelativeLayout FrameLayoutAbsoluteLayout 13
  14. 14. Layouts (2)• Különböző képernyő méretekhez és típusokhoz alkalmazkodás: - px: pixel szám - „dp” vagy „dip”: (density-independent), viszonyszám 160dpi (dots per inch) esetén 1 dp = 1 px; - sp: (scale-independent), viszonyszám betűknél ezt használjuk - Többi (nagyon ritkán használt): pt, mm, in• Telefon vagy tablet vagy TV? 14
  15. 15. Layouts (3)Szerkeszthető, létrehozható:Grafikusan / xml szerkesztővel:Programkódból: 15
  16. 16. Projekt tuning• Design – felhasználó barát app - Képek, animációk• App widget• GoogleAnalytics 16
  17. 17. Képek/res/drawable-... Könyvtár (dpi szerintcsoportosítva) Nine-patch kép: - Alkalmas tetszőleges méretű nyújtásra - Kiterjesztése: .9.pngHibalehetőségek: • Rosszul elhelyezett szélső csíkok • A fekete csík nem fekete... 17
  18. 18. App WidgetsKicsi alkalmazás, periodikus frissítéssel.Pl: időjárás widget, óra widget - Két fajtája van: - Programba beépített - Önállóan is működikKötelező a minimális Widgetméretek (szélesség és magasság)meghatározása - Minimum méret követelmény: 70 × n − 30 n: a cellák számaFrissítés gyakorisága: javasolt a 30 percenkénti, ha annálgyakoribb akkor inkább AlarmManagert használjunk erre, akkumulátorüzemidő növelése miatt. 18
  19. 19. App Widgets (2)Két feltétel kell a létrehozásához: - AppWidgetProvider típusú osztály: hasonló életciklus mint egy service vagy activity - AppWidgetProviderInfo: minimális méret, frissítési periódus, xml fájlHárom layout támogatott: - FrameLayout - LinearLayout - RelativeLayout 19
  20. 20. GoogleAnalytics• Web-fejlesztőknek már biztosan ismerős...• Célja: a felhasználót minél jobban megismerjük• Anonim adatok gyűjtése, majdnem real-time: Népességi Új és visszatérő felhasználók Használat időtartama UI felületek Android OS verzió Telefonok, tabletek típusa, tulajdonságaik• Grafikonok, ábrák készítése (főleg menedzsereknek) 20
  21. 21. Ha valamit elrontottunk... DebugEclipse LogCat használatávalBreakpoint elhelyezésével - Ugyanolyan jól működik, mint bármely más fejlesztő környezetbenMegjegyzés: C/C++ kód csak rootolt készüléken (vagy AVD-ben)debuggolható! 21
  22. 22. Dalvik Debug Monitor ServerRendszerjellemzők, screenshot készítésIndítása: # ddms 22
  23. 23. Előkészületek a kitöltésre• Debug és logolás kikapcsolása• Generált projektfile-ok törlése• Engedélyek felülvizsgálata, verzió kód, és név megadása• Build készítés eclipse vagy ant segítségével - Release-key használata! 23
  24. 24. Tesztelés, kitöltés• Elsősorban készülékeken, (80/20-as szabály alkalmazásával, a többin csak „villámteszt”)• AVD (Android Virtual Device): (igazából szükség- megoldás) - Számtalan hardware és szoftver kombináció, mint az életben... - Szenzorok?• Figyelni a felhasználói visszajelzésekreKitöltés:• Promóciós anyagok megadása:• Applikációról képek, videók, logók, leírás• Kategória (játék, sport...) és tartalom besorolás (mindenkinek, „csak felnőtteknek”...) 24
  25. 25. Pénzügyek...• Egyszeri app vásárlás (kb 1 éve lehet itthonról forintban fizetni)• Alkalmazáson belüli vásárlás (in-app billing)• Havi vagy éves díj a program használatáért (in-app subscription)(Szolgáltatókon keresztüli fizetés is lehetséges (csak néhány nagyszolgáltatóval kötöttek szerződést, Amerikában, Japánban...)) 25
  26. 26. Hasznos parancsok# adb connect <IP_address>:port# adb devices# adb install –r <App_neve>.apk# adb uninstall <Package_name># adb shell# aapt d badging <App_neve>.apk... 26
  27. 27. ÉrdekességekGoogleTV –re fejlesztés: - Most még kicsi piac, de nem szabad elfelejtenünkTesztelési tapasztalat: - A hibák többsége a layouttal kapcsolatos Pl: billentyűzet problémák, fókuszvesztés, layout elcsúszások 27
  28. 28. Érdekességek (2)Használatunk-e magasabb API szintű metódust, mint ajelenleg használt? Válasz: Igen, java.lang.reflect –et támogatja az Android Mindig ellenőrizni, hogy lehet-e egyáltalán (API level) Nincs segítség az eclipse-től, pontosan tudnunk kell mit akarunk. Pl: Method m = YourClass.class.getMethod("method_name",new Class[] { Integer.class }); m.invoke(null, 1234); 28
  29. 29. Érdekességek (3)Egyedi OS verziók támogatása: Pl: Cyanogen, MIUI, Codename, ... App fejlesztés szempontjából másodlagosakOS Verziók: 29
  30. 30. ÖsszefoglalóNagy lehetőségek, nagy kihívások, de nem „Amegváltó” mobil operációs rendszer (egyiksem az..)Érdemes belevágni, mert csak nyerhettekvele!  30
  31. 31. Hasznos linkekKeress, olvass, kérdezz. Legjobb barátod a google... Referencia: http://developer.android.com/index.htmlFórumok: - http://www.anddev.org/ - http://stackoverflow.comOnline Android OS forrás:http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/ 31
  32. 32. Köszönöm a figyelmet! Kérdések?
  • JnosTamsKis1

    Apr. 20, 2017

Hogyan gazdagodj meg a munkádból? Légy Te is őstermelő! Irány a piac!

Views

Total views

2,060

On Slideshare

0

From embeds

0

Number of embeds

13

Actions

Downloads

22

Shares

0

Comments

0

Likes

1

×