Mobile Operating Systems
Duration: 5 days

Back to course list Home
Synopsis This course, based on a course of the same name offered at Harvard University, aims to tackle mobile operating systems and applications from a comparative view. Rather than follow other courses, which take on one OS at a time, this course pits the three leading OSes against eachother in parallel, comparing and contrasting their implementations of mobile design principles.
Target Audience Desktop and Mobile Developers, who wish to gain a comprehensive parallel view of the three leading Mobile Operating Systems - Android and iOS (with segues into Windows 8) - and their architectures.
Prerequisites
Objectives
  • Describe the programming constraints of mobile platforms
  • Explain the Model/View/Controller paradigm as it relates to mobile development
  • Explain the different views: Android's views, iOS's UIViews, compared and contrasted
  • Explain the application lifecycle in Android, iOS as well as Windows 8
  • Build and replace Android system components
Exercises None
Modules
1. Like father, like son
2 hours
How is a mobile operating system different than a deskop or server one? We discuss Android and iOS in relation to their "ancesto rs" - Linux and OS X, respectively. Drawing on detailed architectural diagrams, we see which features of the parent OSes made it to the mobile derivatives, and which didn't make the cut - and why.
  • Android vs. Linux - Similarities and differences
    • OS X vs. iOS - Similarities and differences
      • ARM vs. x86
        2. Sibling Rivalry
        4 hours
        How do iOS and Android differ from one another? In what ways are they similar? This module explores the approach both OSes use t o deal with such aspects as:
        • Application runtime: Dalvik vs. Objective-C
          • Memory Management - OOM/LowMemoryKiller vs. Jetsam/Memorystatus
            • Application deployment and packaging - APK vs. IPSW
              • Programming APIs - Framework showdown
                • Power Management - Wakelocks, assertions, sleep and hibernation
                  • Kernel features - Linux vs. XNU
                    3. Anatomy of an App
                    2 hours
                    Detailed discussion of mobile application structure in the three MOSes. Comparing and contrasting iOS Apps, Android activities and WinRT Applications.
                    ... Know Your Enemy
                    2 hours
                    Android and iOS take different views when it comes to system security. Android protects the user against malicious apps (or at least tries to), whereas iOS protects the user against... himself. In other words, in Android the App is untrusted, wherein iOS the user is. This module explores the security features of both OSes, detailing:
                    • Android's Dalvik security model
                      • the iOS "Jail" - Entitlements
                        • Code signing
                          • Rooting (Android) and Jailbreaking
                            • Kernel level enhancements - new in iOS 6 and Android 4.0+