iOS: Top down view of iOS – System Start-up Procedure iBoot – Processes - Threads – virtual memory - File Systems – Security Architecture - Internal API used by the system - BSD and Mach- Dissecting the kernel, XNU, into its sub components: Mach, the BSD Layer, and I/o kit - Inner workings of device drivers. Objective C – Swift Programming - Xcode, Cocoa Touch API, memory management, user input and gesture recognition, data persistence including Core Data, SQLite, NSUser Defaults and Plists. Working with audio, video and the accelerometer. Simple Applications development.
Android: Introduction - Introduction to the Linux kernel - Compiling and booting the Linux kernel - Understanding the Android Internals - Understanding the Android Build System - Customizing Android for a specific hardware - Building and booting Android.
Android changes to the Linux kernel - Android boot-loaders - Booting Android - Using ADB - Android file-system. Android build system - Adding a new module and product. Android native layer - Bionic, Toolbox, init, various daemons, Dalvik, hardware abstraction, JNI
Android framework for applications - Introduction to application development - Android packages - Advice and resources -Application ecosystem - web technologies in Mobile OS - Hardware accelerated graphics through OpenGL ES - ANDROID support for all the common wireless mechanisms: GSM, CDMA, UMTS, LTE, Bluetooth, WiFi, NFC.
Case Study: Extending the Android framework for ARM-based hardware.