Upload
peter-maas
View
1.059
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Introduction to the Android platform
Citation preview
Agenda
• Wat is Android • Waarom Android• Waaruit bestaat een applicatie• Zelf aan de slag / voorbeelden
Wat is het
• Een modern operating systeem voor mobiele apparaten• Linux kernel 2.6 • Java 5 compatible VM• Open Source• Google / Open Handset Alliance
Waarom is het interessant?
• Open platform• Niet device gebonden• Open Source (http://android.git.kernel.org/)• Java• Mobiel!
de android stack
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
applicaties
myapp.apkéén of meer activitiesAndroidManifest.xml
ViewsLayouts
Intents & IntentReceiversPermissies
ServicesNotifications
Content providers
Een applicatie is dus een verzameling activities die
gebruik maken van services, beschikken over resources en
praten met de hardware.
Activity lifecycle
views
• 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
controllers en sensors
• GPS• Beweging• Kompas• Camera• Thermometer
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)
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
voorbeeld: Hello World!
voorbeeld: tw33t0r
• messaging client• maakt gebruik van de twitter api• background service voor notificaties• offline storage in SQLLite
==> www.tw33t0r.com
Cool:
Wikitude AR Travel Guide: http://www.youtube.com/watch?v=tpaJBu4BEuA
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