Learn your way! Get started

Android Development Using Mono for Android 4

with expert Wallace McClure


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack
  • Power Pack Plus

Release date Release date 3/16/2012
Level Level Intermediate
Runtime Runtime 10h 20m
Closed captioning Closed captioning N/A
Transcript Transcript N/A
eBooks / courseware eBooks / courseware N/A
Hands-on labs Hands-on labs N/A
Sample code Sample code Included
Exams Exams Included


Enterprise Solutions
Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

This course will show how to use Mono for Android 4 by starting with how to install Mono for Android 4, introduce the SDK tools and then debugging of applications. The course then will show how to use the Emulators for items like interface design and controls. Next are the different types of Android devices and how to support them. Application Activities and lifecycles are covered and then Menus, Tables and Data. The course will then show the soft keyboards, advanced controls, user notifications and working with the contacts lists. The course will conclude with working with device hardware for directions, multimedia and Geo location.

Prerequisites

This course assumes that you are comfortable developing applications using Visual Studio 2010 and C#. Mono Android requires Visual Studio 2010 Professional or higher (and will not work with Visual Studio Express editions).

Learning Paths

This course is part of the following LearnNowOnline SuccessPaths™:
Mobile Development Using Xamarin

Meet the expert

Wallace McClure Wallace McClure specializes in building applications that have large numbers of users and large amounts of data as well as user interface specific technologies such as AJAX, iPhone, and Android. He is a Microsoft MVP, ASPInsider, and a partner in Scalable Development, Inc. Wally has authored books on iPhone Programming with Mono/MonoTouch, Android Programming with Mono for Android, application architecture, ADO.NET and SQL Server, and finally AJAX.


Course outline



Module 1

Getting Started (26:38)
  • Introduction (01:58)
  • Why are We Here? (02:19)
  • Android History (01:20)
  • Why Android (01:36)
  • What is Mono? (01:19)
  • Why Mono for Android? (03:50)
  • Mono for Android Editions (01:29)
  • Mono for Android Status (02:56)
  • Mono for Android Features (02:29)
  • What Mono 4 Android is Not (01:25)
  • What is Mono for Android? (02:12)
  • How does Mono for Android Work (01:27)
  • Mono.Android.dll (02:06)
  • Summary (00:06)
Installation (33:10)
  • Introduction (00:20)
  • Mono for Android Installer (01:39)
  • Setting Up (00:36)
  • Mono for Visual Studio (00:53)
  • Step 1 - Java JDK (01:05)
  • Android SDK (02:30)
  • SDK Manager (00:48)
  • Android Emulators (01:07)
  • New Android Virtual Device (03:23)
  • Emulator Lessons Learned (03:02)
  • Device Setup (00:44)
  • USB Debugging (00:32)
  • Mono IDE Options (01:22)
  • Computer Setup (00:43)
  • Android Device Bridge (01:51)
  • Visual Studio Options (02:38)
  • MSBuild Settings (01:21)
  • MonoDevelop for Windows (01:29)
  • MonoDevelop Add-in Manager (00:52)
  • Mac - Java (00:46)
  • Mac - Android SDK (00:47)
  • Mac - Mono (00:51)
  • Mac - MonoDevelop IDE (00:31)
  • Mac - Mono for Android SDKs (00:38)
  • Which Operating System (02:18)
  • Summary (00:12)
Verification (12:00)
  • Introduction (00:20)
  • Demo:Verifying Installation (08:38)
  • Random Issues (02:52)
  • Summary (00:08)

Module 2

Android SDK Introduction (16:16)
  • Introduction (00:22)
  • Why SDK Tools? (02:00)
  • Guidelines (01:40)
  • Some Application Ideas (01:06)
  • Android (00:55)
  • Application Framework Support (00:37)
  • Application Components (01:15)
  • Activating Components (00:45)
  • Android Manifest File (02:24)
  • Application Requirements (01:34)
  • Android SDK Folder Contents (01:24)
  • SDK and Available Tools (01:57)
  • Summary (00:10)
Android ADB (10:19)
  • Introduction (00:22)
  • Android Debug Bridge (01:15)
  • Issuing ADB Commands (00:26)
  • Queriying for Instances (01:07)
  • Directing Commands (00:53)
  • Copying Files (00:34)
  • Issuing Shell Commands (00:28)
  • Examine Sqlite Databases (01:59)
  • Monkey (01:02)
  • Logcat (01:19)
  • Full Listing of Commands (00:38)
  • Summary (00:11)
