Android Bootcamp Training Course

Public Classroom

Summary

Android Bootcamp Training Course

Android Bootcamp is a 4-day training course that consists of our best two Android courses: Android Application Development and Advanced Android. This Bootcamp is designed to provide essential skills and experience with developing applications on Android mobile platform. Throughout the course, the students will develop a real-life application, which can serve as a basis for their future Android projects. Eclipse and Android SDK are used as the development environment throughout the class.

Duration

4 days

Course Objectives

By the completion of the course you should be able to:

  • Build and deploy your own Android applications.
  • Understand how Android applications operate – application lifecycle, configuration files, intents, and activities.
  • Have a good working knowledge of Android UI – components, layouts, event handling, and screen orientation.
  • Have a solid understanding of threading, message queues and notifications.
  • Have a working experience with database access API and CRUD operations.
  • Have a practical experience with Location based services – Location Manager, GPS, and MapView.
  • Develop a live Android application that serves as a working example of the topics covered in class.
  • Understand Android networking capabilities, including Java Sockets, Java XML, and JSON.
  • Understand the concepts of and have working examples of NDK, Text-to-speech and telephony API.

Audience

This bootcamp is for anyone who wants to obtain a solid understanding of what Android is and how to develop applications using Android as the platform. Previous experience with Java is required.

Pre-requisites

Android Bootcamp is a hands-on course which comes with plenty of sample applications and associated source code. To fully enjoy your training investment, you will need access to a suitable computer to run the sample applications (or create new applications in lab sessions).

This course assumes you are already acquainted with the Java programming language and using the Eclipse IDE. If you are not, we recommend enrolling in our Java for Android training course, which is scheduled immediately prior to this bootcamp.

The android development tools are freely available and easy to install. You can use any major platform such as MAC OSX, LINUX or Windows. Visit http://developer.android.com/sdk and download the ADT bundle appropriate for your platform.

Outline

Day 1

Introduction

  1. Welcome
  2. Android Who, What, When, Where
  3. Google Play (Market, etc)
  4. Android Versions
  5. Android Devices
  6. Architecture Framework Overview
  7. Native vs Web applications

Hello, World!

  1. Development Environment
  2. ADT Bundle Contents
  3. Eclipse, SDK and AVD manager
  4. Students perform following steps with instructor
    1. Create AVE/Emulator
    2. Create New Project
    3. “Hello, World” (run in emulator)
    4. Deploy to Android device (if available)
  5. Review freshly created project organization
    1. Application Manifest
    2. “res” directory
    3. “src” directory

The Activity

  1. Introduce key android components
  2. Activity and View classes
  3. Activity life cycle
  4. Sample layout file
  5. Button, TextView, EditText, ImageView
  6. View attributes
  7. View events and listeners
  8. Activity navigation (Intent)
  9. Parameters between Activities
    1. Parent invokes child
    2. Child returns update
  10. Styles/Themes
  11. Android Debug Bridge (ADB)
  12. Android logging
  13. Demonstration

Lab Assignment 1

  1. Create multiple activity application

Resource Directory

  1. String resources
  2. I18N/L10N & Locale bundle
  3. Design for table and phone
  4. Device orientation (portrait vs landscape)
  5. API 13 and later
  6. ViewGroups (Layouts)
  7. View size and position
  8. AbsoluteLayout
  9. FrameLayout
  10. LinearLayout
  11. RelativeLayout
  12. TableLayout
  13. SlidingDrawer
  14. TabWidget
  15. ScrollView
  16. Demonstration

WxTrax Assignment

  1. Design and implement multiple Activity framework

Day 2

Widget Tour

  1. Clocks (Analog and Digital)
  2. CheckBox
  3. DatePicker, TimePicker
  4. ImageButton
  5. SeekBar, ProgressBar
  6. RadioGroup
  7. RatingBar
  8. ToggleButton
  9. WebView/WebViewClient
  10. Demonstration

Fragments and ActionBar

  1. Why Fragments?
  2. Fragment design
  3. Fragment life cycle
  4. Fragment and Activity
  5. Fragment Example
  6. ActionBar Introduction
  7. ActionBar and Activity
  8. ActionBar and Fragment
  9. ActionBar and BackStack
  10. ActionItems
  11. Compatibility
  12. Demonstration

Lab Assignment 3 – WxTrax

  1. Add ActionBar
  2. Add Fragments
  3. Add Menu

File I/O and User Preferences

  1. Sandbox and “Rooted” systems
  2. File system introduction
  3. Internal file system
  4. External file system
  5. File I/O
  6. User Preferences
  7. PreferenceActivity
  8. PreferenceFragment
  9. Demonstration

