First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

AND104 Advanced Android Application Development (5 days)

Course Outline

The purpose of this course is to explore in depth the more advanced aspects of Android application development via a number of advanced case studies and programming exercises. As well as an in depth coverage of Content provides and services. The course will explore the details of working with Google maps and location services, broadcast receivers and Network programming. The topic of filters and intents will be covered in considerable detail.

At the programming and project levels Android unit testing and version control will be introduced.

Finally the course will cover networking, WiFi, Bluetooth and telephony - theory and programming APIs as well as implementing applications that make use of on phone sensors and image capture with the phone's inbuilt camera.

Prerequisites

Attendees are expected to be experienced Java programmers and have a sound understanding of basic Android programming, the use of the Android SDK and the Android architecture.

Course Contents

Overview of Android Architecture and the Android SDK

Overview of basic Android programming patterns and idioms

Custom Content Providers

  • The key concepts and motivation
  • Content
    • Discovering
    • Obtaining
    • Using
    • Providing
  • Understanding the API Supporting content files
  • Implementing content based applications

Location Services

  • Location mechanisms available with mobile phones
    • Triangulation
    • GPS
  • Working with the Location Manager
  • Working with Google Maps extensions

Services

  • The Android concept of a service
  • Service implementation
  • Understanding the Service lifecycle
  • Bound versus unbound services

Broadcast Receivers

  • Overview of Broadcast Receivers theory and concepts
  • Implementing a broadcast receiver
  • System broadcasts and their uses

Intent

  • Concept and motivation
  • Intent Filters
  • Role of filters
  • Intent-matching rules
  • Specifying Filters in the manifest
  • The use of Filters in dynamic Broadcast Receivers

Networking - the Internet

  • Web services - key concepts and technologies
  • Making best use of the Internet from the mobile phone point of view

Sensors

  • The kinds of sensors found on current mobile phones
  • Attaching sensors to mobile phones
  • Working with sensors
  • Obtaining and processing Sensor readings
  • Performance and effectiveness

WiFi

  • Overview of WiFi technology and WiFi protocols
  • Monitoring and managing Internet connectivity
  • Managing active connections
  • Managing WiFi

Telephony

  • Overview of mobile telephony technology and standards (GSM, CDMA, 3G …)
  • Making calls programatically
  • Monitoring data connectivity and activity
  • Accessing phone properties and status
  • Controlling the mobile phone

Camera

  • Obtaining (taking) pictures
  • Storing and organising pictures
  • Rendering previews
  • Basic image processing

Bluetooth

  • Overview of Bluetooth technology and bluetooth protocols
  • Controlling the local Bluetooth device
  • Discovering and bonding with neighbouring Bluetooth devices
  • Managing Bluetooth connections
  • Communicating with Bluetooth
  • Working with bluetooth enabled sensors

2D Graphics Programming

  • Overview of the Android drawable and animation packages
  • Implementing simple 2D computer games

Automated Testing

  • The importance of testing
  • Kinds of testing
  • Unit testing - the philosophy and the principles
  • Test automation - Instrumentation and unit testing