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