Network Operations (SMS, JSON, XML)

  1. Android radios
  2. Android sockets
  3. HTTP review
  4. REST review
  5. Security Certificates
  6. HTTP Client
  7. Simple HTTP get
  8. JSON review
  9. Android JSON support
  10. XML review
  11. Android XML support
  12. XML parse example
  13. ConnectivityManager
  14. TelephonyManager
  15. RoboDialing
  16. SMS generation
  17. SMS receive
  18. Demonstration

Lab Assigment 4 – WxTrax

  1. Add Menus
  2. Add UserPreferences
  3. Add XML collection/parsing

Day 3

BroadcastReceiver, AlarmManager

  1. Application (class)
  2. Application example
  3. Intent and Intent Filters
  4. BroadcastReceiver
  5. AlarmManager
  6. NotificationManager
  7. Demonstration

Local/Remote Services, AsyncTask, Threads

  1. Android threads
  2. Java thread review
  3. Producer/Consumer
  4. Looper/Handler
  5. Main UI Thread
  6. AsyncTask
  7. AsyncTask example
  8. Service (class)
  9. Service (Local)
  10. Service (Remote)
  11. Android IDL
  12. IntentService
  13. AlarmManager vs Thread
  14. DDMS
  15. Demonstration

Lab Assignment 5 – WxTrax

  1. Add background collection of weather datum

Adapters, Option and Context Menus

  1. Menu introduction
  2. Option menu (XML and “hard” coded)
  3. Option menu/ActionItem
  4. ArrayAdapter
  5. CursorAdapter
  6. ListView/ListAdapter
  7. ListView/ListFragment
  8. Context menus
  9. GridView
  10. Spinner
  11. Gallery
  12. Toast
  13. AlertDialog
  14. DialogFragment
  15. Demonstration

SQLite Database

  1. SQL review
  2. SQLiteDatabase
  3. SQLiteOpenHelper
  4. Database definition
  5. ContentValues
  6. Database insert
  7. Database update
  8. Database delete
  9. Example code snippet
  10. Cursor
  11. Query
  12. Query example
  13. ADB and sqlite3 utility
  14. Demonstration

Content Provider/Loaders

  1. ContentProvider
  2. URI navigation
  3. Content format
  4. ContentResolver query
  5. ContentResolver insert
  6. ContentResolver update
  7. ContentResolver delete
  8. Custom ContentProvider
  9. MIME
  10. UriMatcher
  11. Demonstration

Lab Assignment 6 – WxTrax

  1. Persist weather datum to database
  2. Populate ListView from database

Day 4

Audio

  1. AudioManager
  2. Audio Recording
  3. Audio Playback
  4. MediaPlayer
  5. MediaPlayer listeners
  6. Ringtone manager
  7. Demonstration

Sensors

  1. Android sensors (accelerometer, compass, etc)
  2. SensorManager
  3. Touch events
  4. Gestures
  5. Camera
  6. Demonstration

2D Graphics

  1. Frame animation
  2. 2D drawing
  3. Tweening
  4. Layout animation
  5. Animation listeners
  6. SurfaceView
  7. Demonstration

Junit

  1. Unit testing
  2. Assert
  3. Android Junit
  4. Mock objects
  5. Demonstration

Application Widgets

  1. AppWidgets/LiveFolders
  2. AppWidget
  3. AppWidgetProviderInfo
  4. AppWidget layout
  5. AppWidgetProvider
  6. AppWidgetManager
  7. RemoteViews
  8. Demonstration

Lab Assignment 7 – WxTrax

  1. Add audio cues
  2. Add AppWidget

Custom Views

  1. 9 patch graphics
  2. StateListDrawable
  3. CustomViews
  4. Demonstration

Google Proprietary

  1. Google Play
    1. Market portal
    2. In-App Purchase
    3. Billing
    4. Key delivery
  2. Analytics
  3. AdMob
  4. Cloud Messaging
  5. Google App Engine

Location Services and Google Maps

  1. LocationManager
  2. Privacy
  3. Location quality
  4. Battery life
  5. Listeners
  6. LocationListener
  7. GpsStatus.Listener
  8. Latitude/Longitude
  9. Google Maps V2 API
  10. Signing and GoogleMap Key
  11. MapView
  12. MapFragment
  13. Overlays
  14. Demonstration

OpenGL Introduction

  1. Coordinates
  2. Camera
  3. Drawing
  4. Texturing
  5. Animation
  6. Android OpenGL ES
  7. GLSurfaceView
  8. Demonstration

Native Developers Kit (NDK)

  1. Java Native Interface
  2. Hello World (Java component)
  3. Hello World (C component)
  4. JNIEnv
  5. Data types
  6. Android NDK
  7. Bionic library
  8. Hello, JNI
  9. Demonstration

Lab Assignment 8 – WxTrax

  1. Add GoogleMap support