0% found this document useful (0 votes)
30 views

Lecture # 01

Uploaded by

Muneeb
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Lecture # 01

Uploaded by

Muneeb
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Lecture # 01

Android
Programming
Prepared By : Arslan Ali Mansab
Android Overview
Architecture
Application Components
Android-Resources
Android-Activities

Agenda Android-Servies
Android-Broadcast Receivers
Android-Content Providers
Android-Fragments
Android-Intents/Filters
Android
Overview
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.

Android offers a unified approach to application development for


mobile devices which means developers need only develop for
Android, and their applications should be able to run on different
devices powered by Android.
What is Android?
2007 2008
The first beta version The first
of the Android commercial
Software Development version, Android
Kit (SDK) was released 1.0, was released
by Google in September
Why Android ?
Features of Beautiful UI
Android OS basic screen provides a beautiful and intuitive user interface.

Android Connectivity
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and
WiMAX.

Storage
SQLite, a lightweight relational database, is used for data storage
purposes.

Media support
H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI,
Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.

Back to Agenda Page Messaging


SMS and MMS
Features of Web browser
Based on the open-source WebKit layout engine, coupled with Chrome's

Android
V8 JavaScript engine supporting HTML5 and CSS3.

Multi-touch
Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero.

Multi-tasking
User can jump from one task to another and same time various
application can run simultaneously.

Resizable widgets
Widgets are resizable, so users can expand them to show more content
or shrink them to save space.

Back to Agenda Page Multi-Language


Supports single direction and bi-directional text.
Features of GCM
Google Cloud Messaging (GCM) is a service that lets developers send short

Android
message data to their users on Android devices, without needing a
proprietary sync solution.

Wi-Fi Direct
A technology that lets apps discover and pair directly, over a high-
bandwidth peer-to-peer connection.

Android Beam
A popular NFC-based technology that lets users instantly share, just by
touching two NFC-enabled phones together.

Back to Agenda Page


Android Applications
Android applications are Once developed, Once developed,
usually developed in the Android applications Android applications
Java language using the can be packaged can be packaged
Android Software easily and sold out easily and sold out
Development Kit. either through a either through a
store such as Google store such as Google
Play, SlideME, Opera Play, SlideME, Opera
Mobile Store, Mobile Store,
Mobango and the Mobango and the
Amazon Appstore. Amazon Appstore.
Categories of There are many android applications
Android in the market. The top categories are −

applications
You will be glad to know that you can start your Android
application development on either of the following

Android - operating systems −

Environment Microsoft Windows XP or later version.


Mac OS X 10.5.8 or later version with Intel chip.

Setup Linux including GNU C Library 2.7 or later.

Android IDEs
There are so many sophisticated Second point is that all the required tools to develop
Technologies are available to Android applications are freely available and can be
develop android applications, downloaded from the Web. Following is the list of software's
the familiar technologies, which you will need before you start your Android application
are predominantly using tools as programming.
follows
Android Studio Java JDK5 or later version
Eclipse IDE(Deprecated) Android Studio
Android - Architecture
Android operating system is a stack of software components which is roughly divided into five
sections and four main layers as shown below in the architecture diagram.
Linux kernel Libraries
At the bottom of the layers is Linux On top of Linux kernel there is a set
- Linux 3.6 with approximately 115 of libraries including open-source
patches. This provides a level of Web browser engine WebKit, well
abstraction between the device known library libc, SQLite database
hardware and it contains all the which is a useful repository for
essential hardware drivers like storage and sharing of application
camera, keypad, display etc. Also, data, libraries to play and record
the kernel handles all the things audio and video, SSL libraries
that Linux is really good at such as responsible for Internet security
networking and a vast array of etc.
device drivers, which take the pain
out of interfacing to peripheral
hardware.
Android Libraries
This category encompasses those Java-based libraries that are specific to
Android development. Examples of libraries in this category include the
application framework libraries in addition to those that facilitate user
interface building, graphics drawing and database access. A summary of some
key core Android libraries available to the Android developer is as follows −
android.app − Provides access to the application model and is the cornerstone of all
Android applications.

