Android Development Bootcamp Training Course
Learn how to build, test and publish apps on the Android Platform
Android is a platform delivered by Google within the Open Handset Alliance as a complete set of software for mobile devices: an operating system, middleware and key mobile applications. Built on the open Linux Kernel, it is customized to optimize memory and hardware resources in a mobile environment and promises to be a formidable force in the industry.
This fast-paced and hands-on class starts from setting up the Android Development Environment and takes the attendees all the way to publication of an application on the Android marketplace. The course covers the Android SDK and the details of its building blocks, UI, inter process communication, threading, graphics, media, networking, locations, sensors as well as native application implementation in C/C++.
Setting up Android Development Environment
Installing the Software Development Kit.
Navigating Javadocs. Getting 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.
Android Application Development Launch
Using SDK emulator.
Runtime configurations, Android Virtual Devices (AVDs).
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.
User Interface and Building a View
Android GUI architecture.
Assembling a GUI and wiring up the controller.
Design by declaration.
Opening screen design.
Using Alternate Resources (for alternate languages and configurations)
Applying Styles and Themes.
Adding a menu.
Inter Process Communication
Creating both Activities and Services.
Using explicit and implicit Intents, both within applications and across applications. Returning results and bundling Extras in Intents.
Creating broadcast Receivers, listening for system broadcasts as well as sending your own broadcasts.
Database and Content Providers
Data security rules in Android.
Reading and writing locally accessible files 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. Data Binding.
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.
Overview of the graphics subsystem: the 2D SGL/SKIA graphics library, Pixel Flinger, Surface Flinger, OpenGL 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.
Playing and recording video and audio.
Using the camera.
Adding sound and video to applications.
Starting, stopping Services and Binding to Services.
An overview of how to use Remote Methods and Android Interface Description Language.
Browsing by Intent.
Web access with a View.
Using web services.
Location and Sensing
Sensors (which don't work on the emulator).
Location Based Services.
MapView and MapActivity.
Bird's Eye view.
Testing, Signing and Publishing Your Application
Test your application. Writing Junit test cases and using 'The Monkey' for UI testing.
Attaching an End User License Agreement.
Creating and attaching an icon and label.
Versioning your application.
Obtaining a Signing Certificate and API key.
Signing the application.
Publishing in the Android market.
3D Graphics and OpenGL.
Use of NDK for high CPU intensive applications (that do not use large memory) like signal processing or simulation.
Class Duration: Two days
Prerequisites: Familiarity with Linux/UNIX
based operating environment. JAVA or C programming experience.
If you have any questions about the difficulty level of the class, please contact us at: classes (at) linuxcertified.com
Optional: All attendees will get a Linux laptop to be used during the class. You have the option of purchasing this laptop with an additional course fee.
On-site: If you would like to arrange an on-site Android
Development class, please contact us at: classes (at) linuxcertified.com
If you don't see this class scheduled in the timeframe/place
of your preference, please let us know your preference for
timeframe (which month etc.) and any particular geography
preference. Send email with your interest to classes (at)