SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 1
3. Introduction to Android
What is Android?
Android is a complete set of software for mobile devices such as tablet computers,
notebooks, smartphones, electronic book readers, set-top boxes etc. It contains a linux-based
Operating System, middleware and key mobile applications.It can be thought of as a
mobile operating system. But it is not limited to mobile only. It is currently used in various
devices such as mobiles, tablets, televisions etc.
Before learning all topics of android, it is required to know what is android.
Android is a software package and linux based operating system for mobile devices such as
tablet computers and smartphones.It is developed by Google and later the OHA (Open
Handset Alliance). Java language is mainly used to write the android code even though other
languages can be used.The goal of android project is to create a successful real-world product
that improves the mobile experience for end users.
Android is an operating system and programming platform developed by Google for
mobile phones and other mobile devices, such as tablets. It can run on many different
devices from many different manufacturers. Android includes a software development kit
(SDK) that helps you write original code and assemble software modules to create apps for
Android users. Android also provides a marketplace to distribute apps. All together,
Android represents an ecosystem for mobile apps.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 2
Why develop apps for Android?
Developers create apps for a variety of reasons. They may need to address business
requirements or build new services or businesses, or they may want to offer games and
other types of content for users. Developers choose to develop for Android in order to
reach the majority of mobile device users.
Most popular platform for mobile apps
As the world's most popular mobile platform, Android powers hundreds of millions of
mobile devices in more than 190 countries around the world. It has the largest installed
base of any mobile platform and is still growing fast. Every day another million users
power up their Android-powered devices for the first time and start looking for apps,
games, and other digital content.
Best experience for app users
Android provides a touchscreen user interface (UI) for interacting with apps. Android's UI
is mainly based on direct manipulation. People use touch gestures such as swiping,
tapping, and pinching to manipulate on-screen objects. In addition to the keyboard, there's
a customizable on-screen keyboard for text input. Android can also support game
controllers and full-size physical keyboards connected by Bluetooth or USB.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 3
The Android home screen can contain several panes of app icons, which launch their
associated apps. Home screen panes can also contain app widgets, which display live,
auto-updating content such as the weather, the user's email inbox, or a news ticker.
Android can also play multimedia content such as music, animation, and video. The figure
above shows app icons on the home screen (left), playing music (center), and displaying
app widgets (right). Along the top of the screen is a status bar, showing information about
the device and its connectivity. The Android home screen may be made up of several
panes, and the user swipes back and forth between the panes.
Android is designed to provide immediate response to user input. Besides a dynamic
interface that responds immediately to touch, an Android-powered device can vibrate to
provide haptic feedback. Many apps take advantage of internal hardware such as
accelerometers, gyroscopes, and proximity sensors to respond to additional user actions.
These sensors can also detect screen rotation. For example, you could design a racing
game where the user rotates the device as if it were a steering wheel.
The Android platform, based on the Linux kernel, is designed primarily for touchscreen
mobile devices such as mobile phones and tablets. Because Android-powered devices are
usually battery-powered, Android is designed to manage processes to keep power
consumption at a minimum, providing longer battery use.
It's easy to develop apps
To develop apps that take advantage of the Android operating system and UI, use the
Android software development kit (SDK). The SDK includes software libraries of
prewritten code, a debugger, a device emulator, documentation, sample code, and tutorials.
Use the SDK to create apps that look great and take advantage of the hardware capabilities
available on each Android-powered device.
To develop apps using the SDK, you use the Java programming language to develop the
app and Extensible Markup Language (XML) files to describe data resources. By writing
the code in Java and creating a single app binary, you create an app that can run on both
phone and tablet form factors. You can declare your UI in lightweight sets of XML
resources. For example, create one set for parts of the UI that are common to all form
factors, and other sets for features specific to phones or tablets. At runtime, Android
applies the correct resource sets based on the device's screen size, screen density, locale,
and so on.
To help you develop your apps efficiently, Google offers an integrated development
environment (IDE) called Android Studio. It offers advanced features for developing,
debugging, and packaging Android apps. Using Android Studio, you can develop for any
Android-powered device, or create virtual devices that emulate any hardware
configuration.
Android provides a rich development architecture. You don't need to know much about the
components of this architecture, but it is useful to know what is available in the system for
your app to use. The following diagram shows the major components of the
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 4
Android stack—the operating system and development architecture.
In the figure above:
1. Apps: Your apps live at this level, along with core system apps for email, SMS messaging,
calendars, internet browsing, and contacts.
2. Java API framework: All features for Android development, such as UI
components, resource management, and lifecycle management, are available through
application programming interfaces (APIs). You don't need to know the details of how the
APIs work. You only need to learn how to use them.
3. Libraries and Android runtime: Each app runs in its own process, with its own instance of
the Android runtime. Android includes a set of core runtime libraries that provide most of
the functionality of the Java programming language. Many core Android system
components and services are built from native code that require native libraries written in
C and C++. These native libraries are available to apps through the Java API framework.
4. Hardware abstraction layer (HAL): This layer provides standard interfaces that expose
device hardware capabilities to the higher-level Java API framework. The HAL consists of
multiple library modules, each of which implements an interface for a specific type of
hardware component, such as the camera or Bluetooth module.
5. Linux kernel: The foundation of the Android platform is the Linux kernel. The layers
above the Linux kernel rely on the Linux kernel for threading, low-level memory
management, and other underlying functionality. Using a Linux kernel enables Android to
take advantage of Linux-based security features and allows device manufacturers to
develop hardware drivers for a well-known kernel.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 5
Many distribution options
You can distribute your Android app in many different ways: email, website, or an app
marketplace such as Google Play. Android users download billions of apps and games
from the Google Play store each month. Google Play is a digital distribution service,
operated and developed by Google, that serves as the official app store for Android.
Google Play lets consumers to browse and download apps developed with the Android
SDK.
Code name Version number Initial release
date
API
level
N/A 1.0 23 September 2008 1
1.1 9 February 2009 2
Cupcake 1.5 27 April 2009 3
Donut 1.6 15 September 2009 4
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 6
Eclair 2.0 – 2.1 26 October 2009 5–7
Froyo 2.2 – 2.2.3 20 May 2010 8
Gingerbread 2.3 – 2.3.7 6 December 2010 9–10
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 7
Honeycomb 3.0 – 3.2.6 22 February 2011 11–13
IceCreamSandwich 4.0 – 4.0.4 18 October 2011 14–15
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 8
JellyBean 4.1 – 4.3.1 9 July 2012 16–18
KitKat 4.4 – 4.4.4 31 October 2013 19–20
Lollipop 5.0 – 5.1.1 12 November 2014 21–22
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 9
Android versions
Google provides major incremental upgrades to the Android operating system using
confectionery-themed names. The latest major release is Android 8.0 "Oreo".
Tip: See previous versions and their features at The Android Story. The dashboard for
platform versions shows the distribution of active devices running each version of
Android, based on the number of devices that visit the Google Play store. It's a good
practice to support about 90% of the active devices, while targeting your app to the latest
version.
Marshmallow 6.0 – 6.0.1 5 October 2015 23
Nougat
7.0 22 August 2016 24
Oreo 8.0 August 21, 2017 26
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 10
Note: To provide the best features and functionality across Android versions, use
the Android Support Library in your app. This library allows your app to use recent
Android platform APIs on older devices.
The challenges of Android app development
While the Android platform provides rich functionality for app development, there are still
a number of challenges you need to address, such as:
 Building for a multiscreen world
 Getting performance right
 Keeping your code and your users more secure
 Making sure your app is compatible with older platform versions
 Understanding the market and the user
