You are on page 1of 29

Lecture 1

An Overview of Mobile
Applications

by
Zana Azeez Kakarash

Email: zana.azeez@kti.edu.krd

2021 – 2022

Kurdistan Technical Institute


(www.kti.edu.krd/ku)
CS Departement
Introduction to Mobile App.

One
Mobile Application Development?

• A mobile app itself is application software developed for smartphones and tablets with various
operating systems: iOS, Android, KaiOS, Harmony OS, Tizen, and others.

Kurdistan Technical Institute 3 Lecturer : Zana Azeez Kakarash


Mobile Operating Systems?

• A mobile operating system (OS) is a software package that allows smartphones, tablets, and

wearable device to manage resources of a device itself and run applications and programs.

• Most mobile operating systems run only on certain hardware. For example, iOS is made for iPhones,

and Android is used on Samsung, Google Pixel, LG, Nokia, and other smartphones.

Kurdistan Technical Institute 4 Lecturer : Zana Azeez Kakarash


What is Android ?

• Android is an open source and Linux-based operating system for mobile devices such as
smartphones and tablet computers.

• Android was developed by the Open Handset Alliance, led by Google, and other companies.

• The first beta version of the Android Software Development Kit (SDK) was released by Google in

2007 where as the first commercial version, Android 1.0, was released in September 2008.

• Java language is mainly used to write the android code even though other languages can be used.

Kurdistan Technical Institute 5 Lecturer : Zana Azeez Kakarash


History of Android

Kurdistan Technical Institute 6 Lecturer : Zana Azeez Kakarash


What is Open Handset Alliance (OHA)

• Open Handset Alliance™, a group of 47 technology and mobile companies have come together to
accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile
experience.

• It was established on 5th November, 2007, led by Google.

Kurdistan Technical Institute 7 Lecturer : Zana Azeez Kakarash


Why Android ?

Kurdistan Technical Institute 8 Lecturer : Zana Azeez Kakarash


Features of Android

• Android is a powerful operating system competing with Apple IOS and supports great features. Few of
them are listed below:

Kurdistan Technical Institute 9 Lecturer : Zana Azeez Kakarash


Features of Android

Kurdistan Technical Institute 10 Lecturer : Zana Azeez Kakarash


History of Android

• The code names of android ranges from A to N currently, such as Aestro, Blender, Cupcake, Donut,
Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat, Lollipop,
Marshmallow , Nougat , Oreo and Pie.

Kurdistan Technical Institute 11 Lecturer : Zana Azeez Kakarash


What is API level?

• Application Programming Interface (API) is an integer value that uniquely identifies the framework.

• Choosing an API level for an application development should take at least two thing into account :

1) Current distribution - How many devices can actually support my application, if it was developed for
API level 9, it cannot run on API level 8 and below, then "only" around 60% of devices can run it (true
to the date this post was made).

2) Choosing a lower API Level : may support more devices but gain less functionality for your app. you
may also work harder to achieve features you could've easily gained if you chose higher API level.

Kurdistan Technical Institute 12 Lecturer : Zana Azeez Kakarash


API level

Kurdistan Technical Institute 13 Lecturer : Zana Azeez Kakarash


Android Architecture

14
Android - Architecture

Kurdistan Technical Institute 15 Lecturer : Zana Azeez Kakarash


Android - Architecture

• Android operating system which is roughly divided into five sections and four main layers in the
architecture diagram.

1) Linux kernel

• It is the heart of android architecture that exists at the root of android architecture.
• Linux kernel is responsible for device drivers, power management, camera, keypad, display,
memory management, device management and resource access.

Kurdistan Technical Institute 16 Lecturer : Zana Azeez Kakarash


Android – Architecture

2) Native Libraries
• On the top of linux kernel, their are Native libraries such as WebKit, OpenGL, FreeType, SQLite,
Media, C runtime library (libc) etc.

• The WebKit library is responsible for browser support, SQLite is for database, FreeType for font
support, Media for playing and recording audio and video formats.

Kurdistan Technical Institute 17 Lecturer : Zana Azeez Kakarash


Android – Architecture

3) Android Runtime
• In android runtime, there are core libraries and DVM (Dalvik Virtual Machine) which is responsible to
run android application.

• DVM is like JVM but it is optimized for mobile devices. It consumes less memory and provides fast
performance.

• Limited memory and battery power.

Kurdistan Technical Institute 18 Lecturer : Zana Azeez Kakarash


Android – Architecture

4) Android Framework :

• Android framework includes Android API's such as UI (User Interface), telephony, resources,
locations, Content Providers (data) and package managers.

• It provides a lot of classes and interfaces for android application development.

Kurdistan Technical Institute 19 Lecturer : Zana Azeez Kakarash


Android – Architecture

5) Applications :

• All applications such as home, contact, settings, games, browsers are using android framework
that uses android runtime and libraries.

• Can replace built in apps.

Kurdistan Technical Institute 20 Lecturer : Zana Azeez Kakarash


Android Components

21
Android - Application Components

• An android component is simply a piece of code that has a well defined life cycle e.g. Activity,
Receiver, Service etc.

• The core building blocks or fundamental components of android are activities, views, intents,
services, content providers, fragments and AndroidManifest.xml.

Kurdistan Technical Institute 22 Lecturer : Zana Azeez Kakarash


Android - Application Components

1 - Activities :
• An activity represents a single screen with a user interface, in-short Activity performs actions on the
screen.

• An activity is implemented as a subclass of Activity class as follows :

public class MainActivity extends Activity {

………

……… }

Kurdistan Technical Institute 23 Lecturer : Zana Azeez Kakarash


Android - Application Components

2 - Services
• A service is a component that runs in the background to perform long-running operations.

• For example, a service might play music in the background while the user is in a different
application, or it might fetch data over the network without blocking user interaction with an activity.

• A service is implemented as a subclass of Service class as follows :

public class MyService extends Service {


………
……… }

24
Android - Application Components

3 - Intent
• Intent is used to call components. It is mainly used to:
- Start the service
- Launch an activity
- Display a web page
- Display a list of contacts
- Broadcast a message
- Dial a phone call etc.

• For example, you may write the following code to view the webpage :

Intent intent = new Intent ( Intent.ACTION_VIEW);


intent.setData ( Uri.parse ( "http://www.google.com" ));
startActivity( intent );

Kurdistan Technical Institute 25 Lecturer : Zana Azeez Kakarash


Android - Application Components

4 - Content Providers

• A content provider component supplies data from one application to others on request.

• Enables sharing of data across applications : E.g. address book, photo gallery.

• A content provider is implemented as a subclass of ContentProvider class

public class MyContentProvider extends ContentProvider {

………

……… }

Kurdistan Technical Institute 26 Lecturer : Zana Azeez Kakarash


Android - Application Components

5 - View
• A view is the UI element such as button, label, text field etc. Anything that you see is a view.

6 - Fragment
• Fragments are like parts of activity. An activity can display one or more fragments on the screen at the
same time.

7 - Android Virtual Device (AVD)


• It is used to test the android application without the need for mobile or tablet etc. It can be created
in different configurations to emulate different types of real devices.

Kurdistan Technical Institute 27 Lecturer : Zana Azeez Kakarash


Software Development
• Development requirements

1. Java

2. Android SDK

• Android SDK

o Class Library
o Developer Tools
o Emulator and System Images
o Documentation and Sample Code

Kurdistan Technical Institute 28 Lecturer : Zana Azeez Kakarash


Thanks!
Any questions ?
You can find me at
◉ zana.azeez@kti.edu.krd
◉ zana.azeez.k@gmail.com

29

You might also like