android.content − Facilitates content access, publishing and messaging between


applications and application components.

android.database − Used to access data published by content providers and includes


SQLite database management classes.

android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.


android.os − Provides applications with access to standard operating system
services including messages, system services and inter-process
communication.

android.text − Used to render and manipulate text on a device display.

android.view − The fundamental building blocks of application user


interfaces.

android.widget − A rich collection of pre-built user interface components


such as buttons, labels, list views, layout managers, radio buttons etc.

android.webkit − A set of classes intended to allow web-browsing capabilities


to be built into applications.
Android Runtime
This is the third section of the architecture and available on the second layer from
the bottom. This section provides a key component called Dalvik Virtual Machine
which is a kind of Java Virtual Machine specially designed and optimized for Android.

The Dalvik VM makes use of Linux core features like memory management and multi-
threading, which is intrinsic in the Java language. The Dalvik VM enables every
Android application to run in its own process, with its own instance of the Dalvik
virtual machine.

The Android runtime also provides a set of core libraries which enable Android
application developers to write Android applications using standard Java
programming language.
Application Framework
The Application Framework layer provides many higher-level services to applications in
the form of Java classes. Application developers are allowed to make use of these
services in their applications.
The Android framework includes the following key services −
Activity Manager − Controls all aspects of the application lifecycle and activity
stack.
Content Providers − Allows applications to publish and share data with other
applications.
Resource Manager − Provides access to non-code embedded resources such as
strings, color settings and user interface layouts.
Notifications Manager − Allows applications to display alerts and notifications to
the user.
View System − An extensible set of views used to create application user
interfaces.
Android - Application Components
Application components are the essential building blocks of an Android
application. These components are loosely coupled by the application
manifest file AndroidManifest.xml that describes each component of the
application and how they interact.

There are following four main components that can be used within an
Android application −

Activities Services
They dictate the UI and handle the user They handle background processing
interaction to the smart phone screen. associated with an application.

Broadcast Receivers Content Providers


They handle communication between They handle data and database
Android OS and applications. management issues.
Activities
An activity represents a single screen with a user interface,in-short Activity
performs actions on the screen. For example, an email application might have
one activity that shows a list of new emails, another activity to compose an
email, and another activity for reading emails. If an application has more than
one activity, then one of them should be marked as the activity that is
presented when the application is launched.

An activity is implemented as a subclass of Activity class as follows −

public class MainActivity extends Activity {


}
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 {}


Broadcast Receivers
Broadcast Receivers simply respond to broadcast messages from other
applications or from the system. For example, applications can also initiate
broadcasts to let other applications know that some data has been
downloaded to the device and is available for them to use, so this is broadcast
receiver who will intercept this communication and will initiate appropriate
action.
A broadcast receiver is implemented as a subclass of Broadcast Receiver class
and each message is broadcaster as an Intent object.

public class MyReceiver extends BroadcastReceiver {public void


onReceive(context,intent){}}
Content Providers
A content provider component supplies data from one application to others on
request. Such requests are handled by the methods of the ContentResolver
class. The data may be stored in the file system, the database or somewhere
else entirely.
A content provider is implemented as a subclass of ContentProvider class and
must implement a standard set of APIs that enable other applications to
perform transactions.
public class MyContentProvider extends ContentProvider {
public void onCreate()
{}
}
Additional Components
There are additional components which will be used in the construction of above mentioned
entities, their logic, and wiring between them. These components are −

Fragments Layouts Resources


View hierarchies that control External elements, such as
Represents a portion of user
screen format and appearance of strings, constants and
interface in an Activity. the views. drawable pictures.

Views Intents Manifest


UI elements that are drawn on- Configuration file for the
Messages wiring components
screen including buttons, lists application.
together.
forms etc.
Thanks

You might also like