Building for a multi-screen world
Android runs on billions of handheld devices around the world and supports various form
factors including wearable devices and televisions. Devices come in different sizes and
shapes, which affects how you design the screens and UI elements in your apps.
In addition, device manufacturers may add their own UI elements, styles, and colors to
differentiate their products. Each manufacturer offers different features with respect to
keyboard forms, screen size, or camera buttons. An app running on one device may look a
bit different on another. Your challenge, as a developer, is to design UI elements that work
on all devices.
Maximizing app performance
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 11
An app's performance is determined by how fast it runs, how easily it connects to the
network, and how well it manages battery and memory usage. Performance is affected by
factors such as battery life, multimedia content, and internet access. Be aware that some
features you design for your app may cause performance problems for users. For example,
to save the user's battery power, enable background services only when they are necessary.
Keeping your code and your users more secure
You need to take precautions to make your code, and the user's experience when they use
your app, as secure as possible.
 Use tools such as ProGuard, which is provided in Android Studio. ProGuard detects and
removes unused classes, fields, methods, and attributes.
 Encrypt all of your app's code and resources while packaging the app.
 To protect critical user information such as logins and passwords, secure your
communication channel to protect data in transit across the internet, as well as data at rest
on the device.
Remaining compatible with older versions of Android
The Android platform continues to improve and provide new features you can add to your
apps. However, you should ensure that your app can still run on devices with older
versions of Android. It is impractical to focus only on the most recent Android version, as
not all users may have upgraded or may be able to upgrade their devices. Fortunately
Android Studio provides options for developers to more easily remain compatible with
older versions
Overview Of Android
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.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 12
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.
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.
On June 27, 2012, at the Google I/O conference, Google announced the next Android
version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of
improving the user interface, both in terms of functionality and performance.
The source code for Android is available under free and open source software licenses.
Google publishes most of the code under the Apache License version 2.0 and the rest, Linux
kernel changes, under the GNU General Public License version 2.
Why Android ?
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 13
Features of Android
Android is a powerful operating system competing with Apple 4GS and supports great
features. Few of them are listed below −
Sr.No. Feature & Description
1
Beautiful UI
Android OS basic screen provides a beautiful and intuitive user interface.
2
Connectivity
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.
3
Storage
SQLite, a lightweight relational database, is used for data storage purposes.
4
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.
5
Messaging
SMS and MMS
6
Web browser
Based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine
supporting HTML5 and CSS3.
7
Multi-touch
Android has native support for multi-touch which was initially made available in handsets such
as the HTC Hero.
8
Multi-tasking
User can jump from one task to another and same time various application can run
simultaneously.
9
Resizable widgets
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 14
Widgets are resizable, so users can expand them to show more content or shrink them to save
space.
10
Multi-Language
Supports single direction and bi-directional text.
11
GCM
Google Cloud Messaging (GCM) is a service that lets developers send short message data to
their users on Android devices, without needing a proprietary sync solution.
12
Wi-Fi Direct
A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer
connection.
13
Android Beam
A popular NFC-based technology that lets users instantly share, just by touching two NFC-
enabled phones together.
Android Applications
Android applications are usually developed in the Java language using the Android Software
Development Kit.
Once developed, Android applications can be packaged easily and sold out either through a
store such as Google Play, SlideME, Opera Mobile Store, Mobango, F-droid and
the Amazon Appstore.
Android powers hundreds of millions of mobile devices in more than 190 countries around
the world. It's the largest installed base of any mobile platform and growing fast. Every day
more than 1 million new Android devices are activated worldwide.
This tutorial has been written with an aim to teach you how to develop and package Android
application. We will start from environment setup for Android application programming and
then drill down to look into various aspects of Android applications.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 15
Categories of Android applications
There are many android applications in the market. The top categories are −
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 and Marshmallow. Let's understand the android history in a sequence.
What is API level?
API Level is an integer value that uniquely identifies the framework API revision offered by
a version of the Android platform.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 16
Platform Version API Level VERSION_CODE
Android 6.0 23 MARSHMALLOW
Android 5.1 22 LOLLIPOP_MR1
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat for Wearables Only
Android 4.4 19 KITKAT
Android 4.3 18 JELLY_BEAN_MR2
Android 4.2, 4.2.2 17 JELLY_BEAN_MR1
Android 4.1, 4.1.1 16 JELLY_BEAN
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1
Android 3.0.x 11 HONEYCOMB
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 17
Android 2.3.2
Android 2.3.1
Android 2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO
Android 2.1.x 7 ECLAIR_MR1
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT
Android 1.5 3 CUPCAKE
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE
Environment Setup
You will be glad to know that you can start your Android application development on
either of the following operating systems −
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 18
 Microsoft Windows XP or later version.
 Mac OS X 10.5.8 or later version with Intel chip.
 Linux including GNU C Library 2.7 or later.
Second point is that all the required tools to develop Android applications are freely
available and can be downloaded from the Web. Following is the list of software's
you will need before you start your Android application programming.
 Java JDK5 or later version
 Android Studio
Here last two components are optional and if you are working on Windows machine
then these components make your life easy while doing Java based application
development. So let us have a look how to proceed to set required environment.
Set-up Java Development Kit (JDK)
You can download the latest version of Java JDK from Oracle's Java site − Java SE
Downloads. You will find instructions for installing JDK in downloaded files, follow
the given instructions to install and configure the setup. Finally set PATH and
JAVA_HOME environment variables to refer to the directory that
contains java and javac, typically java_install_dir/bin and java_install_dir
respectively.
If you are running Windows and installed the JDK in C:jdk1.8.0_102, you would
have to put the following line in your C:autoexec.bat file.
set PATH=C:jdk1.8.0_102bin;%PATH%
set JAVA_HOME=C:jdk1.8.0_102
Alternatively, you could also right-click on My Computer, select Properties,
then Advanced, then Environment Variables. Then, you would update the PATH
value and press the OK button.
On Linux, if the SDK is installed in /usr/local/jdk1.8.0_102 and you use the C shell,
you would put the following code into your .cshrc file.
setenv PATH /usr/local/jdk1.8.0_102/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.8.0_102
Alternatively, if you use Android studio, then it will know automatically where you
have installed your Java.
Android IDEs
There are so many sophisticated Technologies are available to develop android
applications, the familiar technologies, which are predominantly using tools as
follows
 Android Studio
 Eclipse IDE(Deprecated)
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 19
Android Architecture & Framework
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.
Android Architecture
android architecture or Android software stack is categorized into five parts:
1. linux kernel
2. native libraries (middleware),
3. Android Runtime
4. Application Framework
5. Applications
Let's see the android architecture first.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 20
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,
memory management, device management and resource access.
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.
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.
4) Android Framework
On the top of Native libraries and android runtime, there is 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.
5) Applications
On the top of android framework, there are applications. All applications such as
home, contact, settings, games, browsers are using android framework that uses
android runtime and libraries. Android runtime and native libraries are using linux
kernal.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 21
1.Linux kernel
At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. This
provides a level of abstraction between the device hardware and it contains all the
essential hardware drivers like camera, keypad, display etc. Also, the kernel
handles all the things that Linux is really good at such as networking and a vast
array of device drivers, which take the pain out of interfacing to peripheral hardware.
2.Libraries
On top of Linux kernel there is a set of libraries including open-source Web browser
engine WebKit, well known library libc, SQLite database which is a useful repository
for storage and sharing of application data, libraries to play and record audio and
video, SSL libraries responsible for Internet security etc.
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.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 22
 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.
