Inhoud Introductie Development Environment Programmeren voor Android Demo. Android Development. Sven van Haastregt



Vergelijkbare documenten
Android Development CCSS2011

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Mobiel werken Mobiel Werken Sven Moreels 1

Indoor Navigation System

Bart ter Steege The Mobile Mindmap

Ontwikkelen voor Android. Het waarom, het hoe en het wat - Sander Tuit

USABILITY VOOR HET WEB EN MOBIELE APPARATEN PETER KASSENAAR

Technische data. Versie dec

Paphos Group Risk & Security Mobile App Security Testing

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Raspberry Pi Plex server installeren

Specialist in de testdiscipline

01/05. Websites Nederland over. Mobile marketing. Whitepaper #03/2013. Mabelie Samuels internet marketeer

HANDLEIDING EXTERNE TOEGANG CURAMARE

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon

MOBILE De mogelijkheden van mobile apps

Altijd en overal online?

App onderdelen. Source files. Android app onderdelen 1/6

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Smartphone Onderzoek OTYS Recruiting Technology

Medicatie controle. Mobiele app op basis van App Service en Azure AD

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

Les 11: systeemarchitectuur virtuele machines

Creëer je eigen DSL tools met Eclipse De Android Challenge

NOKIA LUMIA 800 PIMP YOUR PHONE! GRATIS. 1 e 9 maanden 39,95 19,98 /mnd. i.c.m. 2-jarig Smart Plus 300 (300 min /sms + onbeperkt internet * )

NetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009

Hoofdstuk 2. - is verantwoordelijk voor de communicatie van de software met de hardware.

Meer mogelijkheden voor mobiele medewerkers met secure app delivery

Handleiding: Telewerken op Windows

Applicaties ontwerpen voor ios en Android

Aan de slag met de ipad ios 7.X.X

De computer, software

Windows XP Migratie opties. Bart van Dijk

Handleiding Certificaat installeren

Het besturingssysteem of operating system, vaak afgekort tot OS is verantwoordelijk voor de communicatie van de software met de hardware.

Novell Data Synchronizer: wie kan er nog zonder? Wiljo Tiele Geert Wirken

WORKSHOP ORANGE PI & PYTHON v september 2017

Point of View Android 2.3 Tablet - User s Manual PlayTab Pro

Mobile Devices, Applications and Data

De SAP Cloud Connector 2.0 maakt SAPUI5 ontwikkeling via de WEB-IDE mogelijk met data uit je eigen backend systeem.

Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht. Analyse. Inleiding. Doelstellingen

Cegeka Mobile Event. to itedit Master subtitle style 5/3/12 30/11/2011

Open Source Software. Bart van Dijk

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon

Iedereen gebruikt het..

ANOUK ROUMANS TO CODE OR NOT TO CODE.

Handleiding Geluidsopname maken

Point of View Android 2.3 Tablet - User s Manual ProTab 2XXL

Friesland College Leeuwarden

Microsoft; applicaties; ontwikkelaar; developer; apps; cloud; app; azure; cloud computing; DevOps; microsoft azure

Introductie Workshop

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM

Ubuntu Release Party XTG 11/23/12 1

MC Slotervaart. Handleiding Thuiswerken

KraamZorgCompleet OnLine instellen en gebruiken. Voor Android tablet of telefoon

Mobiele toestellen met Hosted Exchange 2010

Office 365 verificatie in twee stappen instellen (zonder smartphone)

ID Handleiding: Externe toegang Multiversum via MultiFactor Authenticatie ( MFA )

Acht stappen voor JSF

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

Gebruikershandleiding Inhoud

Installeren van de Arduino programmeer omgeving

Voordat je thuis in Vetware kan moet je dus één keer de toegang voorbereiden op de Universiteit Utrecht!

Intramed OnLine instellen en gebruiken. Voor Mac OSX

Design for Mobile. Projectplan CMD jaar 2. Remco Dekker Daan van Klinken Sybren Wartna CMD3A UXD

5+1 OPLOSSINGEN VOOR EEN APP

Wat is JAVA? Peter van Rijn

