Android™ Overview Training Course

Course Summary

The Android™ Overview course is designed to give you a high level overview of Android as a development platform. It is the gentle introduction to what the Android operating system is, how we got here, what makes it fundamentally different than any other platform, and how to take advantage of its uniqueness. Android Overview is designed for both technical managers seeking a high-level understanding of the platform as well as developers warming up for a deep dive into programming for Android. By the end of this course, you will have a complete understanding of the entire operating system, at a high level. Topics in this course include:

 
  • History of Android: How we got here, and where we may be heading
  • Android Stack: The big picture overview of entire Android OS
  • Hello, Android: Dissecting an Android app to understand all the moving parts
  • Architecting Android Apps: Understanding main building blocks of an Android app
  • System Services: What Android ecosystem offers to developers
  • Debugging and Testing: Tools that are available to you today
  • Android Security: An overview of how Android security model works

 

Duration [top]

1 day.

Android™ Overview is composed of the following:

Objectives [top]

The goal of our Android Overview training is to give you a solid understanding of the entire Android operating system. It gives you the big picture of how Android is put together, the SDK tools, security and other considerations. The course also introduces what it takes to architect Android apps and goes into testing and debugging tools available and best practices.

Audience [top]

Android™ Overview is designed for both technical managers and team leads looking to manage Android projects, as well as experienced developers looking to jump-start their skills with Android.

Prerequisites [top]

Android™ Overview is the most gentle introduction to the platform. As such, you do not need to have any prior experience with Android, or programming for that matter.

This course is the prerequisite for most more advanced Android courses.

Instructors [top]

Photo

Adam Breindel brings over 10 years of successes working with cutting-edge technology for small startups as well as major players in the travel, media/entertainment, financial, productivity, and consulting industries.

In addition to web sites, GUI applications, and mobile device software, Adam has also built high-volume middleware for one of the world's largest banks, and produced a new, modern integration to a 1960s-vintage mainframe app for one of the world's largest airlines.

Adam focuses on designing and coding systems in a way that yields predictable results, leverages best practices and high-productivity tools, minimizes excess code, and is fun to do. He has also spoken at tech conferences, written articles and skill assessments, and produced an open source tool for software development. Adam has enjoyed teaching large and small groups, covering topics from nuts-and-bolts Java programming to merging ideal process with real-world constraints in an organization.

More about Adam Breindel...

Outline [top]

History of Android   (30 minutes)

History of Android module focuses on how we got here. The goal of the module is to give us an idea of design philosophy behind Android, and what it may say about the future of the platform. At this high level, we explore both technical and business choices that effect the platform for a long time. We'll look at how and Android operating system gets put together by various parties involved, from Google to carriers. Topics in this module include:

  • Vision for Android
  • History overview
  • Android Open Source Project (AOSP) versions
  • OEM add-ons
  • Third Party Android add-ons
  • Carrier Bloatware
  • Android fragmentation
 

Android Stack   (90 minutes)

Understanding how the entire Android operating system is put together is important in order to understand how to leverage everything it has to offer. This module provides an overview of each layer of the stack and its role. We'll look at both the business and the technical design choices. Topics in this module include:

  • Design philosophy
  • Open Source licenses
  • Linux kernel space
  • Native layer
  • Dalvik VM
  • Application layer
  • Apps

Hello Android   (90 minutes)

The goal of this module is to have you write a simple Hello, World application. By the end of this module, you should be able to identify main parts of an Android app. You should also be able to verify that your tools are setup properly and that you can run the application on an Android device, either physical or emulated. Topics covered include:

  • Android SDK: How to set it up and what it consists of
  • About Eclipse: The power of the tools
  • Creating a new Android project
  • Anatomy of a project: What are all the moving parts
  • Running the app: Emulator, real device, tools to monitor them both

Architecting Android Apps   (2 hours)

Android framework provides some new and different concepts for developing an app. The goal of this module is to introduce you to main components used to create Android apps. By the end of this module, you should have a good idea what Android app building blocks are, and their key properties. For each building block, we'll explore its typical usage, the life-cycle, and gotchas related to the implementation. Most of the focus of this module is on the conceptual understanding at the lines-and-circles level of the design. Topics covered include:

  • What makes up an Android app
  • Activities and Android UI
  • Fragments and best practices for reusable UI
  • Intents, Action Bar, and More
  • Services, IntentServices, Remote Service
  • Content Providers and Loaders
  • Lists and Adapters
  • Broadcast Receivers
  • App Widgets
  • Federation of apps design model

Debugging and Testing Android Apps   (1 hour)

This module provides an overview of some of the tools available in Android SDK that can help you with debugging and testing your apps. By the end of this module you should have a general knowledge of what tools are available and how to use them. The tools we'll explore include:

  • Logcat
  • Debugger
  • Traceview
  • HierarchyViewer
  • Syslog
  • Exercise Monkey
  • Monkey Runner
  • UIAutomator

Android Security Overview   (1 hour)

The goal of this module is to provide high level overview of how Android security is architected. By the end of this module, you should know how the apps are sandboxed how the security is enforced. Topics covered include:

  • Security design overview
  • Application sandboxing
  • Using permissions
  • Declaring permissions
  • Granting and enforcing of permissions
  • Social vectors of attack
  • Top 10 Bad Permissions

Android System Services Overview   (1 hour)

The goal of this module is to give you an overview of various system services that Android framework offers to developers. We'll explore what services are there, and how to use them. Out of 60+ services, we'll pick a handful of common ones and look at their usage. Primary focus is to understand the patters that are common for all of them so that you can deduct usage of the other services simply by following the documentation. Topics include:

  • What are the System Services
  • How to get a system service
  • Pattern for using system service APIs
  • Pattern for subscribing to service notifications
  • Common issues with using system services
  • Using the documentation to learn more
  • Google Cloud Services overview

Additional Notes [top]

Trademark Notice

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


Student Testimonials [top]

This was a great bootcamp to help us understand the Android ecosystem and app space. It was accessible to all team members regardless of skill level and previous technical experience.

Allison - MPAA

Good material, clear presentation, well-prepared.

Anna - Cisco

I am a user experience designer (not and engineer), so this was a good overview of what it's like to develop for Android. This knowledge gives me some insight into Android app development and might help me communicate with the engineers on my project better since I have a better understanding of the framework and terminology of this platform.

Richard - VTG

Being an intermediate user I already knew most of the lecture but I did learn new techniques and technical information that I did not know. Very well structured and excellent learning experience. Will be taking an internals class to dive more into the C/C++!

Chris - Cisco

Very useful class. Knowledgeable instructor, helpful, good with questions.

Bo - Cisco

Thank you, this was very helpful

Brian - Symantec Corporation

The instructor Marko demonstrated expertise in the Android platform. He was a joy to learn from and I look forward to utilizing his new book which he generously provided to us. Thanks Marko!

Kaleigh - MPAA

The trainer was very knowledgeable. The course was a good blend of what android platform is and how to do the basic programming on it.

Jasmeet - Cisco

This was a great overview course. I wish it was longer, but look forward to future offerings that take a more in depth look at developing for Android.

Carl - Cisco

This was a great and informative overview of Android. Marko was very professional, answered all the questions and took the time to understand our needs.

Reza - Cricket Communications

Excellent expert instructor.

Adarsh - Cisco