Chapter One - Introduction to Mobile Oses

NabinDhakal8 22 views 45 slides May 13, 2025
Slide 1
Slide 1 of 45
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45

About This Presentation

In today’s digital world, mobile devices have become an essential part of our daily lives—enabling communication, entertainment, productivity, navigation, and countless other tasks. At the heart of every smartphone, tablet, or wearable device lies a Mobile Operating System (Mobile OS)—a specia...


Slide Content

UNIT 1 Introduction to Mobile Oses flutterjunction.com

Course Outline Introduction to Mobile Oses Build and Structure of Mobile Oses Introduction to development environment Introduction to Android API Levels/ Android Versions Pros and Cons of Android Comparison of Android with other OS Introduction to Android VM and Run time Installation and Configuration of Android Studio Running Emulator Adb Command line interfaces flutterjunction.com

Introduction to Mobile OSes Android Open-source OS Customizable by manufacturers (e.g., Samsung, Xiaomi). Powers phones, tablets, TVs, and cars (Android Auto). Based on Linux Kernel Largest app ecosystem via Google Play Store. flutterjunction.com

Introduction to Mobile OSes iOS Closed-source, exclusive to iPhones/iPads. Optimized for performance and security. Strict app review process for quality control. Was programmed in C,C++ and objective C A pp ecosystem via App Store. flutterjunction.com

Introduction to Mobile OSes Ubuntu Touch Linux-based Supports phone-to-desktop convergence. Focused on privacy and open-source values. Limited app ecosystem compared to Android/iOS. Offers a unique "convergence" feature, allowing the device to function as both a smartphone and a desktop computer when connected to a monitor and keyboard. flutterjunction.com

Introduction to Mobile OSes BlackBerry OS Legacy OS known for physical keyboards and encryption. Targeted enterprise/business users. Replaced by Android on modern BlackBerry devices. Helped to establish the importance of mobile security and productivity features in smartphones. flutterjunction.com

Introduction to Mobile OSes Tizen(Samsung) Built with HTML5, C, C++. Used in wearables (Galaxy Watch) and smart TVs. Lightweight and energy-efficient. Limited third-party app support. Developed by Samsung and Intel. flutterjunction.com

Introduction to Mobile OSes Firefox OS O pen source Os Discontinued Apps built with HTML5/JavaScript. Aimed at low-cost devices. Relied on web technologies instead of native apps. flutterjunction.com

Introduction to Mobile OSes Symbian(Nokia) Dominated early smartphones (pre-2010). Modular design for hardware flexibility. Phased out due to competition from Android/iOS. flutterjunction.com

Introduction to Mobile OSes Windows Phone Discontinued Featured Live Tiles for dynamic updates. Integrated with Microsoft services (Office, OneDrive). Struggled with app shortages. flutterjunction.com

flutterjunction.com Components

Build and Structure of Mobile Os Hardware Physical components that form the foundation of a mobile device. Core components: CPU(Processor), RAM(Memory) , Storage (ROM) Sensors: GPS, accelerometer, gyroscope, proximity sensor, fingerprint scanner Connectivity Modules : Cellular (4G/5G modems), Wi-Fi, Bluetooth, NFC Multimedia Hardware: Camera, Speaker, Touchscreen Power Management: Battery Security Hardware: Secure Enclave (iOS) or Titan M Chip (Android) flutterjunction.com

Build and Structure of Mobile Os 2. Kernel Core engine of OS Boss or conductor of computer’s brain Interacts with hardware Manages hardware, memory, CPU and processes Android: Modified Linux Kernel iOS: XNU Kernel (Darwin-based) flutterjunction.com

Build and Structure of Mobile Os 3. Hardware Abstraction Layer (HAL) Interface between the hardware and software layers Provides standard APIs to access hardware (e.g., camera, sensors) Enables hardware-independent programming for developers Example: Android's Camera HAL allows apps to use device cameras without knowing hardware specifics flutterjunction.com

Build and Structure of Mobile Os 4 . Middleware Libraries, APIs and Runtime environment Includes GPS, Wi-Fi, security, multimedia, etc. Android: Android Runtime (ART), native libraries iOS: Cocoa Touch frameworks Role: Connects kernel to application framework and apps flutterjunction.com

Build and Structure of Mobile Os 5. Application Framework High-level API layer for developers Manages: Application lifecycle, User interface (UI), Notifications, background tasks, and permissions Android: Activities, Services, Fragments iOS: ViewControllers, UIKit, SwiftUI flutterjunction.com

Build and Structure of Mobile Os 6 . Application Topmost layer where user apps live System Apps: Pre-installed (e.g., Camera, Dialer) User Apps: Installed from app stores (e.g., WhatsApp, Instagram) Apps run in isolated environments (sandboxing) for security flutterjunction.com