Having covered the Java-based core libraries in the Android runtime, it is now time
to turn our attention to the C/C++ based libraries contained in this layer of the
Android software stack.
3.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.
4.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.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 23
 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.
5.Applications
You will find all the Android application at the top layer. You will write your
application to be installed on this layer only. Examples of such applications are
Contacts Books, Browser, Games etc.
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 −
Sr.No Components & Description
1 Activities
They dictate the UI and handle the user interaction to the smart phone screen.
2 Services
They handle background processing associated with an application.
3 Broadcast Receivers
They handle communication between Android OS and applications.
4 Content Providers
They handle data and database management issues.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 24
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 BroadcastReceiver 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.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 25
public class MyContentProvider extends ContentProvider {
public void onCreate(){}
}
We will go through these tags in detail while covering application components in
individual chapters.
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 −
S.No Components & Description
1 Fragments
Represents a portion of user interface in an Activity.
2 Views
UI elements that are drawn on-screen including buttons, lists forms etc.
3 Layouts
View hierarchies that control screen format and appearance of the views.
4 Intents
Messages wiring components together.
5 Resources
External elements, such as strings, constants and drawable pictures.
6 Manifest
Configuration file for the application.
Android Hello World Example
Let us start actual programming with Android Framework. Before you start writing
your first example using Android SDK, you have to make sure that you have set-up
your Android development environment properly as explained in Android -
Environment Set-up tutorial. I also assume that you have a little bit working
knowledge with Android studio.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 26
So let us proceed to write a simple Android Application which will print "Hello
World!".
Create Android Application
The first step is to create a simple Android Application using Android studio. When
you click on Android studio icon, it will show screen as shown below
You can start your application development by calling start a new android studio
project. in a new installation frame should ask Application name, package
information and location of the project.−
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 27
After entered application name, it going to be called select the form factors your
application runs on, here need to specify Minimum SDK, in our tutorial, I have
declared as API23: Android 6.0(Mashmallow) −
The next level of installation should contain selecting the activity to mobile, it
specifies the default layout for Applications.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 28
At the final stage it going to be open development tool to write the application code.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 29
Anatomy of Android Application
Before you run your app, you should be aware of a few directories and files in the
Android project −
Sr.No. Folder, File & Description
1
Java
This contains the .java source files for your project. By default, it includes
an MainActivity.java source file having an activity class that runs when your app is
launched using the app icon.
2
res/drawable-hdpi
This is a directory for drawable objects that are designed for high-density screens.
3
res/layout
This is a directory for files that define your app's user interface.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 30
4
res/values
This is a directory for other various XML files that contain a collection of resources,
such as strings and colours definitions.
5
AndroidManifest.xml
This is the manifest file which describes the fundamental characteristics of the app
and defines each of its components.
6
Build.gradle
This is an auto generated file which contains compileSdkVersion, buildToolsVersion,
applicationId, minSdkVersion, targetSdkVersion, versionCode and versionName
Following section will give a brief overview of the important application files.
The Main Activity File
The main activity code is a Java file MainActivity.java. This is the actual
application file which ultimately gets converted to a Dalvik executable and runs your
application. Following is the default code generated by the application wizard
for Hello World! application −
package com.example.helloworld;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Here, R.layout.activity_main refers to the activity_main.xml file located in
the res/layout folder. The onCreate() method is one of many methods that are
figured when an activity is loaded.
The Manifest File
Whatever component you develop as a part of your application, you must declare all
its components in a manifest.xml which resides at the root of the application project
directory. This file works as an interface between Android OS and your application,
so if you do not declare your component in this file, then it will not be considered by
the OS. For example, a default manifest file will look like as following file −
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 31
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tutorialspoint7.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Here <application>...</application> tags enclosed the components related to the
application. Attribute android:icon will point to the application icon available
under res/drawable-hdpi. The application uses the image named ic_launcher.png
located in the drawable folders
The <activity> tag is used to specify an activity and android:name attribute specifies
the fully qualified class name of the Activity subclass and the android:label attributes
specifies a string to use as the label for the activity. You can specify multiple
activities using <activity> tags.
The action for the intent filter is named android.intent.action.MAIN to indicate that
this activity serves as the entry point for the application. The category for the intent-
filter is named android.intent.category.LAUNCHER to indicate that the application
can be launched from the device's launcher icon.
The @string refers to the strings.xml file explained below.
Hence, @string/app_name refers to the app_name string defined in the strings.xml
file, which is "HelloWorld". Similar way, other strings get populated in the
application.
Following is the list of tags which you will use in your manifest file to specify
different Android application components −
 <activity>elements for activities
 <service> elements for services
 <receiver> elements for broadcast receivers
 <provider> elements for content providers
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 32
The Strings File
The strings.xml file is located in the res/values folder and it contains all the text
that your application uses. For example, the names of buttons, labels, default text,
and similar types of strings go into this file. This file is responsible for their textual
content. For example, a default strings file will look like as following file −
<resources>
<string name="app_name">HelloWorld</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>
The Layout File
The activity_main.xml is a layout file available in res/layout directory, that is
referenced by your application when building its interface. You will modify this file
very frequently to change the layout of your application. For your "Hello World!"
application, this file will have following content related to default layout −
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
</RelativeLayout>
This is an example of simple RelativeLayout which we will study in a separate
chapter. The TextView is an Android control used to build the GUI and it have
various attributes like android:layout_width, android:layout_height etc which are
being used to set its width and height etc.. The @string refers to the strings.xml file
located in the res/values folder. Hence, @string/hello_world refers to the hello string
defined in the strings.xml file, which is "Hello World!".
Running the Application
Let's try to run our Hello World! application we just created. I assume you had
created your AVD while doing environment set-up. To run the app from Android
studio, open one of your project's activity files and click Run icon from the tool
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 33
bar. Android studio installs the app on your AVD and starts it and if everything is
fine with your set-up and application, it will display following Emulator window −
Congratulations!!! you have developed your first Android Application and now just
keep following rest of the tutorial step by step to become a great Android Developer.
All the very best.
Android Emulator
Android Emulator
The Android emulator is an Android Virtual Device (AVD), which represents a
specific Android device. We can use the Android emulator as a target device to
execute and test our Android application on our PC. The Android emulator provides
almost all the functionality of a real device. We can get the incoming phone calls and
text messages. It also gives the location of the device and simulates different network
speeds. Android emulator simulates rotation and other hardware sensors. It accesses
the Google Play store, and much more
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 34
Testing Android applications on emulator are sometimes faster and easier than
doing on a real device. For example, we can transfer data faster to the emulator than
to a real device connected through USB.
The Android emulator comes with predefined configurations for several Android
phones, Wear OS, tablet, Android TV devices.
Requirement and recommendations
The Android emulator takes additional requirements beyond the basic system
requirement for Android Studio. These requirements are given below:
o SDK Tools 26.1.1 or higher
o 64-bit processor
o Windows: CPU with UG (unrestricted guest) support
o HAXM 6.2.1 or later (recommended HAXM 7.2.0 or later)
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 35
Install the emulator
The Android emulator is installed while installing the Android Studio. However some
components of emulator may or may not be installed while installing Android Studio.
To install the emulator component, select the Android Emulator component in
the SDK Tools tab of the SDK Manager.
Run an Android app on the Emulator
We can run an Android app form the Android Studio project, or we can run an app
which is installed on the Android Emulator as we run any app on a device.
To start the Android Emulator and run an application in our project:
1. In Android Studio, we need to create an Android Virtual Device (AVD) that the
emulator can use to install and run your app. To create a new AVD:-
1.1 Open the AVD Manager by clicking Tools > AVD Manager.
1.2 Click on Create Virtual Device, at the bottom of the AVD Manager dialog.
Then Select Hardware page appears.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 36
1.3 Select a hardware profile and then click Next. If we don?t see the hardware
profile we want, then we can create or import a hardware profile. The System
Image page appears.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 37
1.4 Select the system image for the particular API level and click Next. This leads to
open a Verify Configuration page.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 38
1.5 Change AVD properties if needed, and then click Finish.
2. In the toolbar, choose the AVD, which we want to run our app from the target
device from the drop-down menu.
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 39
3. Click Run.
Launch the Emulator without first running an app
To start the emulator:
1. Open the AVD Manager.
2. Double-click an AVD, or click Run
While the emulator is running, we can run the Android Studio project and select the
emulator as the target device. We can also drag an APKs file to install on an
emulator, and then run them.
Start the emulator from the command line
The Android SDK includes the Android device emulator. Android emulator lets you
develop and test out the application without using a physical device.
Starting the emulator
Using the emulator command, we will start an emulator. It is an alternative to run
our project or start through the AVD Manager.
Here is the basic command-line syntax for starting a virtual device:
1. $ emulator -avd avd_name [ {-option [value]} ... ]
or
1. $ emulator @avd_name [ {-option [value]} ... ]
For example, if we execute the emulator from Android Studio on a Mac, the default
command line will be similar as follows:
1. $ /Users/user_name/Library/Android/sdk/emulator/emulator -avd Nexus_5X_API_23 -
netdelay none -netspeed full
To display the list of AVD names, enter the following command:
1. $ emulator -list-avds
MT Unit 3-Introduction to Android
GCEK MobileTechnologies ~Swapnali Pawar Page 40
Run and stop an emulator, and clear data
From the Virtual Device page, we can perform the following operation on emulator:
o To run an Android emulator that uses an AVD, double-click the AVD, or
click Launch
o To stop the running emulator, right-click and select Stop, or click Menu ▼ and
select Stop.
o If we want to clear the data from an emulator and return it to the initial state
when it was first defined, then right-click an AVD and select Wipe Data. Or
click menu ▼ and select Wipe Data.
Useful Resourses-
https://developer.android.com/studio/workflow
https://www.youtube.com/watch?v=fis26HvvDII

