Android Development - Liacs

tearfuloilMobile - Wireless

Dec 10, 2013 (3 years and 10 months ago)

113 views

Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Android Development
Sven van Haastregt
Challenges in Computer Science Seminar
LIACS,Universiteit Leiden
Februari 2012
Sven van Haastregt
Android Development { CCSS2012 1/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Inhoud
1 Introductie
2 Development Environment
3 Programmeren voor Android
4 Demo
Sven van Haastregt
Android Development { CCSS2012 2/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Heuh?Android?
Open source platform voor smartphones.
Gebaseerd op Java en de Linux kernel.
Opgezet door Android,Inc.
In 2005 overgenomen door Google.
Draait o.a.op HTC,Samsung en LG
telefoons.
Sven van Haastregt
Android Development { CCSS2012 3/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Mobile Operating Systems
Marktaandeel wereldwijd van verschillende mobiele besturingssystemen:
Operating System
Vendor
Marktaandeel
Q3 2010
Q3 2011
Android
Google
25.5 %
N52.5 %
Symbian
Nokia
36.6 %
H16.9 %
iOS
Apple
16.7 %
H15.0 %
BlackBerry OS
Research In Motion
14.8 %
H11.0 %
Windows Mobile
Microsoft
2.8 %
H 1.5 %
Overig
3.6 %
H 3.1 %
Bron:Gartner,November 2010 - http://www.gartner.com/it/page.jsp?id=1466313
Gartner,November 2011 - http://www.gartner.com/it/page.jsp?id=1848514
Sven van Haastregt
Android Development { CCSS2012 4/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Wat doet een Mobile Operating System?
Een mobile OS doet in principe hetzelfde als een desktop OS,dus:
Stuurt hardware rechtstreeks aan.
Verantwoordelijk voor het opstarten en beheren van applicaties.
Biedt services aan applicaties,die het werk van een
applicatie-programmeur aanzienlijk vereenvoudigen.
Echter:(smartphone 6= desktop computer):
Beperkte processorkracht en opslagcapaciteit.
Stroomverbruik belangrijk (batterij).
Andere manier van interactie met gebruiker/omgeving (GSM,
touchscreen,camera,GPS,...).
Sven van Haastregt
Android Development { CCSS2012 5/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Dus wat is dat Android nou?
Sven van Haastregt
Android Development { CCSS2012 6/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Dus wat is dat Android nou?
Sven van Haastregt
Android Development { CCSS2012 6/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Dus wat is dat Android nou?
Sven van Haastregt
Android Development { CCSS2012 6/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Dus wat is dat Android nou?
Sven van Haastregt
Android Development { CCSS2012 6/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Mobile Applicaties
Een mobile applicatie wordt doorgaans een\app"genoemd.
Een mobile OS en mobile apps dienen ecient om te gaan met de
beperkte bronnen.
Liever geen lompe lussen (\busy wait super loops").
Gebruik new alleen als het niet anders kan.
Bedenk of oats/modulo's/delingen echt nodig zijn.
Q:Hoe programmeer je een mobile OS?
A:http://source.android.com/source/downloading.html
Q:Hoe programmeer je een Android app?
A:http://developer.android.com/en deze slides.
Sven van Haastregt
Android Development { CCSS2012 7/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Mobile Applicaties
Een mobile applicatie wordt doorgaans een\app"genoemd.
Een mobile OS en mobile apps dienen ecient om te gaan met de
beperkte bronnen.
Liever geen lompe lussen (\busy wait super loops").
Gebruik new alleen als het niet anders kan.
Bedenk of oats/modulo's/delingen echt nodig zijn.
Q:Hoe programmeer je een mobile OS?
A:http://source.android.com/source/downloading.html
Q:Hoe programmeer je een Android app?
A:http://developer.android.com/en deze slides.
Sven van Haastregt
Android Development { CCSS2012 7/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Mobile Applicaties
Een mobile applicatie wordt doorgaans een\app"genoemd.
Een mobile OS en mobile apps dienen ecient om te gaan met de
beperkte bronnen.
Liever geen lompe lussen (\busy wait super loops").
Gebruik new alleen als het niet anders kan.
Bedenk of oats/modulo's/delingen echt nodig zijn.
Q:Hoe programmeer je een mobile OS?
A:http://source.android.com/source/downloading.html
Q:Hoe programmeer je een Android app?
A:http://developer.android.com/en deze slides.
Sven van Haastregt
Android Development { CCSS2012 7/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Development Environment
Wat is er nodig om Android apps te maken?
Java Development Kit (JDK).
Android Software Development Kit (SDK).
Iets van een editor (vim,Eclipse,...).
Om te testen:
Een emulator (onderdeel van de Android SDK),of:
Een Android smartphone (niet in de Android SDK).
Ook nog handig:
Documentatie (http://developer.android.com/guide/).
Sven van Haastregt
Android Development { CCSS2012 8/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Development Environment
Wat is er nodig om Android apps te maken?
Java Development Kit (JDK).
Android Software Development Kit (SDK).
Iets van een editor (vim,Eclipse,...).
Om te testen:
Een emulator (onderdeel van de Android SDK),of:
Een Android smartphone (niet in de Android SDK).
Ook nog handig:
Documentatie (http://developer.android.com/guide/).
Sven van Haastregt
Android Development { CCSS2012 8/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Development Environment
Wat is er nodig om Android apps te maken?
Java Development Kit (JDK).
Android Software Development Kit (SDK).
Iets van een editor (vim,Eclipse,...).
Om te testen:
Een emulator (onderdeel van de Android SDK),of:
Een Android smartphone (niet in de Android SDK).
Ook nog handig:
Documentatie (http://developer.android.com/guide/).
Sven van Haastregt
Android Development { CCSS2012 8/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Emulator
Sven van Haastregt
Android Development { CCSS2012 9/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
DDMS (Dalvik Debug Monitor Server)
Sven van Haastregt
Android Development { CCSS2012 10/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Java,moet dat nou?
Alternatieve manieren om Android apps te ontwikkelen:
Android Native Development Kit (NDK):bedoeld voor tijdskritieke
code die je schrijft in C/C++.Sluit aan op de Android SDK.
Gebruik een cross-compiler om C/C++ te compileren.
Schrijf zelf ARM assembly.
Maar:\In general,you should only use native code if it is essential to
your application,not just because you prefer to program in C/C++."
{ NDK Documentation
Sven van Haastregt
Android Development { CCSS2012 11/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Wat is een Android App (niet)?
Er is geen public static void main() functie.
Je kunt een gecompileerde app niet rechtstreeks executeren op een
\gewone"computer.
Android OS kan besluiten je app te pauzeren of zelfs af te sluiten.
Je zult dus meer aandacht moeten schenken aan save/restore van de
app toestand.
System.out en System.err uitvoer gaat standaard naar/dev/null.
Gebruik:
import android.util.Log;
Log.v("MyApp","Nog steeds niet gecrasht");
Log.e("MyApp","Deling door 0");
En open dan de DDMS (of in een terminal:)
adb logcat
Sven van Haastregt
Android Development { CCSS2012 12/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Waaruit bestaat een Android App?
Componenten:bijv.Java broncode.
AndroidManifest.xml:lijst van alle
componenten in een app + andere meta-info
over de app.
Layout XML:beschrijving van de User Interface
(UI).Welke textlabels,buttons,checkboxes zijn
er,wat is hun positie op het scherm,etc.
Andere resources,bijv.icoontjes,strings,
geluid.
Sven van Haastregt
Android Development { CCSS2012 13/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Component types
4 Verschillende componenten:
Activity:interactie met gebruiker.
Bijv.:afspeellijst venster met play/pause/stop knoppen.
Service:draait op achtergrond.
Bijv.:daadwerkelijk afspelen van de afspeellijst.
Broadcast receiver:luistert naar (systeem-)mededelingen.
Bijv.:stop muziek als batterij bijna leeg is.
Content provider:levert data aan applicaties.
Bijv.:een content provider voor audio.
Een applicatie kan bestaan uit een willekeurig aantal van deze
componenten.
Sven van Haastregt
Android Development { CCSS2012 14/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Activity componenten
Belangrijkste toestanden van een Activity:
Active/Running:De activity heeft de
focus.
Paused:De activity heeft geen focus,
maar is nog wel (deels) zichtbaar.
Stopped:De activity heeft geen focus,
en is volledig verborgen onder andere
apps/activities.
Bij iedere toestandsverandering roept het
OS een speciale methode aan.Bijv.:
onStart(),onPause(),onResume().
[http://developer.android.com/reference/
android/app/Activity.html]
Sven van Haastregt
Android Development { CCSS2012 15/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Java en Android
De meeste standaard Java classes zijn beschikbaar,bijv.:
java.io.PrintStream
java.util.Vector
Daarnaast zijn er Android-specieke classes,bijv.:
android.bluetooth.BluetoothSocket
android.hardware.Camera
android.hardware.Sensor
android.location.GpsStatus
android.media.MediaPlayer
android.provider.MediaStore
android.speech.tts.TextToSpeech
android.telephony.SmsManager
...
Zie verder http://developer.android.com/reference/.
Sven van Haastregt
Android Development { CCSS2012 16/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Ontwikkelproces
1 Schrijf de Java code.
2 Compileer de Java code.
3 Verzamel alle benodigde resources (afbeeldingen,XML,...).
4 Produceer een Android PacKage (APK).
5 Signeer de APK met je eigen key of een debug key.
6 Installeer de APK in een smartphone of emulator.
7 Start de applicatie.
8 Herhaal 1{7 totdat je het zat bent.
Sven van Haastregt
Android Development { CCSS2012 17/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Ontwikkelproces
1 Schrijf de Java code.
2 Compileer de Java code.
3 Verzamel alle benodigde resources (afbeeldingen,XML,...).
4 Produceer een Android PacKage (APK).
5 Signeer de APK met je eigen key of een debug key.
6 Installeer de APK in een smartphone of emulator.
7 Start de applicatie.
8 Herhaal 1{7 totdat je het zat bent.
Sven van Haastregt
Android Development { CCSS2012 17/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Ontwikkelproces
1 Schrijf de Java code.
2 Compileer de Java code.
3 Verzamel alle benodigde resources (afbeeldingen,XML,...).
4 Produceer een Android PacKage (APK).
5 Signeer de APK met je eigen key of een debug key.
6 Installeer de APK in een smartphone of emulator.
7 Start de applicatie.
8 Herhaal 1{7 totdat je het zat bent.
Sven van Haastregt
Android Development { CCSS2012 17/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Publiceren op de Android Market
1 Maak een release build van de app:
http://developer.android.com/guide/publishing/
preparing.html
2 Screenshots.
3 Beschrijf de app:categorie,content rating,prijs,etc.
4 Registreer jezelf als Android Market Developer (eenmalig $ 25,-).
http://developer.android.com/guide/publishing/
publishing.html
Sven van Haastregt
Android Development { CCSS2012 18/19
Inhoud
Introductie
Development Environment
Programmeren voor Android
Demo
Demo's
Eclipse.
Android projecten in Eclipse.
Gebruik Android emulator/smartphone vanuit Eclipse.
Subversion en Eclipse.
Sven van Haastregt
Android Development { CCSS2012 19/19