flutterjunction.com flutterjunction.com flutterjunction.com

Core Architecture Layers Working Example When Volume Button is Pressed Kernel Layer Button driver in the kernel receives the hardware interrupt Kernel identifies which button was pressed Kernel passes this raw input event to the HAL flutterjunction.com

Core Architecture Layers Working Example When Volume Button is Pressed Hardware Abstraction Layer (HAL) Volume button HAL module receives the event Translates hardware-specific signal into a standardized format Routes the standardized event to the appropriate system service flutterjunction.com

Core Architecture Layers Working Example When Volume Button is Pressed Middleware Layer Audio Service receives the volume change event Checks system settings for volume limits and restrictions Calculates new volume level based on current state Updates system audio settings in memory Triggers UI feedback mechanisms flutterjunction.com

Core Architecture Layers Working Example When Volume Button is Pressed Application Framework Layer Volume Manager notifies registered applications about volume change UI System receives instruction to display volume indicator Notification system prepares to notify affected applications flutterjunction.com

Core Architecture Layers Working Example When Volume Button is Pressed Application Layer Volume UI overlay appears on screen showing volume level Currently active media applications receive volume change notification Applications adjust their audio output accordingly Any app with volume-change listeners reacts to the event flutterjunction.com

Development Environment It's the tools and technologies used to build mobile apps. Includes IDEs, frameworks, emulators, and languages. IDEs: Android Studio, Xcode. Programming Languages: Java, Kotlin (Android); Swift, Objective-C (iOS). Frameworks Flutter, React Native (cross-platform); Jetpack, UIKit (native). Emulators/Simulators Android Emulator, iOS Simulator. SDKs & Build Tools Android SDK, iOS SDK; Gradle, CocoaPods. Version Control: Git, GitHub, GitLab. flutterjunction.com

Development Environment 🌍 1. HTML5 💻 Languages: HTML5, CSS3, JavaScript 🧰 Frameworks: Bootstrap, jQuery Mobile, Foundation 📦 Distribution: Via URL — not in app stores 🔍 Examples: Wikipedia Mobile, old Facebook Mobile 🏆 Pros: Single codebase, quick updates ⚠️ Cons: No native access, limited offline support flutterjunction.com

Development Environment 🧪 2. Hybrid 🧠 Web Apps Wrapped in Native Shell 💻 Languages: HTML, CSS, JavaScript 🧰 Frameworks: Cordova, Ionic, PhoneGap (discontinued but foundational) 📦 Distribution: Play Store / App Store 🔍 Examples: Early Instagram, Pacifica 🏆 Pros: Web tech + native distribution ⚠️ Cons: Dependent on WebView, slower UI flutterjunction.com