Contenu connexe

Tendances

Mobile Trends - Sosyal Medya Akademi
Mobile Trends - Sosyal Medya Akademi Mobile Trends - Sosyal Medya Akademi
Mobile Trends - Sosyal Medya Akademi
Yagmur Anish
 

Tendances (20)

ppt based on android technology with great animations
ppt based on android technology with great animationsppt based on android technology with great animations
ppt based on android technology with great animations
 
Android
AndroidAndroid
Android
 
ANDROID technology
ANDROID technologyANDROID technology
ANDROID technology
 
Unit 3 introduction to android
Unit 3 introduction to android Unit 3 introduction to android
Unit 3 introduction to android
 
Android OS 2019
Android OS 2019Android OS 2019
Android OS 2019
 
Android development
Android developmentAndroid development
Android development
 
Mobile Trends - Sosyal Medya Akademi
Mobile Trends - Sosyal Medya Akademi Mobile Trends - Sosyal Medya Akademi
Mobile Trends - Sosyal Medya Akademi
 
IOS vs Android presentation by Saikrishna
IOS vs Android presentation by SaikrishnaIOS vs Android presentation by Saikrishna
IOS vs Android presentation by Saikrishna
 
"iPhone vs Andriod," Anthony Hand
"iPhone vs Andriod," Anthony Hand"iPhone vs Andriod," Anthony Hand
"iPhone vs Andriod," Anthony Hand
 
Android Operating system
Android Operating systemAndroid Operating system
Android Operating system
 
Why Android Is The Most Popular Mobile Operating System In The World ?
Why Android Is The Most Popular Mobile Operating System In The World ?Why Android Is The Most Popular Mobile Operating System In The World ?
Why Android Is The Most Popular Mobile Operating System In The World ?
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Android OS PPT
Android OS PPTAndroid OS PPT
Android OS PPT
 
Android introduction (ilyas)
Android introduction (ilyas)Android introduction (ilyas)
Android introduction (ilyas)
 
Introduction to anorid
Introduction to anoridIntroduction to anorid
Introduction to anorid
 
Android operating System
Android operating SystemAndroid operating System
Android operating System
 
Andriod
AndriodAndriod
Andriod
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Presentation2 android Os
Presentation2 android OsPresentation2 android Os
Presentation2 android Os
 

Similaire à Introduction to android

presentation2-141101015616-conversion-gate01.pdf
presentation2-141101015616-conversion-gate01.pdfpresentation2-141101015616-conversion-gate01.pdf
presentation2-141101015616-conversion-gate01.pdf
imau6
 
Outstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement AwardOutstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement Award
pravinmali2191
 

Similaire à Introduction to android (20)

Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Unit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-assUnit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-ass
 
Introduction to Android Environment
Introduction to Android EnvironmentIntroduction to Android Environment
Introduction to Android Environment
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
presentation2-141101015616-conversion-gate01.pdf
presentation2-141101015616-conversion-gate01.pdfpresentation2-141101015616-conversion-gate01.pdf
presentation2-141101015616-conversion-gate01.pdf
 
