A Comprehensive Introduction To Android
This course has been retired. Please view currently available Android Training Courses.
Running Android (6 topics)
- Using both the SDK emulator and real devices (G1 & ADP).
- Using Android Debug Bridge (adb) and the Dalvik Debug Monitoring System (DDMS).
- Accessing the Android file system, pushing and pulling files.
- Accessing and filtering system logs.
- Examining device processes, virtual machines and threads.
- Getting familiar with the Android UI and setting up development options using Dev Tools.
The Android Software Development Environment (5 topics)
- Finding your way around the Software Development Kit (SDK)
- Navigating javadocs, an overview of the SDK tools and sample code.
- Using the Eclipse Android Developer Tools (ADT) plugin.
- Eclipse' relation to the underlying SDK tools, using different perspectives and Eclipse views.
- Runtime configurations, Android Virtual Devices (AVDs) etc.
Components and their inter-relationships (4 topics)
- Creating both activities and services.
- Using both explicit and implicit intents both within-application and cross-application.
- Returning results and bundling extras in intents.
- Creating broadcast listeners and both listening for system broadcasts and sending your own broadcasts.
Data Storage (5 topics)
- Data security rules in Android.
- Reading and writing locally accessible and sdcard files.
- Reading and writing preferences.
- Setting up a SQLite database and sharing data as a content provider.
- Accessing other applications' data through content providers.
Threading (4 topics)
- The use of threading in Android.
- The UI thread and guidance on when to spawn separate threads.
- Android's Looper, Async and Handler classes.
- How to manage worker threads from component lifecycle methods.
Views (5 topics)
- An overview of the View hierarchy.
- Building user interfaces from both XML and Java. Using layout classes and widgets.
- Using Eclipse to build and modify UI layouts. Creating custom views.
- Handling user input and adding menus.
- Overview of the user interface thread and drawing cycle.
Graphics (6 topics)
- Overview of the graphics subsystem: the 2D SGL/SKIA graphics library, pixel flinger, surface flinger, open GL and hardware acceleration.
- Essential components of the 2D library: canvases, paints and shaders.
- Using the 2D graphics library: drawing with canvas primitives.
- Creating graphical objects using the Drawable hierarchy.
- Creating 3D animations using rotation and translation.
- When and how to use a separate thread for high performance graphics
Testing and Deployment (2 topics)
- Writing Junit test cases and using 'the monkey' for UI testing.
- Using instrumentation, signing and releasing applications.
Media (2 topics)
- Playing and recording video and audio.
- Using the Camera.
Services (3 topics)
- Starting, stopping services and binding to services.
- An overview of how to use aidl.
Prior experience of programming for mobile and/or embedded environments with another mobile OS is not required. Attendees should, however, be experienced Java developers and have some knowledge of XML, SQL and integrated development environments.