Advanced Android™ Training Course

Training » All Courses » Android » Advanced Android™

Course Summary

Our Advanced Android™ course takes Android app development to the next level. 

In Advanced Android™ you will learn some of the advanced topics, such as how to create remote services using Binder IPC, how to develop parts of your app in C/C++ using NDK, how Android security is architected, and how to test your code. You will also learn how to use some of the more popular Android APIs such as Audio, Video, Location, Wifi Direct, Sensors and many more.

This course is a sequel to Android Bootcamp and is designed for those who already have basic Android knowledge.

Advanced Android™ course was recently redesigned and significantly expanded.

[top] Duration

5 days.

Advanced Android™ is composed of the following:

[top] Objectives

Advanced Android™ course teaches you how to use some of the most popular APIs in Android, which in turn allows you to create significantly more powerful apps taking advantage of everything Android Framework has to offer.

Advanced Android™ course gives you a toolbox that you can use to create professional Android apps.

[top] Audience

Advanced Android™ course is designed for software developers who already have experience developing basic Android applications and are now looking to get to the next level.

[top] Prerequisites

You should be familiar with basic Android development. We recommend that you take Android Bootcamp,  or have equivalent knowledge. Basically, you should be familiar with basic Android building blocks, such as Activities, Services, Provider and Receivers. You should also be able to create minimal Android UI and understand your way around the Android SDK tools.

[top] Instructors

Photo

Aleksandar Gargenta is the technology brains at Marakana. Always on top of the latest in software, Aleksandar is the company's radar for technology that matters. His latest ventures are perfecting Marakana's Android Internals and Security courses.

Phew. And if that's not enough, he's also the chief architect of Marakana Spark, the on-demand software platform that powers marakana.com and a number of other training companies. As an instructor he's taught hundreds of classes for everyone from Apple to Disney, from NASA to the Department of Defense.

In his spare time Aleksandar runs the San Francisco Java, Android, and HTML5 User Groups with over three thousand members across the three groups.

Aleksandar holds a bachelor’s degree in Mathematics and Computer Science from the University of Waterloo. He is also a father, photographer, hiker, and a race-car driver :-)

More about Aleksandar Gargenta...
Photo

Blake is an engineer with more than 20 years of experience, much of it with Java. He's built systems as large as Amazon's massively scalable AutoScaling service and as small as a pre-Android OSS/Linux and Java based platform for cell-phones.

He's currently deep in Android. Blake is co-author of three books on Android, including O'Reilly's best-selling, "Programming Android" and the Wiley's upcoming "Enterprise Android".

Blake writes the popular and informative blog "Portable Droid"

More about G. Blake Meike...
Photo

Ken Jones has thousands of in-class hours teaching advanced technical topics, and over 20 years experience in technical training and documentation targeted towards software developers. Ken has delivered training to various software development teams within the Fortune 1000 such as Cisco, Intel, IBM, Boeing, AT&T, Ericsson/Nokia, and many more. Ken's expertise spans multiple areas of software development; he has trained teams in Java, Javascript, Android, and advanced web development with HTML, CSS, and XML.

More about Ken Jones...
Photo
Mark Murphy is a three-time entrepreneur, his experience ranges from consulting on open source and collaborative development for the Fortune 500 to application development on just about anything smaller than a mainframe. He has been a software developer for nearly three decades, from the TRS-80 to the latest crop of mobile devices. A polished speaker, Mr. Murphy has delivered conference presentations and training sessions on a wide array of topics internationally.

More about Mark Murphy...
Photo

Marko founded Marakana back in 2001 to help underprivileged youth, minorities, and inner-city kids learn web technologies and get ahead in life. So Marakana emerged with goal of helping people get better at what they do professionally, focused on open source software training.

Learning Android by O'Reilly Marko is the developer of Marakana Android Training series. He has taught Android for companies such as Sony-Ericsson, Qualcomm, Ericsson Canada, and many others. Marko is a co-founder of San Francisco Android Users Group and regularly teaches Android Bootcamp at Marakana.

Marko is author of Learning Android book published by O'Reilly Media. This book is based on Android Bootcamp and incorporates best learning practices for new developers to start creating applications for this exciting open source mobile platform.

Marko is also the co-chair of Android Open, an O'Reilly conference focusing on Android ecosystem.

In 2006 Marko Gargenta published "PHP and MySQL By Example", a collection on PHP examples. The book was published by Prentice Hall, world's largest technology publisher and has been also translated to Spanish.