beginning-android-4-application-development-lee--annas-archive--libgenrs-nf-2...
beginning-android-4-application-development-lee--annas-archive--libgenrs-nf-2...beginning-android-4-application-development-lee--annas-archive--libgenrs-nf-2...
beginning-android-4-application-development-lee--annas-archive--libgenrs-nf-2...
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
 
Android Architecture and Working
Android Architecture and WorkingAndroid Architecture and Working
Android Architecture and Working
 
Mobile Hacking Unit 1
Mobile Hacking Unit 1Mobile Hacking Unit 1
Mobile Hacking Unit 1
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Android Training Course In Chandigarh
Android Training Course In ChandigarhAndroid Training Course In Chandigarh
Android Training Course In Chandigarh
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Android.... (4.4 included)
Android.... (4.4 included)Android.... (4.4 included)
Android.... (4.4 included)
 
Android...by raziel lucagbo
Android...by raziel lucagboAndroid...by raziel lucagbo
Android...by raziel lucagbo
 
Android
AndroidAndroid
Android
 
Outstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement AwardOutstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement Award
 
Introduction to Andriod
Introduction to AndriodIntroduction to Andriod
Introduction to Andriod
 
android app development training report
android app development training reportandroid app development training report
android app development training report
 
Consumer Electronics
Consumer ElectronicsConsumer Electronics
Consumer Electronics
 

Plus de Swapnali Pawar

Plus de Swapnali Pawar (18)

Unit 1-Introduction to Mobile Computing
Unit 1-Introduction to Mobile ComputingUnit 1-Introduction to Mobile Computing
Unit 1-Introduction to Mobile Computing
 
Unit 2.design mobile computing architecture
Unit 2.design mobile computing architectureUnit 2.design mobile computing architecture
Unit 2.design mobile computing architecture
 
Introduction to ios
Introduction to iosIntroduction to ios
Introduction to ios
 
Fresher interview tips demo
Fresher interview tips demoFresher interview tips demo
Fresher interview tips demo
 
View & index in SQL
View & index in SQLView & index in SQL
View & index in SQL
 
SQL JOINS
SQL JOINSSQL JOINS
SQL JOINS
 
Unit 2.design computing architecture 2.1
Unit 2.design computing architecture 2.1Unit 2.design computing architecture 2.1
Unit 2.design computing architecture 2.1
 
Unit 2 Design mobile computing architecture MC1514
Unit 2 Design mobile computing architecture MC1514Unit 2 Design mobile computing architecture MC1514
Unit 2 Design mobile computing architecture MC1514
 
Design computing architecture ~ Mobile Technologies
Design computing architecture ~ Mobile TechnologiesDesign computing architecture ~ Mobile Technologies
Design computing architecture ~ Mobile Technologies
 
Exception Handling
Exception Handling Exception Handling
Exception Handling
 
Mobile technology-Unit 1
Mobile technology-Unit 1Mobile technology-Unit 1
Mobile technology-Unit 1
 
Mobile Technology 3
Mobile Technology 3Mobile Technology 3
Mobile Technology 3
 
Web Programming& Scripting Lab
Web Programming& Scripting LabWeb Programming& Scripting Lab
Web Programming& Scripting Lab
 
Mobile Technology
Mobile TechnologyMobile Technology
Mobile Technology
 
Mobile Technology
Mobile TechnologyMobile Technology
Mobile Technology
 
Database Management System 1
Database Management System 1Database Management System 1
Database Management System 1
 
web programming & scripting 2
web programming & scripting 2web programming & scripting 2
web programming & scripting 2
 
web programming & scripting
web programming & scriptingweb programming & scripting
web programming & scripting
 

Dernier

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Dernier (20)

Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 

