1
DEBREMARKOS INSTITUTE OF TECHNOLOGY
MOBILE PROGRAMMING
LECTURE 1
HISTORY AND OVERVIEW OF MOBILE APPLICATION DEVELOPMENT
Tuesday, March 16, 2021 Wobetu Shiferaw ([email protected])
History and Overview Mobile Operating Systems
2
Mobile Devices need some type of Operating System to run its services.
Earlier OS were fairly simple, since they supported limited capabilities
Modern devices however, added many of the features of a full-fledged desktop computer
Like CPU, GPU, large storage, multitasking, multipurpose comm. Device etc
Modern OS combines a PC with other mobile specific features like:
Bluetooth, GPS, speech recognition, video camera, infrared etc
History and Overview Mobile Operating Systems
3
Mobile Devices need some type of Operating System to run its services.
Earlier OS were fairly simple, since they supported limited capabilities
Modern devices however, added many of the features of a full-fledged desktop computer
Like CPU, GPU, large storage, multitasking, multipurpose comm. Device etc
Modern OS combines a PC with other mobile specific features like:
Bluetooth, GPS, speech recognition, video camera, infrared etc
…
4
So mobile OS had to grow to support all these features
This results in the growth of market with a number of different tech platforms
Different competing platforms driven by d/t actors
Requires app developers to study and choose the most winning platform available
What is Mobile OS
5
A software platform on top of which other apps can run on.
Experienced a 3 phase evolution
PC oriented, Embedded System Oriented and Smart-phone oriented evolution
The architecture goes from complex to simple or something in between
Evolution has driven by tech advancements in HW, SW and the Internet
Resulted in a variety of OS platforms available on the market
Below is analysis of different mobile OSs
Android Operating System
6
Developed by Open Handset Alliance (OHA), Led by Google, released in 2007
Most of its components released under the Open Source apache license.
Android uses a Linux kernel with higher-level APIs written in C
Apps are programmed in Java and
run with the Dalvik virtual machine (DVM)
(NB: the latest updates of android OS replaced DVM by Android Runtime (ART)).
Why Android?
7
In 2011, has largest installed base of any Mobile OS
In 2013, its devices sold more than Windows phone and iOS devices combined
Google play store had 1 million apps published, and over 50 billion apps downloaded
As of 2013 surveys, most of mobile developers develop apps for android
iOS
8
Developed by Apple inc. and distributed exclusively for Apple Hardware
The OS that powers iPad, iPod, iPhone, iPod Touch and Apple TV
Closed source and Proprietary
Built on the open source Darwin core OS
Drived from the Mac OS and shares its Darwin foundation
iOS
9
Made up of 4 abstraction layers
Core OS, Core Services, Media and Cocoa Touch
Windows Phone
10
A proprietary software smartphone OS developed by Microsoft
It’s the successor to windows Mobile
Launched in 2010 under the name Window 7
The next release was released in October 2010
Mobile Application Development
11
A process by which app software is developed for low powered handheld devices
Comes with different flavors:
Preinstalled on phones
Downloaded from distribution stores or
Delivered as web apps
Mobile Application Development
12
Before we start developing apps for the mobile device, its important to consider
selecting a suitable platform which helps us to successful in the market
Here are the comparison of the different mobile Operating Systems available on the ma
rket
The Android Platform and Development Environment
13
Open source, Linus based SW stack created for a wide range of devices.
Below is the major components of the android platform
14
Linux Kernel
15
The foundation of the android platform.
Handles low level device management operations
Provides standard services
Memory and process management
File and Network I/O
Linux Kernel
16
Android specific Services
Device Drivers
Power management
IPC
Low Memory Killer
Hardware Abstraction Layer
17
Provides standard interface that expose device hardware capabilities to the hirgher
level Java API framework
Consists of multiple library modules, to implement a pacific hardware component
Eg. Camera and Bluetooth module
The Android Runtime
18
A virtual machine to compile and run java files for the android system
Specifically designed for resource constrained environments like mobile devices
Major features:
Just in-time compilation
Optimized garbage collection
Better debugging support
Native C/C++ Libraries
19
Handles the core performance sensitive activities on your device
Eg. Rendering webpages and rendering the display
Used for Standard system calls
Process and thread creation, mathematical creation, memory allocation etc
WebKit, Surface Manager, media framework, OpenGL High performance graphics
SQLitein memory database management etc
Java API Framework
20
Provides a building block used to create android apps
Simplifies the reuse of core modular components
Such like:
View System build apps UI
Resource Manager provides access to non-code resources
Notification manager enables all app to display custom alerts on status bar
Java API Framework
21
Activity manager manages the lifecycle of apps and provides comman navigation
backstack
Content providers etc
System Apps
22
Set of core applications for performing most critical operations on the device
Like SMS Messenger, Camera, Gallery, Calendar, Notebook, Browser etc
Can be just replaced by comparative custom third party apps
Application Fundamentals
23
Android apps are written in java programming languages
Android SDK tools compile your code and creates APK file (android package)
The file android powered devices used to install the app
Application Fundamentals
24
Each app lives on its own security sandbox protected by different security features
Multi-user linux system each app is a different user
System sets permission for all its file so that only authorized app or user can access
Each app has its own virtual machine, runs in isolation from other apps
Every app runs on its own linux process
Application Components
25
The essential building blocks of android app
They are the entry point in which the system / user can enter your app
Android has 4 main types of app components
Activities
Services
Broadcast Receivers
Content Providers
Activities
26
The entry point for interacting with the user
Represents a single screen with a user interface
Services
27
Keeps an app running in the background
A component that runs in the background to perform long-running processes or work
from remote processes
Doesn’t provide a user interface
Eg. A service that play music, download file,
Broadcast Receivers
28
A component that enables the system to deliver events to the app outside of a regular
user flow
Allows the app to respond to system-wide broadcast announcements.
Example:
Schedule alarm to post a notification.
Broadcast Receivers
29
Originates either from system or application level
Content providers
30
Manages a shared set of app data stored in any persistent storage systems
Allows other apps to query and modify the data if the content provider allows it
Examples:
Contacts Content Provider
Activating Components
31
Activities, services, and broadcast receivers—are activated by an asynchronous
message called an intent.
Intents bind individual components together at runtime
Act as messengers that request an action from other components
Created with Intent object
The Manifest file
32
Before the android can startup a component, its must know existence of the
component in the app
By reading its manifest file named “AndroidManifest.xml
Your app must declare all its components on this file
The manifest file does
33
Identify any user permission on the app
Declare the minimum API level required by the app
Declare Hardware and software features required by the app
Declare API libraries the app linked with
Declaring components in the manifest file
34
…
35
You must declare all app components using the following elements:
<activity> elements for activities.
<service> elements for services.
<receiver> elements for broadcast receivers.
<provider> elements for content providers.
App Resources
36
Android app is more than just a code
It requires resources separate from the source code
Such as images, audio/video files, strings or anything related to the visual presentation of
the app
We can define menus, animations, styles, colors and layouts of activity UI using XML
Using resources makes it easy to update d/t characteristics of your app
App Resources
37
Located in the resources (res) directory
Eg.
res/drawable
res/value
u!
o
38
k Y
a n
h