Lesson 2 - Mobile Application Development Platforms - vVLE
Lesson 2 - Mobile Application Development Platforms - vVLE
2
© 2022 e-Learning Centre, UCSC
Intended Learning Outcomes
3
© 2022 e-Learning Centre, UCSC
List of sub topics
4
© 2022 e-Learning Centre, UCSC
2.1 Operating Systems for Mobile Applications
– Android (Google)
– iOS (Apple)
– Bada (Samsung)
– Blackberry OS (Research in Motion)
– Windows OS (Microsoft)
– Symbian OS (Nokia)
– Tizen (Samsung)
5
© 2022 e-Learning Centre, UCSC
Operating Systems Contd..
OS Description Latest Version
7
© 2022 e-Learning Centre, UCSC
Mobile OS Platforms Market Share (2009 – 2022)
8
© 2022 e-Learning Centre, UCSC Source: Statistica.com
2.2 Android Development Platform
– AOSP compatibility
– Android compatibility
9
© 2022 e-Learning Centre, UCSC
AOSP Architecture
10
© 2022 e-Learning Centre, UCSC
Android Open System Platform Architecture
Privileged app
– An app created using a combination of the Android and system
APIs.
– These apps must be preinstalled as privileged apps on a device.
11
© 2022 e-Learning Centre, UCSC
Android Platform
System API
– The System API represents Android APIs available only to
partners and Original Equipment Manufacturers (OEMs)
– These APIs are marked with @SystemApi annotation in the
source code.
12
© 2022 e-Learning Centre, UCSC
Android Platform
Android API
– The Android API is the publicly available API for third-party
Android app developers.
Android Framework
– A group of Java classes, interfaces, and other precompiled code
used to build apps.
– Portions of the framework are publicly available
– Other portions of the framework are available only to OEMs
13
© 2022 e-Learning Centre, UCSC
Android Platform
System Services
– System services are modular, focused components
e.g. system_server, SurfaceFlinger, and MediaService
– Functionality exposed by Android framework API
communicates with system services to access the underlying
hardware.
14
© 2022 e-Learning Centre, UCSC
Android Platform
Hardware Abstraction Layer (HAL)
– HAL is an abstraction layer with a standard interface
– Using a HAL lets you implement functionality without affecting
or modifying the higher level system
Native Daemons and Libraries
– Native daemons in this layer include init, healthd, logd, and
storaged
– These daemons interact directly with the kernel or other
interfaces
Kernel
– The kernel is the central part of any operating system
– It is used to communicate to the underlying hardware on a
device
15
© 2022 e-Learning Centre, UCSC
Android Software Stack
Components
Source: https://developer.android.com/guide/platform
16
© 2022 e-Learning Centre, UCSC
The Linux Kernel
Source: https://developer.android.com/guide/platform
17
© 2022 e-Learning Centre, UCSC
Hardware Abstraction Layer (HAL)
Source: https://developer.android.com/guide/platform
18
© 2022 e-Learning Centre, UCSC
Android Runtime
DEX file:
“a bytecode format designed
specially for Android and is optimized
for minimal memory footprint”
Source: https://developer.android.com/guide/platform 19
© 2022 e-Learning Centre, UCSC
Native C/C++ Libraries
– ART and HAL, are built from native code that require native
libraries written in C and C++
– The Android platform provides Java framework APIs to expose
the functionality of some of these native libraries to apps
– For example, you can access OpenGL ES through the Android
framework’s Java OpenGL API to add support for drawing and
manipulating 2D and 3D graphics in your app
Source: https://developer.android.com/guide/platform
20
© 2022 e-Learning Centre, UCSC
Java API Framework
Source: https://developer.android.com/guide/platform
21
© 2022 e-Learning Centre, UCSC
Java API Framework contd..
22
© 2022 e-Learning Centre, UCSC
System Apps
Source: https://developer.android.com/guide/platform
23
© 2022 e-Learning Centre, UCSC
Android Devices
For example,
– automotive (motor vehicle) interfaces
– unified corporate networks
– entertainment devices, etc..
24
© 2022 e-Learning Centre, UCSC
2.3 iPhone Operating System (iOS) Development Platform
25
© 2022 e-Learning Centre, UCSC
iOS Version History
26
© 2022 e-Learning Centre, UCSC
iOS Layered Architecture
Cocoa Touch
Media Layer
Core Services
Core OS
27
© 2022 e-Learning Centre, UCSC
Core OS Layer
– Accelerate Framework
28
© 2022 e-Learning Centre, UCSC
Core Services Layer
– Foundation Framework
– Objective C covering too many of the features found in the
Core Foundation framework
30
© 2022 e-Learning Centre, UCSC
Core Services Layer Contd..
– Healthkit framework
– Handles health-related information of users
– Homekit framework
– Communicating with and controlling connected devices in a
user’s home
– Social framework
– Simple interface for accessing the user’s social media
accounts
– StoreKit framework
– Gives support for the buying of content and services from
inside your iOS apps, a feature known as In-App Purchase
31
© 2022 e-Learning Centre, UCSC
Media Layer
– UIKit Graphics
– support for designing images and used for animating
the content of your views
– Core Animation
– optimizes the animation experience of your apps.
– Core Images
– support for controlling video and motionless images in a
nondestructive way
32
© 2022 e-Learning Centre, UCSC
Media Layer Contd..
– Metal
– It permits very high performance for your sophisticated
graphics rendering and computation works
33
© 2022 e-Learning Centre, UCSC
Media Layer Contd..
Audio Framework:
– AV Foundation
– it is an Objective C interface. It handles recording and
playback of audio and video
– OpenAL
– an industry standard technology for providing audio
34
© 2022 e-Learning Centre, UCSC
Media Layer Contd..
Video Framework:
– AV Kit
– provides interfaces for presenting video
– AV Foundation
– gives advanced video playback and recording capability
– Core Media
– describes the low level interfaces and data types for
operating media
35
© 2022 e-Learning Centre, UCSC
Cocoa Touch Layer
– EventKit framework
– provides view controllers for showing the standard system
interfaces and enables seeing and altering calendar related
events
– GameKit Framework
– allows users share their game related information online
– iAd Framework
– deliver banner-based advertisements
– MapKit Framework
– provides a scrollable map
36
© 2022 e-Learning Centre, UCSC
Cocoa Touch Layer Contd..
– PushKitFramework
– provides registration support for VoIP apps
– Twitter Framework
– generating tweets and support for creating URLs to access
the Twitter service
– UIKit Framework
– provides infrastructure for graphical, event-driven apps
37
© 2022 e-Learning Centre, UCSC
2.4 Selecting the Proper Development Platform
38
© 2022 e-Learning Centre, UCSC
Factors to Pay Attention
39
© 2022 e-Learning Centre, UCSC
Factors to Pay Attention Contd..
– Technical features
– It is important to asses how easy to implement the technical
features required.
– The platform chosen should support the required features
easily
– Third-party integrations
– Platforms should make it easier to integrate confidentially
with third-party software
40
© 2022 e-Learning Centre, UCSC
Summary
41
© 2022 e-Learning Centre, UCSC
Additional References
42
© 2022 e-Learning Centre, UCSC