Introduction to android

  • 1. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 1 3. Introduction to Android What is Android? Android is a complete set of software for mobile devices such as tablet computers, notebooks, smartphones, electronic book readers, set-top boxes etc. It contains a linux-based Operating System, middleware and key mobile applications.It can be thought of as a mobile operating system. But it is not limited to mobile only. It is currently used in various devices such as mobiles, tablets, televisions etc. Before learning all topics of android, it is required to know what is android. Android is a software package and linux based operating system for mobile devices such as tablet computers and smartphones.It is developed by Google and later the OHA (Open Handset Alliance). Java language is mainly used to write the android code even though other languages can be used.The goal of android project is to create a successful real-world product that improves the mobile experience for end users. Android is an operating system and programming platform developed by Google for mobile phones and other mobile devices, such as tablets. It can run on many different devices from many different manufacturers. Android includes a software development kit (SDK) that helps you write original code and assemble software modules to create apps for Android users. Android also provides a marketplace to distribute apps. All together, Android represents an ecosystem for mobile apps.
  • 2. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 2 Why develop apps for Android? Developers create apps for a variety of reasons. They may need to address business requirements or build new services or businesses, or they may want to offer games and other types of content for users. Developers choose to develop for Android in order to reach the majority of mobile device users. Most popular platform for mobile apps As the world's most popular mobile platform, Android powers hundreds of millions of mobile devices in more than 190 countries around the world. It has the largest installed base of any mobile platform and is still growing fast. Every day another million users power up their Android-powered devices for the first time and start looking for apps, games, and other digital content. Best experience for app users Android provides a touchscreen user interface (UI) for interacting with apps. Android's UI is mainly based on direct manipulation. People use touch gestures such as swiping, tapping, and pinching to manipulate on-screen objects. In addition to the keyboard, there's a customizable on-screen keyboard for text input. Android can also support game controllers and full-size physical keyboards connected by Bluetooth or USB.
  • 3. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 3 The Android home screen can contain several panes of app icons, which launch their associated apps. Home screen panes can also contain app widgets, which display live, auto-updating content such as the weather, the user's email inbox, or a news ticker. Android can also play multimedia content such as music, animation, and video. The figure above shows app icons on the home screen (left), playing music (center), and displaying app widgets (right). Along the top of the screen is a status bar, showing information about the device and its connectivity. The Android home screen may be made up of several panes, and the user swipes back and forth between the panes. Android is designed to provide immediate response to user input. Besides a dynamic interface that responds immediately to touch, an Android-powered device can vibrate to provide haptic feedback. Many apps take advantage of internal hardware such as accelerometers, gyroscopes, and proximity sensors to respond to additional user actions. These sensors can also detect screen rotation. For example, you could design a racing game where the user rotates the device as if it were a steering wheel. The Android platform, based on the Linux kernel, is designed primarily for touchscreen mobile devices such as mobile phones and tablets. Because Android-powered devices are usually battery-powered, Android is designed to manage processes to keep power consumption at a minimum, providing longer battery use. It's easy to develop apps To develop apps that take advantage of the Android operating system and UI, use the Android software development kit (SDK). The SDK includes software libraries of prewritten code, a debugger, a device emulator, documentation, sample code, and tutorials. Use the SDK to create apps that look great and take advantage of the hardware capabilities available on each Android-powered device. To develop apps using the SDK, you use the Java programming language to develop the app and Extensible Markup Language (XML) files to describe data resources. By writing the code in Java and creating a single app binary, you create an app that can run on both phone and tablet form factors. You can declare your UI in lightweight sets of XML resources. For example, create one set for parts of the UI that are common to all form factors, and other sets for features specific to phones or tablets. At runtime, Android applies the correct resource sets based on the device's screen size, screen density, locale, and so on. To help you develop your apps efficiently, Google offers an integrated development environment (IDE) called Android Studio. It offers advanced features for developing, debugging, and packaging Android apps. Using Android Studio, you can develop for any Android-powered device, or create virtual devices that emulate any hardware configuration. Android provides a rich development architecture. You don't need to know much about the components of this architecture, but it is useful to know what is available in the system for your app to use. The following diagram shows the major components of the
  • 4. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 4 Android stack—the operating system and development architecture. In the figure above: 1. Apps: Your apps live at this level, along with core system apps for email, SMS messaging, calendars, internet browsing, and contacts. 2. Java API framework: All features for Android development, such as UI components, resource management, and lifecycle management, are available through application programming interfaces (APIs). You don't need to know the details of how the APIs work. You only need to learn how to use them. 3. Libraries and Android runtime: Each app runs in its own process, with its own instance of the Android runtime. Android includes a set of core runtime libraries that provide most of the functionality of the Java programming language. Many core Android system components and services are built from native code that require native libraries written in C and C++. These native libraries are available to apps through the Java API framework. 4. Hardware abstraction layer (HAL): This layer provides standard interfaces that expose device hardware capabilities to the higher-level Java API framework. The HAL consists of multiple library modules, each of which implements an interface for a specific type of hardware component, such as the camera or Bluetooth module. 5. Linux kernel: The foundation of the Android platform is the Linux kernel. The layers above the Linux kernel rely on the Linux kernel for threading, low-level memory management, and other underlying functionality. Using a Linux kernel enables Android to take advantage of Linux-based security features and allows device manufacturers to develop hardware drivers for a well-known kernel.
  • 5. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 5 Many distribution options You can distribute your Android app in many different ways: email, website, or an app marketplace such as Google Play. Android users download billions of apps and games from the Google Play store each month. Google Play is a digital distribution service, operated and developed by Google, that serves as the official app store for Android. Google Play lets consumers to browse and download apps developed with the Android SDK. Code name Version number Initial release date API level N/A 1.0 23 September 2008 1 1.1 9 February 2009 2 Cupcake 1.5 27 April 2009 3 Donut 1.6 15 September 2009 4
  • 6. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 6 Eclair 2.0 – 2.1 26 October 2009 5–7 Froyo 2.2 – 2.2.3 20 May 2010 8 Gingerbread 2.3 – 2.3.7 6 December 2010 9–10
  • 7. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 7 Honeycomb 3.0 – 3.2.6 22 February 2011 11–13 IceCreamSandwich 4.0 – 4.0.4 18 October 2011 14–15
  • 8. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 8 JellyBean 4.1 – 4.3.1 9 July 2012 16–18 KitKat 4.4 – 4.4.4 31 October 2013 19–20 Lollipop 5.0 – 5.1.1 12 November 2014 21–22
  • 9. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 9 Android versions Google provides major incremental upgrades to the Android operating system using confectionery-themed names. The latest major release is Android 8.0 "Oreo". Tip: See previous versions and their features at The Android Story. The dashboard for platform versions shows the distribution of active devices running each version of Android, based on the number of devices that visit the Google Play store. It's a good practice to support about 90% of the active devices, while targeting your app to the latest version. Marshmallow 6.0 – 6.0.1 5 October 2015 23 Nougat 7.0 22 August 2016 24 Oreo 8.0 August 21, 2017 26
  • 10. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 10 Note: To provide the best features and functionality across Android versions, use the Android Support Library in your app. This library allows your app to use recent Android platform APIs on older devices. The challenges of Android app development While the Android platform provides rich functionality for app development, there are still a number of challenges you need to address, such as:  Building for a multiscreen world  Getting performance right  Keeping your code and your users more secure  Making sure your app is compatible with older platform versions  Understanding the market and the user Building for a multi-screen world Android runs on billions of handheld devices around the world and supports various form factors including wearable devices and televisions. Devices come in different sizes and shapes, which affects how you design the screens and UI elements in your apps. In addition, device manufacturers may add their own UI elements, styles, and colors to differentiate their products. Each manufacturer offers different features with respect to keyboard forms, screen size, or camera buttons. An app running on one device may look a bit different on another. Your challenge, as a developer, is to design UI elements that work on all devices. Maximizing app performance
  • 11. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 11 An app's performance is determined by how fast it runs, how easily it connects to the network, and how well it manages battery and memory usage. Performance is affected by factors such as battery life, multimedia content, and internet access. Be aware that some features you design for your app may cause performance problems for users. For example, to save the user's battery power, enable background services only when they are necessary. Keeping your code and your users more secure You need to take precautions to make your code, and the user's experience when they use your app, as secure as possible.  Use tools such as ProGuard, which is provided in Android Studio. ProGuard detects and removes unused classes, fields, methods, and attributes.  Encrypt all of your app's code and resources while packaging the app.  To protect critical user information such as logins and passwords, secure your communication channel to protect data in transit across the internet, as well as data at rest on the device. Remaining compatible with older versions of Android The Android platform continues to improve and provide new features you can add to your apps. However, you should ensure that your app can still run on devices with older versions of Android. It is impractical to focus only on the most recent Android version, as not all users may have upgraded or may be able to upgrade their devices. Fortunately Android Studio provides options for developers to more easily remain compatible with older versions Overview Of Android 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.
  • 12. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 12 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. 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. On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user interface, both in terms of functionality and performance. The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2. Why Android ?
  • 13. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 13 Features of Android Android is a powerful operating system competing with Apple 4GS and supports great features. Few of them are listed below − Sr.No. Feature & Description 1 Beautiful UI Android OS basic screen provides a beautiful and intuitive user interface. 2 Connectivity GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX. 3 Storage SQLite, a lightweight relational database, is used for data storage purposes. 4 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. 5 Messaging SMS and MMS 6 Web browser Based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine supporting HTML5 and CSS3. 7 Multi-touch Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. 8 Multi-tasking User can jump from one task to another and same time various application can run simultaneously. 9 Resizable widgets
  • 14. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 14 Widgets are resizable, so users can expand them to show more content or shrink them to save space. 10 Multi-Language Supports single direction and bi-directional text. 11 GCM Google Cloud Messaging (GCM) is a service that lets developers send short message data to their users on Android devices, without needing a proprietary sync solution. 12 Wi-Fi Direct A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection. 13 Android Beam A popular NFC-based technology that lets users instantly share, just by touching two NFC- enabled phones together. Android Applications Android applications are usually developed in the Java language using the Android Software Development Kit. Once developed, Android applications can be packaged easily and sold out either through a store such as Google Play, SlideME, Opera Mobile Store, Mobango, F-droid and the Amazon Appstore. Android powers hundreds of millions of mobile devices in more than 190 countries around the world. It's the largest installed base of any mobile platform and growing fast. Every day more than 1 million new Android devices are activated worldwide. This tutorial has been written with an aim to teach you how to develop and package Android application. We will start from environment setup for Android application programming and then drill down to look into various aspects of Android applications.
  • 15. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 15 Categories of Android applications There are many android applications in the market. The top categories are − 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 and Marshmallow. Let's understand the android history in a sequence. What is API level? API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform.
  • 16. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 16 Platform Version API Level VERSION_CODE Android 6.0 23 MARSHMALLOW Android 5.1 22 LOLLIPOP_MR1 Android 5.0 21 LOLLIPOP Android 4.4W 20 KITKAT_WATCH KitKat for Wearables Only Android 4.4 19 KITKAT Android 4.3 18 JELLY_BEAN_MR2 Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 Android 4.1, 4.1.1 16 JELLY_BEAN Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1 Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH Android 3.2 13 HONEYCOMB_MR2 Android 3.1.x 12 HONEYCOMB_MR1 Android 3.0.x 11 HONEYCOMB Android 2.3.4 Android 2.3.3 10 GINGERBREAD_MR1
  • 17. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 17 Android 2.3.2 Android 2.3.1 Android 2.3 9 GINGERBREAD Android 2.2.x 8 FROYO Android 2.1.x 7 ECLAIR_MR1 Android 2.0.1 6 ECLAIR_0_1 Android 2.0 5 ECLAIR Android 1.6 4 DONUT Android 1.5 3 CUPCAKE Android 1.1 2 BASE_1_1 Android 1.0 1 BASE Environment Setup You will be glad to know that you can start your Android application development on either of the following operating systems −
  • 18. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 18  Microsoft Windows XP or later version.  Mac OS X 10.5.8 or later version with Intel chip.  Linux including GNU C Library 2.7 or later. Second point is that all the required tools to develop Android applications are freely available and can be downloaded from the Web. Following is the list of software's you will need before you start your Android application programming.  Java JDK5 or later version  Android Studio Here last two components are optional and if you are working on Windows machine then these components make your life easy while doing Java based application development. So let us have a look how to proceed to set required environment. Set-up Java Development Kit (JDK) You can download the latest version of Java JDK from Oracle's Java site − Java SE Downloads. You will find instructions for installing JDK in downloaded files, follow the given instructions to install and configure the setup. Finally set PATH and JAVA_HOME environment variables to refer to the directory that contains java and javac, typically java_install_dir/bin and java_install_dir respectively. If you are running Windows and installed the JDK in C:jdk1.8.0_102, you would have to put the following line in your C:autoexec.bat file. set PATH=C:jdk1.8.0_102bin;%PATH% set JAVA_HOME=C:jdk1.8.0_102 Alternatively, you could also right-click on My Computer, select Properties, then Advanced, then Environment Variables. Then, you would update the PATH value and press the OK button. On Linux, if the SDK is installed in /usr/local/jdk1.8.0_102 and you use the C shell, you would put the following code into your .cshrc file. setenv PATH /usr/local/jdk1.8.0_102/bin:$PATH setenv JAVA_HOME /usr/local/jdk1.8.0_102 Alternatively, if you use Android studio, then it will know automatically where you have installed your Java. Android IDEs There are so many sophisticated Technologies are available to develop android applications, the familiar technologies, which are predominantly using tools as follows  Android Studio  Eclipse IDE(Deprecated)
  • 19. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 19 Android Architecture & Framework 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. Android Architecture android architecture or Android software stack is categorized into five parts: 1. linux kernel 2. native libraries (middleware), 3. Android Runtime 4. Application Framework 5. Applications Let's see the android architecture first.
  • 20. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 20 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, memory management, device management and resource access. 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. 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. 4) Android Framework On the top of Native libraries and android runtime, there is 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. 5) Applications On the top of android framework, there are applications. All applications such as home, contact, settings, games, browsers are using android framework that uses android runtime and libraries. Android runtime and native libraries are using linux kernal.
  • 21. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 21 1.Linux kernel At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. This provides a level of abstraction between the device hardware and it contains all the essential hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware. 2.Libraries On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc. 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.
  • 22. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 22  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. Having covered the Java-based core libraries in the Android runtime, it is now time to turn our attention to the C/C++ based libraries contained in this layer of the Android software stack. 3.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. 4.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.
  • 23. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 23  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. 5.Applications You will find all the Android application at the top layer. You will write your application to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games etc. 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 − Sr.No Components & Description 1 Activities They dictate the UI and handle the user interaction to the smart phone screen. 2 Services They handle background processing associated with an application. 3 Broadcast Receivers They handle communication between Android OS and applications. 4 Content Providers They handle data and database management issues.
  • 24. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 24 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 BroadcastReceiver 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.
  • 25. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 25 public class MyContentProvider extends ContentProvider { public void onCreate(){} } We will go through these tags in detail while covering application components in individual chapters. 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 − S.No Components & Description 1 Fragments Represents a portion of user interface in an Activity. 2 Views UI elements that are drawn on-screen including buttons, lists forms etc. 3 Layouts View hierarchies that control screen format and appearance of the views. 4 Intents Messages wiring components together. 5 Resources External elements, such as strings, constants and drawable pictures. 6 Manifest Configuration file for the application. Android Hello World Example Let us start actual programming with Android Framework. Before you start writing your first example using Android SDK, you have to make sure that you have set-up your Android development environment properly as explained in Android - Environment Set-up tutorial. I also assume that you have a little bit working knowledge with Android studio.
  • 26. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 26 So let us proceed to write a simple Android Application which will print "Hello World!". Create Android Application The first step is to create a simple Android Application using Android studio. When you click on Android studio icon, it will show screen as shown below You can start your application development by calling start a new android studio project. in a new installation frame should ask Application name, package information and location of the project.−
  • 27. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 27 After entered application name, it going to be called select the form factors your application runs on, here need to specify Minimum SDK, in our tutorial, I have declared as API23: Android 6.0(Mashmallow) − The next level of installation should contain selecting the activity to mobile, it specifies the default layout for Applications.
  • 28. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 28 At the final stage it going to be open development tool to write the application code.
  • 29. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 29 Anatomy of Android Application Before you run your app, you should be aware of a few directories and files in the Android project − Sr.No. Folder, File & Description 1 Java This contains the .java source files for your project. By default, it includes an MainActivity.java source file having an activity class that runs when your app is launched using the app icon. 2 res/drawable-hdpi This is a directory for drawable objects that are designed for high-density screens. 3 res/layout This is a directory for files that define your app's user interface.
  • 30. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 30 4 res/values This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions. 5 AndroidManifest.xml This is the manifest file which describes the fundamental characteristics of the app and defines each of its components. 6 Build.gradle This is an auto generated file which contains compileSdkVersion, buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode and versionName Following section will give a brief overview of the important application files. The Main Activity File The main activity code is a Java file MainActivity.java. This is the actual application file which ultimately gets converted to a Dalvik executable and runs your application. Following is the default code generated by the application wizard for Hello World! application − package com.example.helloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } Here, R.layout.activity_main refers to the activity_main.xml file located in the res/layout folder. The onCreate() method is one of many methods that are figured when an activity is loaded. The Manifest File Whatever component you develop as a part of your application, you must declare all its components in a manifest.xml which resides at the root of the application project directory. This file works as an interface between Android OS and your application, so if you do not declare your component in this file, then it will not be considered by the OS. For example, a default manifest file will look like as following file −
  • 31. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 31 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.tutorialspoint7.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> Here <application>...</application> tags enclosed the components related to the application. Attribute android:icon will point to the application icon available under res/drawable-hdpi. The application uses the image named ic_launcher.png located in the drawable folders The <activity> tag is used to specify an activity and android:name attribute specifies the fully qualified class name of the Activity subclass and the android:label attributes specifies a string to use as the label for the activity. You can specify multiple activities using <activity> tags. The action for the intent filter is named android.intent.action.MAIN to indicate that this activity serves as the entry point for the application. The category for the intent- filter is named android.intent.category.LAUNCHER to indicate that the application can be launched from the device's launcher icon. The @string refers to the strings.xml file explained below. Hence, @string/app_name refers to the app_name string defined in the strings.xml file, which is "HelloWorld". Similar way, other strings get populated in the application. Following is the list of tags which you will use in your manifest file to specify different Android application components −  <activity>elements for activities  <service> elements for services  <receiver> elements for broadcast receivers  <provider> elements for content providers
  • 32. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 32 The Strings File The strings.xml file is located in the res/values folder and it contains all the text that your application uses. For example, the names of buttons, labels, default text, and similar types of strings go into this file. This file is responsible for their textual content. For example, a default strings file will look like as following file − <resources> <string name="app_name">HelloWorld</string> <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string> <string name="title_activity_main">MainActivity</string> </resources> The Layout File The activity_main.xml is a layout file available in res/layout directory, that is referenced by your application when building its interface. You will modify this file very frequently to change the layout of your application. For your "Hello World!" application, this file will have following content related to default layout − <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> </RelativeLayout> This is an example of simple RelativeLayout which we will study in a separate chapter. The TextView is an Android control used to build the GUI and it have various attributes like android:layout_width, android:layout_height etc which are being used to set its width and height etc.. The @string refers to the strings.xml file located in the res/values folder. Hence, @string/hello_world refers to the hello string defined in the strings.xml file, which is "Hello World!". Running the Application Let's try to run our Hello World! application we just created. I assume you had created your AVD while doing environment set-up. To run the app from Android studio, open one of your project's activity files and click Run icon from the tool
  • 33. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 33 bar. Android studio installs the app on your AVD and starts it and if everything is fine with your set-up and application, it will display following Emulator window − Congratulations!!! you have developed your first Android Application and now just keep following rest of the tutorial step by step to become a great Android Developer. All the very best. Android Emulator Android Emulator The Android emulator is an Android Virtual Device (AVD), which represents a specific Android device. We can use the Android emulator as a target device to execute and test our Android application on our PC. The Android emulator provides almost all the functionality of a real device. We can get the incoming phone calls and text messages. It also gives the location of the device and simulates different network speeds. Android emulator simulates rotation and other hardware sensors. It accesses the Google Play store, and much more
  • 34. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 34 Testing Android applications on emulator are sometimes faster and easier than doing on a real device. For example, we can transfer data faster to the emulator than to a real device connected through USB. The Android emulator comes with predefined configurations for several Android phones, Wear OS, tablet, Android TV devices. Requirement and recommendations The Android emulator takes additional requirements beyond the basic system requirement for Android Studio. These requirements are given below: o SDK Tools 26.1.1 or higher o 64-bit processor o Windows: CPU with UG (unrestricted guest) support o HAXM 6.2.1 or later (recommended HAXM 7.2.0 or later)
  • 35. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 35 Install the emulator The Android emulator is installed while installing the Android Studio. However some components of emulator may or may not be installed while installing Android Studio. To install the emulator component, select the Android Emulator component in the SDK Tools tab of the SDK Manager. Run an Android app on the Emulator We can run an Android app form the Android Studio project, or we can run an app which is installed on the Android Emulator as we run any app on a device. To start the Android Emulator and run an application in our project: 1. In Android Studio, we need to create an Android Virtual Device (AVD) that the emulator can use to install and run your app. To create a new AVD:- 1.1 Open the AVD Manager by clicking Tools > AVD Manager. 1.2 Click on Create Virtual Device, at the bottom of the AVD Manager dialog. Then Select Hardware page appears.
  • 36. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 36 1.3 Select a hardware profile and then click Next. If we don?t see the hardware profile we want, then we can create or import a hardware profile. The System Image page appears.
  • 37. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 37 1.4 Select the system image for the particular API level and click Next. This leads to open a Verify Configuration page.
  • 38. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 38 1.5 Change AVD properties if needed, and then click Finish. 2. In the toolbar, choose the AVD, which we want to run our app from the target device from the drop-down menu.
  • 39. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 39 3. Click Run. Launch the Emulator without first running an app To start the emulator: 1. Open the AVD Manager. 2. Double-click an AVD, or click Run While the emulator is running, we can run the Android Studio project and select the emulator as the target device. We can also drag an APKs file to install on an emulator, and then run them. Start the emulator from the command line The Android SDK includes the Android device emulator. Android emulator lets you develop and test out the application without using a physical device. Starting the emulator Using the emulator command, we will start an emulator. It is an alternative to run our project or start through the AVD Manager. Here is the basic command-line syntax for starting a virtual device: 1. $ emulator -avd avd_name [ {-option [value]} ... ] or 1. $ emulator @avd_name [ {-option [value]} ... ] For example, if we execute the emulator from Android Studio on a Mac, the default command line will be similar as follows: 1. $ /Users/user_name/Library/Android/sdk/emulator/emulator -avd Nexus_5X_API_23 - netdelay none -netspeed full To display the list of AVD names, enter the following command: 1. $ emulator -list-avds
  • 40. MT Unit 3-Introduction to Android GCEK MobileTechnologies ~Swapnali Pawar Page 40 Run and stop an emulator, and clear data From the Virtual Device page, we can perform the following operation on emulator: o To run an Android emulator that uses an AVD, double-click the AVD, or click Launch o To stop the running emulator, right-click and select Stop, or click Menu ▼ and select Stop. o If we want to clear the data from an emulator and return it to the initial state when it was first defined, then right-click an AVD and select Wipe Data. Or click menu ▼ and select Wipe Data. Useful Resourses- https://developer.android.com/studio/workflow https://www.youtube.com/watch?v=fis26HvvDII