Introductie Workshop. Tom Hufkens Shopmanager Turnhout & Geel tom.hufkens@webstore.be

Handleiding. Certificaat installeren

ios, Android, Windows Phone of BYOD? Hulp bij het kiezen van juiste mobiele platform

Programmeren in C ++ met wxwidgets les 5

Cerussa Mobile / MyCerussa Pre-requirements

Cerussa Mobile / MyCerussa Pre-requirements

Betreft: Gebruiksinstructie vrkastour

MED-APP uw eigen congres app

Software kan worden ingedeeld in verschillende manieren. Bijvoorbeeld:

Mobiele technologie zorgt ervoor dat je met een smartphone en tablet en draadloos op een laptop of computer kunt werken.

Office 365: een beknopte handleiding

eerste voorbeelden in Java

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit

Wat is de App Politiezone Het Houtsche? Hoe installeer ik deze App op mijn smartphone?

Plato gebruikershandleiding

DIPLA Opdrachten app

we secure YOUR network Veilige verbindingen Ries van Son

Marcel Mayer Director Channel Sales EMEA Scense

Vakgroep CW KAHO Sint-Lieven

Transcriptie:

Android Development Sven van Haastregt Challenges in Computer Science Seminar LIACS, Universiteit Leiden Februari 2012 Sven van Haastregt Android Development CCSS2012 1 / 19

Inhoud 1 Introductie 2 Development Environment 3 Programmeren voor Android 4 Demo Sven van Haastregt Android Development CCSS2012 2 / 19

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

Mobile Operating Systems Marktaandeel wereldwijd van verschillende mobiele besturingssystemen: Operating System Vendor Marktaandeel Q3 2010 Q3 2011 Android Google 25.5 % 52.5 % Symbian Nokia 36.6 % 16.9 % ios Apple 16.7 % 15.0 % BlackBerry OS Research In Motion 14.8 % 11.0 % Windows Mobile Microsoft 2.8 % 1.5 % Overig 3.6 % 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

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 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

Dus wat is dat Android nou? Sven van Haastregt Android Development CCSS2012 6 / 19

Dus wat is dat Android nou? Sven van Haastregt Android Development CCSS2012 6 / 19

Dus wat is dat Android nou? Sven van Haastregt Android Development CCSS2012 6 / 19

Dus wat is dat Android nou? Sven van Haastregt Android Development CCSS2012 6 / 19

Mobile Applicaties Een mobile applicatie wordt doorgaans een app genoemd. Een mobile OS en mobile apps dienen efficient 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 floats / modulo s / delingen echt nodig zijn. Sven van Haastregt Android Development CCSS2012 7 / 19

Mobile Applicaties Een mobile applicatie wordt doorgaans een app genoemd. Een mobile OS en mobile apps dienen efficient 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 floats / modulo s / delingen echt nodig zijn. Q: Hoe programmeer je een mobile OS? A: http://source.android.com/source/downloading.html Sven van Haastregt Android Development CCSS2012 7 / 19

Mobile Applicaties Een mobile applicatie wordt doorgaans een app genoemd. Een mobile OS en mobile apps dienen efficient 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 floats / 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

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,... ). Sven van Haastregt Android Development CCSS2012 8 / 19

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). Sven van Haastregt Android Development CCSS2012 8 / 19

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

Emulator Sven van Haastregt Android Development CCSS2012 9 / 19

DDMS (Dalvik Debug Monitor Server) Sven van Haastregt Android Development CCSS2012 10 / 19

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

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

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

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

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

Java en Android De meeste standaard Java classes zijn beschikbaar, bijv.: java.io.printstream java.util.vector Daarnaast zijn er Android-specifieke 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

Ontwikkelproces 1 Schrijf de Java code. 2 Compileer de Java code. Sven van Haastregt Android Development CCSS2012 17 / 19

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. Sven van Haastregt Android Development CCSS2012 17 / 19

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

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

Demo s Eclipse. Android projecten in Eclipse. Gebruik Android emulator/smartphone vanuit Eclipse. Subversion en Eclipse. Sven van Haastregt Android Development CCSS2012 19 / 19