Additional Debugging Topics (14:08)
  • Introduction (00:23)
  • DDMS (02:43)
  • Track Memory Allocation (02:10)
  • MSBuild Verbosity (01:10)
  • Mono For Android Settings (00:42)
  • Personal Findings (01:32)
  • Gettingup to Speed (02:27)
  • Demo: ADB (02:49)
  • Summary (00:09)
Debugging (30:46)
  • Introduction (00:24)
  • Android Ecosystem (01:12)
  • Visusal Studio (02:34)
  • Debugging Operating System (00:41)
  • Device Debugging (00:48)
  • try-catch (02:23)
  • Android Debug Bridge (00:44)
  • ADB Logcat (01:05)
  • DDMS (01:26)
  • Profiling (00:39)
  • Profiling with Traceview (01:38)
  • Demo: Debugging App (11:19)
  • Complile/Deployment Notes (03:27)
  • Layout Profiling (01:18)
  • Other Tools (00:46)
  • Summary (00:14)

Module 3

Android Emulator (28:20)
  • Introduction (00:24)
  • Android Emulator (01:15)
  • Why use the Emulator? (02:02)
  • Demo: Android Emulator (02:38)
  • About the Emulator (01:53)
  • Emulator Options (01:39)
  • Virtual Devices (03:35)
  • Demo: Virtual Device (02:49)
  • VD Startup Options (03:32)
  • Startup Options of Interest (01:14)
  • Other (04:08)
  • Mono for Android (01:09)
  • Which Version? (01:13)
  • More Information (00:28)
  • Summary (00:11)
User Interface Design (23:38)
  • Introduction (00:24)
  • User Interface (02:00)
  • Mobile Users (02:40)
  • Touch Mode Basics (02:06)
  • Touch Suggestions (01:02)
  • Understanding Physical Limits (01:28)
  • Support Multiple Screens (00:58)
  • <supports-screens> (01:02)
  • Layouts for different sizes (00:39)
  • Screen Layouts for Tablets (01:43)
  • Resources (00:50)
  • Localization (01:24)
  • Demo: Localization (05:31)
  • Best Practices (01:37)
  • Summary (00:07)
UI Design (12:50)
  • Introduction (00:27)
  • UI Design (00:47)
  • Eclipse - UI Design (00:32)
  • Create an Android Project (00:25)
  • Select BUILD Target (00:25)
  • Application Info (00:27)
  • Steps to Use Eclipse Graphical (00:53)
  • Droid Draw (01:11)
  • Demo: Droid Draw (06:32)
  • Android Asset Studio (00:55)
  • Summary (00:11)

Module 4

UI Profiling (09:25)
  • Introduction (00:25)
  • Profiling Your UI (01:58)
  • Hierarchy Viewer (00:41)
  • Viewer (01:22)
  • Load Times (01:01)
  • Demo: Hierarchical Viewer (02:08)
  • Optimization (01:34)
  • Summary (00:12)
Layouts and Views (15:10)
  • Introduction (00:19)
  • User Interface Basics (01:02)
  • View Hierarchy (00:52)
  • Views (01:15)
  • Control IDs (01:13)
  • Layout (00:41)
  • XML Layouts (01:18)
  • Android XML Language (01:41)
  • Load the XML Resource (00:44)
  • IDs (01:03)
  • Layout Parameters (01:52)
  • Event Listeners (01:34)
  • Issues (01:18)
  • Summary (00:13)
Layouts and Basic Controls (38:18)
  • Introduction (00:24)
  • Layouts (02:03)
  • Demo: Layouts (05:26)
  • Views (00:49)
  • Buttons (00:46)
  • TextView - Label (00:35)
  • Demo: TextView - Label (03:06)
  • EditText- TextBox (01:06)
  • Spinner - DropDown (00:49)
  • Demo: Spinner Control (04:24)
  • Images (00:36)
  • Menus (00:39)
  • Demo: Images (04:35)
  • Demo: Menus (05:04)
  • Dates & Times (00:39)
  • Radio Button / CheckBox (00:56)
  • Demo: Dates & Times (04:39)
  • Problems (00:47)
  • Resource (00:37)
  • Summary (00:10)

