Mobile Architectures
Duration: 1 days

Back to course list Home
Synopsis A one-day seminar comparing and contrasting the two leading mobile architectures of 2014: Android and iOS. The two systems, light years apart yet closer than one would expect, are shown side by side, focusing on aspects of system design, usability, power management, the runtime environment, and security. Presented by the people who wrote the definitive book on OS X/iOS internals - and will soon do the same for Android.
Target Audience Developers of mobile applications, as well as technical leaders and IT officers
  • Gain familiarity with the system architecture of both Android and iOS
  • Detail the similarities and differences between Android and iOS
  • Gain insight as to the iOS and Android security landscape
Exercises This is a seminar, so it does not include exercises. There are plenty of demonstrations, however
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 "ancestors" - 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 to 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. 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+