Download - Android
![Page 1: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/1.jpg)
![Page 2: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/2.jpg)
Agenda
• Wat is Android • Waarom Android• Waaruit bestaat een applicatie• Zelf aan de slag / voorbeelden
![Page 3: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/3.jpg)
Wat is het
• Een modern operating systeem voor mobiele apparaten• Linux kernel 2.6 • Java 5 compatible VM• Open Source• Google / Open Handset Alliance
![Page 4: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/4.jpg)
Waarom is het interessant?
• Open platform• Niet device gebonden• Open Source (http://android.git.kernel.org/)• Java• Mobiel!
![Page 5: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/5.jpg)
de android stack
![Page 6: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/6.jpg)
![Page 7: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/7.jpg)
Java Framework
• J2SE ipv J2ME • Dalvik VM: snelle register gebaseerde VM
o eigen bytecode (.java => .class => .dex)o geen JIT
• modular app architecture o screens & services ipv black boxes
• Andere applicaties als 'service' benaderbaar• Apps draaien in hun eigen proces• Achtergrond processen (!!) • Alternatieve frameworks mogelijk
![Page 8: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/8.jpg)
applicaties
![Page 9: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/9.jpg)
myapp.apkéén of meer activitiesAndroidManifest.xml
ViewsLayouts
Intents & IntentReceiversPermissies
ServicesNotifications
Content providers
![Page 10: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/10.jpg)
Een applicatie is dus een verzameling activities die
gebruik maken van services, beschikken over resources en
praten met de hardware.
![Page 11: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/11.jpg)
Activity lifecycle
![Page 12: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/12.jpg)
views
![Page 13: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/13.jpg)
• Rijke Java UI API o layouts en widgets
• Gericht op 'maatwerk' o inherit and override a base
widgetso combine existing widgets o fully draw yourself
View::onDraw(Canvas canvas)
o 9-Patch Bitmaps • Ontworpen voor 'alternatieve'
controllers o padmode, touchmode o context menu with a long touch
• Animation framework • OpenGL • Framework voor preferences• Skinning
![Page 14: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/14.jpg)
controllers en sensors
![Page 15: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/15.jpg)
• GPS• Beweging• Kompas• Camera• Thermometer
![Page 16: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/16.jpg)
Performance?
• Objecten maken is duur• Pas op je scopes!• Variabelen goedkoper dan object fields (bijv: array.length)• Final, final, final!• Virtual ipv Inteface (ArrayList list = new ArrayList()) • Geen getters en setters... maak instance viariabelen final en
public• Native methods waar mogelijk (substring, indexOf)
![Page 17: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/17.jpg)
Aan de slag
• installeer JDK 1.5 • installeer Android SDK
o Tooling zoals debugger, file sync, screen dumpero Emulatoro Eclipse design plugins
• installeer eclipse • bekijk SDK docs • bekijk de voorbeelden en API demos
o let op, véél voorbeelden op het web gebruiken oudere versies van de SDK
![Page 18: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/18.jpg)
voorbeeld: Hello World!
![Page 19: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/19.jpg)
voorbeeld: tw33t0r
• messaging client• maakt gebruik van de twitter api• background service voor notificaties• offline storage in SQLLite
==> www.tw33t0r.com
![Page 20: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/20.jpg)
![Page 21: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/21.jpg)
Cool:
Wikitude AR Travel Guide: http://www.youtube.com/watch?v=tpaJBu4BEuA
![Page 22: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/22.jpg)
![Page 23: Android](https://reader036.vdocuments.site/reader036/viewer/2022081403/5562f735d8b42a62598b475d/html5/thumbnails/23.jpg)
Owja, de Android Market...
• Bestaat sinds oktober '08• Sinds februari '09 betaalde apps in de US/UK
o Google Checkout system • $25 registration fee per developer • developer krijgt 70% van de verkopen • prijs moet tussen $0.99 - $200
o geen "I'm rich!"-apps • 13 jaar of ouder• Geld terug binnen 1 dag• Geen 'explicit' content • Upgrade systeem • User ratings • Uninstall percentage