The document outlines an Android workshop that will provide an introduction to Android technology over the course of one afternoon. The workshop will cover Android history and trends, the Android architecture including activities, intents, data storage and location services. It will then teach attendees how to make basic Android apps using dialers, GPS, browsers and maps. Hands-on sessions will guide participants in setting up Eclipse, creating activities and buttons, starting intents, accessing location data and displaying maps.
2. Introduction Android in one afternoon Understanding Android technology and being Eric Schmidt Arno den Hond: Android technical developer Jorik Bremer: Android business consultant Holland9.com
3. Workshop Outline 13.00 - 13.15: Android introduction History, facts and trends 13.15 - 13.35: Android Atonomy Introduction into GUI framework 13.35 - 14.15: Doing Android Part 1 Making app with dialer, GPS and browser 10 MINUTE BREAK 14.25 – 15.45: Doing Android Part 2 Making app with dialer, GPS and browser 10 MINUTE BREAK 15.55 - 16.30: The future of Android Android Business Case Holland9.com
149. Within the application tag, create an activity tag. Set the android:name attribute to the new Activity class. Nest an intent-filter tag. Nest an action tag (attribute name to whatever) and a category tag (attribute name to android.intent.category.DEFAULT)
150. In onClick method, call the whatever action without an Uri.Holland9.com
151.
152. Within the manifest tag, create 2 uses-permission tag. Set the android:name attributes to android.permission.ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION.
153. In Activity’s onCreate method, get a pointer to LocationManager using getSystemService Method with Context.LOCATION_SERVICE parameter. Cast result to LocationManager.Holland9.com
154.
155. Get a location provider by calling the LocationManager’sgetBestProvider method with the criteria parameter and a boolean to return only enabled providers.
169. ADT does not support MapView so add it manually to XML:<com.google.android.maps.MapView android:id=“@+id/mapview” android:layout_width=“fill_parent” android:layout_height=“fill_parent” android:clickable=“true”/> Holland9.com
170.
171. From command prompt, at keystore location use “keytool -list -alias androiddebugkey -keystoredebug.keystore” to get fingerprint.
Recommended hardware requirementsGoogle apps (gmail, market, youtube) closed sourceGoogle libraries (maps) not part of Android core
An “app” is a package of 4 types of components.Activity, Service, Content Provider, Broadcast ReceiverA package can have 0 .. n “launchable” ActivitiesActivity in package A can call Activity in package BContent Provider identified by URL, accessed like databaseIntent starts one Activity, Broadcast can start multiple receiversCreate your own permissions which other apps must request
XML is a struggle at firstXML makes code less britleProgrammatic UI composing is possibleComplete widget setCustom WidgetsEvents: Click, Input, Focus, SelectionList and ExpandableListSpecialized ActivitiesMenu XML definitionToast is an auto-dismissing dialogExternalized values leaves cleaner codeEasy localization all in 1 appDrawing onto Canvas with PaintOpenGL 3DAnimations by frames or (scriptable) tweens
XML is a struggle at firstXML makes code less britleProgrammatic UI composing is possibleComplete widget setCustom WidgetsEvents: Click, Input, Focus, SelectionList and ExpandableListSpecialized ActivitiesMenu XML definitionToast is an auto-dismissing dialogExternalized values leaves cleaner codeEasy localization all in 1 appDrawing onto Canvas with PaintOpenGL 3DAnimations by frames or (scriptable) tweens
XML is a struggle at firstXML makes code less britleProgrammatic UI composing is possibleComplete widget setCustom WidgetsEvents: Click, Input, Focus, SelectionList and ExpandableListSpecialized ActivitiesMenu XML definitionToast is an auto-dismissing dialogExternalized values leaves cleaner codeEasy localization all in 1 appDrawing onto Canvas with PaintOpenGL 3DAnimations by frames or (scriptable) tweens
XML is a struggle at firstXML makes code less britleProgrammatic UI composing is possibleComplete widget setCustom WidgetsEvents: Click, Input, Focus, SelectionList and ExpandableListSpecialized ActivitiesMenu XML definitionToast is an auto-dismissing dialogExternalized values leaves cleaner codeEasy localization all in 1 appDrawing onto Canvas with PaintOpenGL 3DAnimations by frames or (scriptable) tweens
XML is a struggle at firstXML makes code less britleProgrammatic UI composing is possibleComplete widget setCustom WidgetsEvents: Click, Input, Focus, SelectionList and ExpandableListSpecialized ActivitiesMenu XML definitionToast is an auto-dismissing dialogExternalized values leaves cleaner codeEasy localization all in 1 appDrawing onto Canvas with PaintOpenGL 3DAnimations by frames or (scriptable) tweens
XML is a struggle at firstXML makes code less britleProgrammatic UI composing is possibleComplete widget setCustom WidgetsEvents: Click, Input, Focus, SelectionList and ExpandableListSpecialized ActivitiesMenu XML definitionToast is an auto-dismissing dialogExternalized values leaves cleaner codeEasy localization all in 1 appDrawing onto Canvas with PaintOpenGL 3DAnimations by frames or (scriptable) tweens
SQLite full fledged DBCursorsCursor AdaptersAdapter ViewsShareable through content provider to ensure consitencyResources (read only)Array valuesAssetsPackaged Data filesPreferencesEasy storage of settingsPreference screensXml definitionFilesRead/Write whateverRequires permission
SQLite full fledged DBCursorsCursor AdaptersAdapter ViewsShareable through content provider to ensure consitencyResources (read only)Array valuesAssetsPackaged Data filesPreferencesEasy storage of settingsPreference screensXml definitionFilesRead/Write whateverRequires permission
SQLite full fledged DBCursorsCursor AdaptersAdapter ViewsShareable through content provider to ensure consitencyResources (read only)Array valuesAssetsPackaged Data filesPreferencesEasy storage of settingsPreference screensXml definitionFilesRead/Write whateverRequires permission
SQLite full fledged DBCursorsCursor AdaptersAdapter ViewsShareable through content provider to ensure consitencyResources (read only)Array valuesAssetsPackaged Data filesPreferencesEasy storage of settingsPreference screensXml definitionFilesRead/Write whateverRequires permission