Module 5

Devices (23:36)
  • Introduction (00:26)
  • Android Versions (01:36)
  • What about Tablets (00:55)
  • Screen Sizes (00:42)
  • General Screen Support (01:29)
  • Terms (01:46)
  • Screen options on device (01:15)
  • Screen Independence (01:28)
  • What Happens at Runtime (01:33)
  • Example Resource (00:48)
  • Example Drawable (00:40)
  • Localization (01:13)
  • AndroidManifest (01:21)
  • Sections (01:24)
  • Screens (00:24)
  • Permissions (01:50)
  • AndroidManifest.xml (01:21)
  • Application Information (00:38)
  • AndroidManifest (00:36)
  • Mono Android Options (00:59)
  • Resources (00:48)
  • Summary (00:11)
Application Life Cycle (17:51)
  • Introduction (00:29)
  • Parts of an Application (01:07)
  • Application Life Cycle (00:48)
  • Application State (02:35)
  • Types of Activities (01:19)
  • Activity Life Cycle (01:27)
  • Activity Event Handlers (01:14)
  • Demo: Events (08:36)
  • Summary (00:11)
Application Navigation (15:10)
  • Introduction (00:28)
  • Opening an Activity (01:09)
  • Getting Passed Values (00:48)
  • Demo: Activites (03:04)
  • Temporary State (00:40)
  • Permanent State (01:22)
  • Configuration Changes (02:16)
  • Optimize your application (01:37)
  • Mono for Android Specifics (02:15)
  • Resources (00:24)
  • What"s in an APK file? (00:51)
  • Summary (00:09)

Module 6

Menus (25:01)
  • Introduction (00:27)
  • What are Menus? (01:51)
  • How to Create Menus? (00:56)
  • Parts of a Menu Resource (00:47)
  • Menu Attributes (01:11)
  • Inflating a Menu Resource (00:36)
  • Options Menu (01:14)
  • Responding to User Action (00:34)
  • Context Menu (00:47)
  • Steps to create a Context Menu (00:33)
  • Handling user selection (00:32)
  • Submenu (00:30)
  • User Selection (00:25)
  • Programmatic Creation (01:13)
  • How to determine selected (00:41)
  • Demo: Embedded Resources (07:35)
  • Demo: Programatic Resources (02:54)
  • Other Things (01:19)
  • For more information on menus (00:37)
  • Summary (00:11)
Data Web Services (25:31)
  • Introduction (00:29)
  • Business Run On Data (01:16)
  • Achitecture (00:56)
  • Data Terms (01:17)
  • Data Interchange Standards (01:14)
  • Limitations (02:25)
  • Web Services (01:22)
  • Web Service Options (01:02)
  • Web Services (01:06)
  • What is REST? (01:07)
  • REST over WCF (00:35)
  • Your WCF Interface (00:55)
  • JavaScript Object Notation (01:32)
  • XML (00:53)
  • Demo: Web Services (09:05)
  • Summary (00:10)
Relational Data (21:15)
  • Introduction (00:23)
  • Intra-Firewall (02:00)
  • Demo: SQL Server (03:33)
  • On Device (01:20)
  • SqliteOpenHelper Pattern (01:08)
  • Problem wth Android Specific (01:07)
  • What about ORMs? (01:35)
  • Sharing Data is Caring (00:38)
  • Content Providers Pattern (01:05)
  • Demo: SQLite (08:13)
  • Summary (00:09)

Module 7

Data Binding (18:14)
  • Introduction (00:23)
  • Displaying Data (01:34)
  • What about Images? (01:37)
  • ListView Example (00:45)
  • ListView - Select Specific Item (00:45)
  • Demo: ListView (11:15)
  • YMMV (01:42)
  • Summary (00:10)
Soft Keyboards (20:32)
  • Introduction (00:24)
  • Keyboards (02:22)
  • Android inputType (00:37)
  • Some Virtual Keyboards (02:39)
  • Virtual Keyboards (00:52)
  • UI Layout (02:16)
  • Hints (01:11)
  • Capitalization & AutoCorrect (01:36)
  • Helping the User (01:18)
  • Demo: Keyboards (06:57)
  • Summary (00:15)
