CourseExample

Android Programming

A unique, lab-driven class that exposes students to the entire Android OS API, from application development down to the Linux kernel.

5-Day Course
Security Focused
App & Native Development
Cyber Research Oriented
Course Overview
Daily Agenda

Course Description

This lab-driven class exposes students to the entire OS API, covering everything from development of Android applications using the SDK and Android Studio to how these APIs map to native libraries, the Linux kernel, and Android-specific kernel components. There is also a heavy emphasis on security at each level covered, including features and developments from the latest releases of Android.

Prerequisites

  • Bachelor's degree in Computer Science, Computer Engineering, or equivalent experience.
  • Some C and Java programming experience is preferred.

Program Highlights

Security Emphasis

Become certified in Android programming with a heavy emphasis on security topics and features within the Android OS at every level.

Application Development

Gain hands-on experience with both standard application development (SDK) and native app development (NDK).

Cyber Research

A premier offering aimed at cyber researchers and programmers looking to explore the entire Android operating system.

What You Will Learn

  • Master the Android environment from architecture and AOSP to rooting a phone and using Android Studio.
  • Develop with core components like Activities, Services, Broadcast Receivers, and Content Providers.
  • Bridge the gap to native code using the Android JNI and Native Development Kit (NDK).
  • Communicate between layers by developing native services and understanding the Android HAL.

Daily Agenda

  • Day 1: Architecture and Setup

    Covering Android architecture, AOSP, Android Debug Bridge (ADB), device modes, Android Studio, application basics, and how to root and flash a phone.

    Day 2: Application Components

    Learn about Android Broadcast receivers, the permissions model, Activities, Services (development, types, AIDL), and Intents/Messages.

    Day 3: Frameworks and Native Code

    Explore Content Providers, the Binder driver, Android sensors, frameworks, the Java Native Interface (JNI), and the Native Development Kit (NDK).

    Day 4: Native Development

    Dive into native sensors, the cross-compilation process, native service development, Java-to-native communication models, and the Android HAL.

    Day 5: In-depth Practical & Final Exam

    Apply all concepts from the week in a comprehensive practical exercise, followed by the final exam and certification.