Android Programming
A unique, lab-driven class that exposes students to the entire Android OS API, from application development down to the Linux kernel.
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.