Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 38

1

DEBREMARKOS INSTITUTE OF TECHNOLOGY

MOBILE PROGRAMMING

LECTURE 1

HISTORY AND OVERVIEW OF MOBILE APPLICATION DEVELOPMENT

Tuesday, March 16, 2021 Wobetu Shiferaw (wobetushiferaw@gmail.com)


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

SQLitein 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

You might also like