Development Environment 🔄 3. Cross Platform 🔁 One Codebase for Multiple Platforms 💻 Languages & Tools: Flutter (Dart) , React Native (JavaScript) Xamarin (.NET / C#), Kotlin Multiplatform 📦 Distribution: Play Store / App Store 🔍 Examples: Google Ads (Flutter), Discord (React Native), Skype (Xamarin) 🏆 Pros: Near-native experience, cost-effective ⚠️ Cons: Slight performance hit, complex debugging flutterjunction.com

Development Environment 🌟 4 . Progress Web Apps (PWAs) 🌐 Web Apps with App-like Behavior 💻 Languages: HTML, CSS, JS + service workers 🧰 Frameworks: Angular + Angular PWA Toolkit, React + Workbox, Vue + Vue CLI PWA plugin 📦 Distribution: Browser → "Add to Home Screen" 🔍 Examples: Twitter Lite, Starbucks PWA, Pinterest 🏆 Pros: Offline support, installable, no app store needed ⚠️ Cons: Limited native access, browser-dependent flutterjunction.com

Development Environment ✅ 5 . Native 📱 Platform-Specific Development 💻 Languages & Tools: Android: Java / Kotlin + Android Studio, i OS: Swift / Objective-C + Xcode 🧰 Frameworks: Jetpack (Android), Swift UI , UIKit (iOS) 📦 Distribution: Google Play Store / Apple App Store 🔍 Examples: WhatsApp, Snapchat, TikTok 🏆 Pros: Full performance, hardware access ⚠️ Cons: Separate codebases, higher cost flutterjunction.com

Feature Native HTML5 Web Hybrid Cross-Platform PWA Language Java,Kotlin, Swift HTML, JS HTML, JS Dart, JS, C# HTML, JS Frameworks Jetpack, SwiftUI Bootstrap, jQuery Ionic, Cordova Flutter, React Native Angular, React, Vue Codebase Separate Single Single Single Single Performance ✅ Best ❌ Lowest ⚠️ Moderate ✅ Near-native ⚠️ Moderate Hardware Access ✅ Full ❌ Limited ⚠️ Plugin-based ✅ Good ⚠️ Partial Offline Support ✅ Yes ❌ No ⚠️ Some ✅ Yes ✅ Yes Store Distribution ✅ Yes ❌ No ✅ Yes ✅ Yes ⚠️ No (Web only) Examples TikTok Wikipedia MarketWatch Discord, Google Ads Starbucks, Twitter Lite flutterjunction.com

Android Open-source mobile operating system developed by Google. Based on the Linux kernel and designed primarily for touchscreen devices. Key Highlights Launched: 2008 Current Owner: Google Programming Languages: Java, Kotlin, C++ App Store: Google Play Store Uses: Smartphones, Tablets, TVs, Smartwatches, Cars (Android Auto) flutterjunction.com

Android API Levels API levels define the set of available features and system behaviors. Developers use them to maintain backward compatibility. flutterjunction.com

Android API Levels Version Name Version Number API Level Release Year Cupcake 1.5 3 2009 Gingerbread 2.3 9-10 2010 Jelly Bean 4.1 - 4.3 16-18 2012–2013 Lollipop 5.0 - 5.1 21-22 2014–2015 Marshmallow 6.0 23 2015 Nougat 7.0 - 7.1 24-25 2016 Oreo 8.0 - 8.1 26-27 2017 flutterjunction.com

Android API Levels Version Name Version Number API Level Release Year Pie 9.0 28 2018 10 (Q) 10.0 29 2019 11 (R) 11.0 30 2020 12 (S) 12.0 31 2021 13 (Tiramisu) 13.0 33 2022 14 14.0 34 2023 15 (Vanilla Ice Cream) 15.0 35 2024 flutterjunction.com

Advantages of Android 🔓 Open-source and highly customizable 🌐 Wide device support from multiple brands 📦 Huge app ecosystem via Play Store 🔄 Seamless integration with Google services 🔧 Developer-friendly tools (Android Studio, Jetpack) flutterjunction.com

Disadvantages of Android 🧩 Fragmentation: Devices run on many different Android versions 🐢 Slower updates due to manufacturer delays 🦠 Security concerns due to openness and sideloading ⚙️ Varied performance on low-end vs high-end devices flutterjunction.com

Comparison Feature Android iOS HarmonyOS KaiOS Developer Google Apple Huawei KaiOS Tech Source Open-source Closed-source Open-source Linux-based App Store Google Play App Store AppGallery KaiStore Customization ✅ High ❌ Low ⚠️ Medium ⚠️ Low flutterjunction.com

Comparison Feature Android iOS HarmonyOS KaiOS Device Variety ✅ Wide ❌ Apple only ✅ Huawei/Honor ⚠️ Feature phones Security ⚠️ Moderate ✅ High ⚠️ Improving ⚠️ Limited Popular Apps ✅ Most supported ✅ Most supported ❌ Limited ❌ Limited Market Share 🌍 ~70%+ (global) 🌎 ~25% 🌏 Growing (Asia) 📱 Small markets flutterjunction.com

Introduction to VM and Runtime A Virtual Machine is a software-based simulation of a computer. It runs programs as if they are running on real hardware, but inside a controlled, isolated environment. It allows apps to be portable, so they can run on different devices without rewriting the code for each one. A Runtime is the environment where the app runs, including: System libraries Memory management Code execution Garbage collection (clearing unused memory) flutterjunction.com

Introduction to Android VM and Runtime What is Android Runtime? Android uses a Virtual Machine (VM) to run apps, providing isolation, memory management, and performance optimization. flutterjunction.com

Dalvik Virtual Machine Used in Android versions < Android 5.0 (Lollipop) Based on Just-In-Time (JIT) compilation Apps compiled into .dex (Dalvik Executable) files Each app runs in its own process & instance of Dalvik VM 🧩 Example: Launching an app compiles code on the fly, slowing down start time. flutterjunction.com

Dalvik Virtual Machine flutterjunction.com

ART - Ahead-Of-Time Compilation Replaced Dalvik from Android 5.0 onwards Uses Ahead-Of-Time (AOT) compilation Faster app execution and better battery life Supports improved garbage collection and debugging 🧪 Example: Apps are compiled during installation, so they run faster later. flutterjunction.com

Dalvik Vs ART Feature Dalvik (JIT) ART (AOT) Compilation Time During execution During installation Performance Slower Faster Battery Usage More Optimized Storage Smaller APKs Larger due to cache flutterjunction.com

ADB Command Lines Command Description adb devices Lists connected devices adb install <apk> Installs an APK on the device adb uninstall <package> Uninstalls an app adb logcat Shows system logs (useful for debugging) adb shell Opens a command shell on the device adb push <file> <location> Pushes a file to the device adb pull <file> Pulls a file from the device adb reboot Reboots the connected device flutterjunction.com