Marko Gargenta obtained his Bachelor of Mathematics Degree from University of Waterloo (Canada's MIT) and has been developing in Java since 1996. He lives in San Francisco, California.

More about Marko Gargenta...

[top] Outline

Native Development Kit (NDK)   (3 hours)

Android is put together of about equal part Java and C. So, no wonder that we need an easy way to bridge between these two totally different worlds. Java offers Java Native Interface (JNI) as a framework connecting the world of Java to the native code. Android goes a step further by packaging other useful tools and libraries into a Native Development Kit, or NDK. NDK makes developing C/C++ code that works with an Android app much simpler than if one was to do it by hand. Topics covered include:

  • What is in NDK?
  • Why NDK?
  • Java Native Interface (JNI)
  • Using NDK
  • NDK and JNI by Example
  • NDK's Stable APIs
  • Lab: NDK

Binder Inter Process Communications   (1 day)

Fundamentals of Android Inter-process communications

This module covers the fundamentals of the Android Inter-process communication based on the Binder. By the end of this module, you will understand how to create bound services, how to send parcels across the process lines, and how to make asynchronious binder calls. We will illustrate the key capabilities of the Android IPC menachism on a working example app that progressively becomes more and more sophisticated. Topics covered include the following:

  • Parcelables and serialization
  • Binder and IPC fundamentals
  • Binding a service
  • AIDL and publishing an API
  • Creating and binding to a remote service
  • Implementing client-side service connection
  • The purpose of stubs and proxies
  • Passing parcelable data between processes
  • Making asynchronous binder calls

Concurrency in Android   (3 hours)

Content Providers in Depth   (3 hours)

After completing this module students will be able to create and use complex content providers. The module addresses Sqlite, file and network based providers as well as Cursors and optimization issues involved in their use in inter-process communications. The module also addresses URI desing and creating and using access permissions
  • Best practices for SQLite Content Providers
  • FIle base Content providers: BLOBs and JSON
  • Network based Content providers and caching
  • Using Cursors
  • Optimizing Cursors for IPC
  • URI Design

Testing Android Apps   (3 hours)

Testing is an important part of any app development. There are many facets of testing, such as unit testing, performance, or functional testing. In this module, you will get an overview of various tools that Android supports for testing apps. Students will understand and be able to use JUnit both from Java and from the Android platform. They will become familiar with basic IoC coding patterns and be able to use the Mocks provided as part of the Android platform. In addition students will become proficient with other tools: TraceView, Monkey, and the Debugger. Topics covered include:

  • Testing guidelines: why test and what to test
  • JUnit framework: general overview of unit testing and Java's JUnit framework
  • Android's unit testing framework: focus on Android JUnit extensions
  • Using the exercise monkey test tool: pseudo-randomly testing the UI
  • Using monkeyrunner tool: scripting functional test cases for your app
  • Other testing tools and frameworks: the third-party resources

Security for Android   (3 hours)

  • Overview of Android security architecture
  • Application signing
  • UserIDs and file system
  • Using permissions
  • Declaring and enforcing permissions

Android Audio and Video APIs   (3 hours)

Android provides a rich set of APIs to support various audio and video playback and recording. In this module, you will learn how to create an audio recorder and playback app, a video recorder and a camera app. Topics covered include:

  • Audio playback: Playback and streaming, management of audio policies, hardware and focus.
  • Audio recorder: Capturing audio and saving it on the device.
  • Video playback: Playback of prerecorded video files.
  • Camera: How to record video as well as take pictures in both raw and jpeg formats.

Connectivity APIs   (3 hours)

Android provides support for quite a few ways to connect your device to other devices and the cloud. In this module, we'll explore the capabilities of Android connectivity APIs. This module is a comprehensive overview of connectivity APIs. For a deep dive into a specific type of connectivity, look up a related module. For each API, we will look at an example app that illustrates its key features. Topics covered include:

  • Bluetooth
  • NFC
  • Wifi
  • Wifi Direct
  • USB
  • Best practices: optimizing for battery

Android WebKit API   (3 hours)

WebKit is a very important library, not only because it runs most of the world's web browsers, but also because it allows you to build Android apps using HTML and Javascript. In this module, you will learn how Android exposes WebKit functionality via WebView. You will learn about it's features as well as how to integrate web content with the rest of your app. Topics covered include:

  • Using WebView in your apps
  • Building Web Apps in WebView
  • Using Javascript in your code and binding it to your Java code
  • Handling page navigation
  • Debugging Web Apps
  • Best Practices for Web Apps

Android Location API   (3 hours)

Location is one of the key features for a mobile device. In this module, you will learn how Android location framework works and best practices for using it. Topics covered include:

  • Location service overview
  • Using various location providers
  • Using location listeners
  • Overview of geo coding
  • Overview of Google Maps external library

Sensor API   (3 hours)

In this module, developers will be introduced to the Android Sensor Manager and the APIs for the devices it controls. You will learn to use each of the standard sensors, such as temperature, light, pressure, acceleration, motion, and orientation. Topics covered include:

  • Introduction to the Sensor Manager
  • Overview of various sensors
  • Listening to sensors and processing sensor data
  • Best practices for working with sensors

Device Administration API   (3 hours)

Device Administration API provide a framework for creating apps that can enforce certain policies on a device. These policies were designed with the enterprise requirements in mind. In this module you will learn what Device Admin API can and cannot do, as well as how to create an application that becomes an administrator on user's device. Topics covered include:

  • Overview of Device Administration API
  • Supported policies
  • Developing a Device Administration app
  • Managing and enforcing policies

[top] Additional Notes

Android Meetup Group Organized by Marakana

SF Android Users GroupMarakana team organizes and runs the San Francisco Android Users' Group - an interactive group of Android developers. In our monthly meetings, we discuss Android landscape from both technology and business angles. We often have great presentations by industry experts, group discussions, as well as hands-on sessions. If you are in San Francisco Bay Area, we encourage you to join the group and meet other Android developers.

Trademark Notice

Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.


[top] Student Testimonials

Great, fast paced class stuffed with information. If you're up for it, you'll get every penny out of your time.

Adam - xMatters

I found the material very interesting and helpful. I learned a lot from the course. Thanks,

Wayne - Qualcomm, Inc.

Excellent class. The coursework was well organized and delivered. Thanks for a great course.

Zach - AOL Inc.

Overall: enjoyed the course

Ishan - Qualcomm, Inc.