AND105 Introduction to Design and Development of Android Applications in Java (5 days)
Course Outline
This is a hands on programming course for those with some Java (or equivalent C#) programming experience to get them up to speed in implementing practical Android applications. The course covers the Android architecture and its Linux underpinnings, the installation of the Android development tools on Linux, Windows and MAC OSX platforms, and use of Android Studio as well as the Android simulator for programming, debugging and testing of Android Java applications. It also covers design and implementation issues particular to mobile telephone applications in general and Android in particular. This includes User Interface design and programming, handling multimedia, data storage, manipulation and retrieval using SQLite, handling content and searching for content providers.
Course Objectives
Mastery of the fundamentals of Android Java programming and the Android framework.
Prerequisites
Attendees are expected to have a reasonable understanding of Object Oriented, preferably in Java. C# programming experience will do … and a Java for C# programmers orientation guide will be provided for those coming from the C# world.
Attendees are also expected to have some familiarity with GUI programming using either Java or .Net as well as basic web programming skills (i.e. and understanding of HTML, CSS and JavaScript.
Course ContentsAndroid Overview and History
- Development and Evolution of Android
- What makes Android unique
Android Architecture
- The various layers that make up the Android stack
- How Android applications and services interface with the Linux kernel
- Java VMs (Virtual Machines) and the move to the Dalvik VM
- Structure of the Android App framework
- Android Apps
Overview of the Android SDK
- Tools and development philosophy
- Supported platforms
- Tools associated with the SDK
- Versions of the Android SDK
Review of Object Oriented Programming and Java
Introduction and Overview of Android Studio, and Java application development using Android Studio
Basic Android Application development and testing
- Project creation and configuration
- Understanding and using the manifest file
- Laying out the user interface
- Building and running an application on the Android Emulator
Key Android Concepts and associated Building Blocks
- Activities and the Activity lifecycle
- Intents
- Services
- Content Providers
- Broadcast Receivers
Principles of Designing, specifying and implementing the Android Graphical User Interface
- Overview of XML and use of XML to describe hierarchies of things
- Resources as an approach to describing user interfaces
- Describing Android interfaces in XML
- Views and layouts
- Tour of the Common UI components
- Gesture Driven Programming and the Handling user events
- An Introduction to Statecharts and the design and testing of user interfaces
Android from the Systems point of view
- File system
- Preferences
- Notifications
- Security model
- Where have all the Linux things gone?
- Console?
- Shell scripts?
- Linux tools and utilities?
- Is there a root account?
User Interface Programming in Greater Depth
- Using and working with
- Selection components
- Adapters
- Complex (Composite) UI components
- Menus and Dialogs
- Graphics and animation
- Designing and programming for efficiency
Multimedia Application Development
- Audio
- Overview of different audio formats
- Audio formats currently supported by Android
- Overview of video formats
- Video formats currently supported by Android
- Implementing basic audio and video playback applications
Android Database Storage
- Overview of databases and SQL
- Overview of SQLite and how it differs from traditional databases such as PostgreSQL, MySQL etc.
- Creating Android SQLite databases with SQLiteOpenHelper
- Building and testing SQLite database applications
- SQL - inserts, updates, selects and deletes
Foundations of Accessing and Using Content Providers
- Overview of MIME types
- Searching for content
- Adding, changing, and removing content
- Creating and using content files
- Console?
- Shell scripts?
- Linux tools and utilities?
- Is there a root account?
- Selection components
- Adapters
- Complex (Composite) UI components
- Menus and Dialogs
- Graphics and animation
- Designing and programming for efficiency
- Overview of different audio formats
- Audio formats currently supported by Android
- Overview of video formats
- Video formats currently supported by Android
- Implementing basic audio and video playback applications
- SQL - inserts, updates, selects and deletes