Custom Controls (15:46)
  • Introduction (00:24)
  • Custom Control (00:43)
  • Basic Approach (00:51)
  • Demo: Compass (05:11)
  • Styles and Themes (01:26)
  • Style (01:02)
  • Style Properties (01:04)
  • Themes (00:59)
  • Demo: Styles annd Themes (03:51)
  • Summary (00:11)
Drag and Drop (11:05)
  • Introduction (00:24)
  • Drag and Drop (01:03)
  • Drag Steps (00:36)
  • Drag Actions (01:34)
  • Drag Shadow (00:51)
  • Demo: Drag and Drop (06:21)
  • Summary (00:14)

Module 8

Notifications (29:44)
  • Introduction (00:22)
  • User Input (01:23)
  • Notifications (01:50)
  • Dialogs (01:21)
  • Create AlertDialog (01:04)
  • Progress (00:52)
  • Showing a Progress Bar (00:50)
  • Demo: Progress Bars (07:05)
  • Status Bar Notifications (01:26)
  • Creating a Notification (00:42)
  • Other Things (00:55)
  • Toast Notifications (00:46)
  • Custom Toast (00:40)
  • Demo: Toast Notifications (10:11)
  • Summary (00:11)
Address Book Contacts (14:04)
  • Introduction (00:23)
  • Problem (00:46)
  • Content Providers (00:57)
  • Content Provider Basics (01:02)
  • Example Data Model (00:37)
  • URIs (00:31)
  • Querying a Content Provider (00:42)
  • Make Query (01:17)
  • Query (00:47)
  • Result (00:35)
  • Querying Contacts (00:27)
  • Operate on a Record (00:36)
  • Demo: Querying Contacts (05:08)
  • Summary (00:10)
Communications (09:59)
  • Introduction (00:22)
  • Email (01:29)
  • SMS (00:58)
  • SMS in Android (01:14)
  • Making a Phone Call (00:47)
  • Demo: Sending an SMS (04:54)
  • Summary (00:11)

Module 9

Other Device Features (25:37)
  • Introduction (00:20)
  • Device Features (01:06)
  • Sensors (01:07)
  • Types of Sensors (01:23)
  • Working with Sensors (00:38)
  • Pattern (00:52)
  • Vibration (01:10)
  • Pattern (01:19)
  • Voice Recognition Pattern (01:01)
  • How can I use this? (00:54)
  • Demo: Acceleration (06:03)
  • Demo: Vibration (01:58)
  • Demo: Magnetic Sensors (07:30)
  • Summary (00:11)
Multimedia (25:33)
  • Introduction (00:21)
  • MediaPlayer (01:13)
  • Support (00:56)
  • MediaPlayer (00:56)
  • Play Local Audio (01:18)
  • Remote Resources (01:05)
  • Play Video (01:35)
  • SurfaceView (01:15)
  • ISurfaceHolderCallback (00:48)
  • Setup (00:44)
  • Take a picture (02:26)
  • Warning (00:35)
  • Permissions (00:47)
  • Demo: Audio Playback (04:36)
  • Demo: Taking a Picture (02:41)
  • Demo: Capture Video (03:59)
  • Summary (00:10)

Module 10

Location (24:00)
  • Introduction (00:25)
  • Why? (01:03)
  • How Does a Device Know Where (04:16)
  • Location (01:35)
  • Main Location Elements (01:02)
  • Emulator (00:43)
  • Application Permission (01:30)
  • Where Am I - Pattern (01:05)
  • Criteria (00:46)
  • Proximity (01:09)
  • Demo: iLocationListener (06:11)
  • Demo: Proximity (03:58)
  • Summary (00:10)
Mapping (25:55)
  • Introduction (00:25)
  • Mapping Options (00:52)
  • Native Maps Application (01:16)
  • Street View (02:11)
  • Using the MapView (01:21)
  • Signing Key for Mapping (00:47)
  • Run the command (00:41)
  • Obtain Maps API Key (00:34)
  • Final Step - Use Key (00:50)
  • Problem (00:52)
  • GeoPoint (01:04)
  • MapView Members in Setup (01:36)
  • MyLocationOverlay (01:31)
  • ItemizedOverlay (00:35)
  • Warning (00:50)
  • Resources (00:42)
  • Demo: Maps (09:25)
  • Summary (00:14)