The Android™ Overview course is designed to give you a high level overview of Android as a development platform. It is a 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
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.
History of Android (30 minutes)
This 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
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:
- Exercise Monkey
- Monkey Runner
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.
- 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
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.
Doug Bateman is the Director of Training at NewCircle, where he oversees the quality and direction of NewCircle’s training offerings.
Doug has delivered over 100 corporate trainings on technologies including Java, Spring, Hibernate, Python, and Android and draws from over 15 years of experience as a professional software architect.
Previously Doug was the director of professional services for The Middleware Company, responsible for training, consulting, and new course development. Some of his notable projects and customers include Cisco, Hotwire.com, HSBC Bank, NASA, and the Florida State water management system.
In his spare time, Doug enjoys sailing and snowboarding.
Gil Zhaiek joined the NewCircle team from Vancouver, Canada and provides his expertise in the Android framework and the Linux kernel. He has 13 years of software and hardware experience that is critical for the field of board bring-ups. He started as a C++ coder of an online financial calculator, switched to FPGA and digital board design for a couple of years, and later integrated his knowledge in designing C++ Testbenches as a consultant to various hardware teams in more than 20 companies.
Having experience in nearly all the hardware and software components, he was able to transition smoothly to Real Time OS with Embedded Linux where he wrote drivers and was able to debug the hardware independently. A few years ago, Gil and his wife moved to Vancouver where he joined Recon Instruments as the Senior Embedded Android Engineer and later the Embedded Software Manager responsible for board bring-ups and Android framework customization.
Some of Gil's notable products he worked on include the MOD Live which was the first Ski Smart Head-Mounted-Display and the Recon Jet - a light sports HMD.
Gil earned his B.Sc in Mathematics and Computer Science from the University of Arizona. He also holds an MBA from Heriot-Watt University.