SlideShare a Scribd company logo
LEARN ANDROID IN 2 HOURS With Aly Osama
AGENDA
● Introduction to Android
● Android Studio
● Hello World Application
● Application Components
● Application Resources
● User Interface
● Code Time
● Good UI
● Play Store
● Learn Android
INTRODUCTION TO ANDROID
ANDROID JOURNEY
Developed by Google. First
released version 1.5(Cupcake).
Current version - 6.0 (Marshmallow)
Major contributors: Samsung, LG, Vodafone, Acer, Dell, HTC, Sony Ericsson, Intel, Wipro
including others.
Pre-installed Google apps: Gmail, Google Calendar, Google Play, Google Music, Chrome
and others.
THE WORLD OF ANDROID
Openness
Customizable
Affordable(low-cost)
WHY NOT ANY OTHER TECHNOLOGY ?
1. Highest paying technology
2. A lot of career opportunities
3. Freshers are in high demand
ANDROID VERSIONS
ANDROID - ARCHITECTURE
ANDROID IS NOT LINUX
Android is built on the Linux kernel, but Android is not a Linux.
Linux kernel it`s a component which is responsible for device drivers, power management,
memory management, device management and resource access.
Native libraries such as WebKit, OpenGL, FreeType, SQLite, Media, C runtime library
(libc) etc.
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.
App Framework - Android framework includes Android API's
Applications - All applications
EACH ANDROID APP LIVES IN ITS OWN SECURITY SANDBOX
● The Android operating system is a multi-user Linux system in which
each app is a different user.
● By default, the system assigns each app a unique Linux user ID.
The system sets permissions for all the files in an app so that only
the user ID assigned to that app can access them.
● Each process has its own virtual machine (VM), so an app's code
runs in isolation from other apps.
● By default, every app runs in its own Linux process. Android
starts the process when any of the app's components need to be
executed, then shuts down the process when it's no longer needed
or when the system must recover memory for other apps.
● Each app has own lifecycle
ANDROID STUDIO
STARTING ANDROID DEVELOPMENT
HELLO WORLD APPLICATION
CREATING A VIRTUAL ANDROID DEVICE
HELLO WORLD APPLICATION
1.Activity
2.Manifest File
3.Layout
1. ACTIVITY
● Represents a single screen in an App.
● Hosts all the view components of the screen like button, textview
and popups.
● Hosts all the logic of user interaction.
● Have their own lifecycle.
ACTIVITIES
Extending a class.
Accessing inherited methods and member variables.
Overriding methods.
Every Activity will inherit an “Activity”.
1. ACTIVITY
2. LAYOUT
Linear Layout
Relative Layout
Grid Layout
 Layout Items
 Image View
 Button
 Text View
 List View
3. ANDROID MANIFEST FILE
Declare Application Name
Declare Activates
Declare Application Theme
Declare Application Icon
Declare Other Components
Declare Permissions
APPLICATION COMPONENTS
APPLICATION COMPONENTS
● Activities
● Intent, Intent Filters
● Broadcast Receivers
● Services
● Content Providers
● Processes and Threads
ACTIVITIES
An Activity is an application component that provides a screen with which users
can interact. Activity = Window
How to create an Activity
1. Create a layout for your screen
<LinearLayout ... >
<EditText ... />
<EditText ... />
<Button ... />
</LinearLayout>
How to create an Activity
2. Create class which extends class Activity and override onCreate()
method
3. Declare your activity in the manifest file
<activity
android:name=".LoginActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
}
Activity Lifecycle
When an activity transitions into
and out of the different states it
is notified through various
callback methods.
Complete Android Fragment &
Activity Lifecycle
ACTIVITY LIFECYCLE
A Fragment represents a behavior or a portion of user interface in an Activity.
A Fragment must always be embedded in an activity and the fragment's lifecycle
is directly affected by the host activity's lifecycle.
Fragments
Android introduced
fragments in Android 3.0 (API
level 11), primarily to support
more dynamic and flexible UI
designs on large screens,
such as tablets.
Create a Fragment Class
How to add a Fragment into app
public class OrderSpinnerFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_orders_spinner, container, false);
}
}
Adding a fragment to an activity
● Declare the fragment inside the activity's layout file.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ...>
<fragment android:name="com.example.news.ArticleListFragment"
android:id="@+id/list"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
● Or, programmatically add the fragment to an existing ViewGroup.
private void addUserInfoFragment(){
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
UserInfoFragment fragment = new UserInfoFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}
INTENT AND INTENT FILTERS
An Intent is a messaging object you can use to request an action from another
app component. Although intents facilitate communication between components in
several ways.
● start Activity
● start Service
● deliver Broadcast
There are two types of intents:
● Explicit intents specify the component to start by name
● Implicit intents declare a general action to perform, which allows a
component from another app to handle it
An Intent object carries information that the Android system uses to determine
which component to start (such as the exact component name or component
category that should receive the intent), plus information that the recipient
component uses in order to properly perform the action (such as the action to take
and the data to act upon).
The primary information contained in an Intent is the following:
● Component name - The name of the component to start.
● Action - The general action to be performed, such as ACTION_VIEW,
ACTION_EDIT, ACTION_MAIN, etc.
● Data - The data to operate on, such as a person record in the contacts
database, expressed as a Uri.
● Category - Gives additional information about the action to execute.
● Type - Specifies an explicit type (a MIME type) of the intent data.
● Extras - This is a Bundle of any additional information.
Building an Intent
Example of explicit intent
public void startUserDetailsActivity(long userId) {
Intent userDetailsIntent = new Intent(this, UserDetailsActivity.class);
userDetailsIntent.putExtra(USER_ID, userId);
startActivity(userDetailsIntent);
}
Example of implicit intent
public void sendMessageIntent(String textMessage) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
APPLICATION RESOURCES
APPLICATION RESOURCES
You should always externalize resources
such as images and strings from your
application code, so that you can maintain
them independently. Externalizing your
resources also allows you to provide
alternative resources that support specific
device configurations such as different
languages or screen sizes, which becomes
increasingly important as more Android-
powered devices become available with
different configurations.
MyProject/
src/
MyActivity.java
res/
drawable/
graphic.png
layout/
main.xml
info.xml
mipmap/
icon.png
values/
strings.xml
RESOURCE DIRECTORIES SUPPORTED INSIDE PROJECT RES/ DIRECTORY.
Directory Resource Type
animator/
anim/
XML files that define property animations and tween animations.
color/ XML files that define a state list of colors.
drawable/ Bitmap files (.png, .9.png, .jpg, .gif) or XML files.
layout/ XML files that define a user interface layout.
menu/ XML files that define application menus, such as an Options Menu,
Context Menu, or Sub Menu.
values/ XML files that contain simple values, such as strings, integers, and
colors.
PROVIDING ALTERNATIVE RESOURCES
Almost every application should provide
alternative resources to support specific
device configurations. For instance, you
should include alternative drawable
resources for different screen densities
and alternative string resources for
different languages. At runtime, Android
detects the current device configuration
and loads the appropriate resources for
your application.
USER INTERFACE
USER INTERFACE
All user interface elements in an Android app are built using View and
ViewGroup objects. A View is an object that draws something on the
screen that the user can interact with. A ViewGroup is an object that holds
other View (and ViewGroup) objects in order to define the layout of the
interface.
LAYOUTS
A layout defines the visual structure for a user interface, such as the UI
for an activity or app widget. You can declare a layout in two ways:
● Declare UI elements in XML.
● Instantiate layout elements at runtime.
<LinearLayout ... >
<EditText ... />
<EditText ... />
<Button ... />
</LinearLayout>
public class LoginActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
}
LAYOUTS
LinearLayout is a view group that
aligns all children in a single direction,
vertically or horizontally.
RelativeLayout is a view group that
displays child views in relative
positions.
LAYOUTS
TableLayout is a view that groups
views into rows and columns.
FrameLayout is a placeholder on
screen that you can use to display a
single view.
LAYOUTS
ListView is a view group that
displays a list of scrollable
items.
GridView is a ViewGroup
that displays items in a two-
dimensional, scrollable grid.
COMPARING ANDROID UI ELEMENTS TO SWING UI ELEMENTS
Comparing Android UI Elements to Swing UI Elements
Activities in Android refers almost to a (J)Frame in Swing.
Views in Android refers to (J)Components in Swing.
TextViews in Android refers to a (J)Labels in Swing.
EditTexts in Android refers to a (J)TextFields in Swing.
Buttons in Android refers to a (J)Buttons in Swing.
WIDGETS
DIALOGS AND TOASTS
A Dialog is a small window that prompts the user to make a decision or enter
additional information. A dialog does not fill the screen and is normally used for
modal events that require users to take an action before they can proceed.
A Toast provides simple feedback about an
operation in a small popup.
EVENTS WITH UI
BUTTON
OnClickListener
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do the required task
}
});
CODE TIME
GOOD UI
WHY GOOD UI IS IMPORTANT
Smooth performance.
Attracts users and keeps them.
Does not irritate users.
Does what is expected.
“No matter how useful or how good your app is, if its
UI is not awesome it will have very few chances of
remaining there in your user’s device.”
Bad UI =
BAD UI
MATERIAL DESIGN
https://material.google.com/#introduction-principles
USING THIRD PARTY LIBRARIES
USING THIRD PARTY LIBRARIES
Create your own customized UI components and reuse them.
Use third party libraries created by expert developers.
● Github
● AndroidArsenal.com
● AndroidWeekly.net
● Jake Wharton
● ...and many more(Just Google it)
PLAY STORE
PLAYSTORE
https://developer.android.com/distribute/googleplay/start.html
25$
BUT NOT TO WORRY...
800,0000 apps have < 100 downloads.
Another 700,000 have < 1000 downloads.
Another 400,000 have < 10,000 downloads.
Only 35,000 apps are downloaded more than 500,000.
HOW TO LEARN ANDROID
https://developer.android.com/training/index.html
https://www.udacity.com/course/developing
-android-apps--ud853
Udacity Course
Main Tutorial
That's all.
Quick start in android
development.

More Related Content

What's hot

Mobile application development
Mobile application developmentMobile application development
Mobile application development
Eric Cattoir
 
Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - Presentation
Atul Panjwani
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Ahsanul Karim
 
Android architecture
Android architectureAndroid architecture
Android architecture
Kartik Kalpande Patil
 
Android studio ppt
Android studio pptAndroid studio ppt
Android studio ppt
Swapanpreet Kaur
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
Benny Skogberg
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppt
tirupathinews
 
Android Architecture.pptx
Android Architecture.pptxAndroid Architecture.pptx
Android Architecture.pptx
priya Nithya
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
Eueung Mulyana
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
Naresh Chintalcheru
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
zeelpatel0504
 
android architecture
android architectureandroid architecture
android architectureAashita Gupta
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
Ranjith Kumar
 
android layouts
android layoutsandroid layouts
android layoutsDeepa Rani
 
Presentation On Android
Presentation On AndroidPresentation On Android
Presentation On Android
TeachMission
 
Android ppt
Android pptAndroid ppt
Android ppt
Ansh Singh
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android applicationAtibur Rahman
 
Synopsis on android application
Synopsis on android applicationSynopsis on android application
Synopsis on android application
Jawed akhtar
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
Syed Absar
 

What's hot (20)

Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - Presentation
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Android studio ppt
Android studio pptAndroid studio ppt
Android studio ppt
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppt
 
Android Architecture.pptx
Android Architecture.pptxAndroid Architecture.pptx
Android Architecture.pptx
 
Android ppt
Android ppt Android ppt
Android ppt
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
android architecture
android architectureandroid architecture
android architecture
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
android layouts
android layoutsandroid layouts
android layouts
 
Presentation On Android
Presentation On AndroidPresentation On Android
Presentation On Android
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
 
Synopsis on android application
Synopsis on android applicationSynopsis on android application
Synopsis on android application
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 

Similar to Introduction to Android Development

Hello android world
Hello android worldHello android world
Hello android world
eleksdev
 
Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1
Amit Saxena
 
Android beginners David
Android beginners DavidAndroid beginners David
Android beginners David
Arun David Johnson R
 
Kotlin for Android App Development Presentation
Kotlin for Android App Development PresentationKotlin for Android App Development Presentation
Kotlin for Android App Development Presentation
Knoldus Inc.
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologies
jerry vasoya
 
Android Basic- CMC
Android Basic- CMCAndroid Basic- CMC
Android Basic- CMC
Pragati Singh
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
guest213e237
 
Android development-tutorial
Android development-tutorialAndroid development-tutorial
Android development-tutorial
nirajsimulanis
 
Nativa Android Applications development
Nativa Android Applications developmentNativa Android Applications development
Nativa Android Applications development
Alfredo Morresi
 
Android Development Basics
Android Development BasicsAndroid Development Basics
Android Development Basics
Prajakta Dharmpurikar
 
Android Development project
Android Development projectAndroid Development project
Android Development projectMinhaj Kazi
 
Unit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.pptUnit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.ppt
dineshkumar periyasamy
 
Android interview questions and answers
Android interview questions and answersAndroid interview questions and answers
Android interview questions and answers
kavinilavuG
 
Android app fundamentals
Android app fundamentalsAndroid app fundamentals
Android app fundamentals
Amr Salman
 
Android
AndroidAndroid
Android
Pranav Ashok
 
Unit2
Unit2Unit2
Android components
Android componentsAndroid components
Android components
NAVEENA ESWARAN
 
ANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.docANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.doc
Palakjaiswal43
 
Activities, Fragments, and Events
Activities, Fragments, and EventsActivities, Fragments, and Events
Activities, Fragments, and Events
Henry Osborne
 

Similar to Introduction to Android Development (20)

Hello android world
Hello android worldHello android world
Hello android world
 
Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1
 
Android beginners David
Android beginners DavidAndroid beginners David
Android beginners David
 
Kotlin for Android App Development Presentation
Kotlin for Android App Development PresentationKotlin for Android App Development Presentation
Kotlin for Android App Development Presentation
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologies
 
Android Basic- CMC
Android Basic- CMCAndroid Basic- CMC
Android Basic- CMC
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
 
Android development-tutorial
Android development-tutorialAndroid development-tutorial
Android development-tutorial
 
Nativa Android Applications development
Nativa Android Applications developmentNativa Android Applications development
Nativa Android Applications development
 
Android Development Basics
Android Development BasicsAndroid Development Basics
Android Development Basics
 
Android Development project
Android Development projectAndroid Development project
Android Development project
 
Unit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.pptUnit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.ppt
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android interview questions and answers
Android interview questions and answersAndroid interview questions and answers
Android interview questions and answers
 
Android app fundamentals
Android app fundamentalsAndroid app fundamentals
Android app fundamentals
 
Android
AndroidAndroid
Android
 
Unit2
Unit2Unit2
Unit2
 
Android components
Android componentsAndroid components
Android components
 
ANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.docANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.doc
 
Activities, Fragments, and Events
Activities, Fragments, and EventsActivities, Fragments, and Events
Activities, Fragments, and Events
 

More from Aly Abdelkareem

An Inductive inference Machine
An Inductive inference MachineAn Inductive inference Machine
An Inductive inference Machine
Aly Abdelkareem
 
Digital Image Processing - Frequency Filters
Digital Image Processing - Frequency FiltersDigital Image Processing - Frequency Filters
Digital Image Processing - Frequency Filters
Aly Abdelkareem
 
Deep learning: Overfitting , underfitting, and regularization
Deep learning: Overfitting , underfitting, and regularizationDeep learning: Overfitting , underfitting, and regularization
Deep learning: Overfitting , underfitting, and regularization
Aly Abdelkareem
 
Practical Digital Image Processing 5
Practical Digital Image Processing 5Practical Digital Image Processing 5
Practical Digital Image Processing 5
Aly Abdelkareem
 
Practical Digital Image Processing 4
Practical Digital Image Processing 4Practical Digital Image Processing 4
Practical Digital Image Processing 4
Aly Abdelkareem
 
Practical Digital Image Processing 3
 Practical Digital Image Processing 3 Practical Digital Image Processing 3
Practical Digital Image Processing 3
Aly Abdelkareem
 
Pattern recognition 4 - MLE
Pattern recognition 4 - MLEPattern recognition 4 - MLE
Pattern recognition 4 - MLE
Aly Abdelkareem
 
Practical Digital Image Processing 2
Practical Digital Image Processing 2Practical Digital Image Processing 2
Practical Digital Image Processing 2
Aly Abdelkareem
 
Practical Digital Image Processing 1
Practical Digital Image Processing 1Practical Digital Image Processing 1
Practical Digital Image Processing 1
Aly Abdelkareem
 
Machine Learning for Everyone
Machine Learning for EveryoneMachine Learning for Everyone
Machine Learning for Everyone
Aly Abdelkareem
 
How to use deep learning on biological data
How to use deep learning on biological dataHow to use deep learning on biological data
How to use deep learning on biological data
Aly Abdelkareem
 
Deep Learning using Keras
Deep Learning using KerasDeep Learning using Keras
Deep Learning using Keras
Aly Abdelkareem
 
Object extraction from satellite imagery using deep learning
Object extraction from satellite imagery using deep learningObject extraction from satellite imagery using deep learning
Object extraction from satellite imagery using deep learning
Aly Abdelkareem
 
Pattern recognition Tutorial 2
Pattern recognition Tutorial 2Pattern recognition Tutorial 2
Pattern recognition Tutorial 2
Aly Abdelkareem
 
Android Udacity Study group 1
Android Udacity Study group 1Android Udacity Study group 1
Android Udacity Study group 1
Aly Abdelkareem
 
Java for android developers
Java for android developersJava for android developers
Java for android developers
Aly Abdelkareem
 

More from Aly Abdelkareem (16)

An Inductive inference Machine
An Inductive inference MachineAn Inductive inference Machine
An Inductive inference Machine
 
Digital Image Processing - Frequency Filters
Digital Image Processing - Frequency FiltersDigital Image Processing - Frequency Filters
Digital Image Processing - Frequency Filters
 
Deep learning: Overfitting , underfitting, and regularization
Deep learning: Overfitting , underfitting, and regularizationDeep learning: Overfitting , underfitting, and regularization
Deep learning: Overfitting , underfitting, and regularization
 
Practical Digital Image Processing 5
Practical Digital Image Processing 5Practical Digital Image Processing 5
Practical Digital Image Processing 5
 
Practical Digital Image Processing 4
Practical Digital Image Processing 4Practical Digital Image Processing 4
Practical Digital Image Processing 4
 
Practical Digital Image Processing 3
 Practical Digital Image Processing 3 Practical Digital Image Processing 3
Practical Digital Image Processing 3
 
Pattern recognition 4 - MLE
Pattern recognition 4 - MLEPattern recognition 4 - MLE
Pattern recognition 4 - MLE
 
Practical Digital Image Processing 2
Practical Digital Image Processing 2Practical Digital Image Processing 2
Practical Digital Image Processing 2
 
Practical Digital Image Processing 1
Practical Digital Image Processing 1Practical Digital Image Processing 1
Practical Digital Image Processing 1
 
Machine Learning for Everyone
Machine Learning for EveryoneMachine Learning for Everyone
Machine Learning for Everyone
 
How to use deep learning on biological data
How to use deep learning on biological dataHow to use deep learning on biological data
How to use deep learning on biological data
 
Deep Learning using Keras
Deep Learning using KerasDeep Learning using Keras
Deep Learning using Keras
 
Object extraction from satellite imagery using deep learning
Object extraction from satellite imagery using deep learningObject extraction from satellite imagery using deep learning
Object extraction from satellite imagery using deep learning
 
Pattern recognition Tutorial 2
Pattern recognition Tutorial 2Pattern recognition Tutorial 2
Pattern recognition Tutorial 2
 
Android Udacity Study group 1
Android Udacity Study group 1Android Udacity Study group 1
Android Udacity Study group 1
 
Java for android developers
Java for android developersJava for android developers
Java for android developers
 

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 

Introduction to Android Development

  • 1. LEARN ANDROID IN 2 HOURS With Aly Osama
  • 2. AGENDA ● Introduction to Android ● Android Studio ● Hello World Application ● Application Components ● Application Resources ● User Interface ● Code Time ● Good UI ● Play Store ● Learn Android
  • 4. ANDROID JOURNEY Developed by Google. First released version 1.5(Cupcake). Current version - 6.0 (Marshmallow) Major contributors: Samsung, LG, Vodafone, Acer, Dell, HTC, Sony Ericsson, Intel, Wipro including others. Pre-installed Google apps: Gmail, Google Calendar, Google Play, Google Music, Chrome and others.
  • 5. THE WORLD OF ANDROID Openness Customizable Affordable(low-cost)
  • 6. WHY NOT ANY OTHER TECHNOLOGY ? 1. Highest paying technology 2. A lot of career opportunities 3. Freshers are in high demand
  • 8.
  • 10. ANDROID IS NOT LINUX Android is built on the Linux kernel, but Android is not a Linux. Linux kernel it`s a component which is responsible for device drivers, power management, memory management, device management and resource access. Native libraries such as WebKit, OpenGL, FreeType, SQLite, Media, C runtime library (libc) etc. 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. App Framework - Android framework includes Android API's Applications - All applications
  • 11. EACH ANDROID APP LIVES IN ITS OWN SECURITY SANDBOX ● The Android operating system is a multi-user Linux system in which each app is a different user. ● By default, the system assigns each app a unique Linux user ID. The system sets permissions for all the files in an app so that only the user ID assigned to that app can access them. ● Each process has its own virtual machine (VM), so an app's code runs in isolation from other apps. ● By default, every app runs in its own Linux process. Android starts the process when any of the app's components need to be executed, then shuts down the process when it's no longer needed or when the system must recover memory for other apps. ● Each app has own lifecycle
  • 14.
  • 15.
  • 16.
  • 17.
  • 19. CREATING A VIRTUAL ANDROID DEVICE
  • 20.
  • 21.
  • 22.
  • 23.
  • 25. 1. ACTIVITY ● Represents a single screen in an App. ● Hosts all the view components of the screen like button, textview and popups. ● Hosts all the logic of user interaction. ● Have their own lifecycle.
  • 26. ACTIVITIES Extending a class. Accessing inherited methods and member variables. Overriding methods. Every Activity will inherit an “Activity”.
  • 28. 2. LAYOUT Linear Layout Relative Layout Grid Layout  Layout Items  Image View  Button  Text View  List View
  • 29. 3. ANDROID MANIFEST FILE Declare Application Name Declare Activates Declare Application Theme Declare Application Icon Declare Other Components Declare Permissions
  • 30.
  • 32. APPLICATION COMPONENTS ● Activities ● Intent, Intent Filters ● Broadcast Receivers ● Services ● Content Providers ● Processes and Threads
  • 33. ACTIVITIES An Activity is an application component that provides a screen with which users can interact. Activity = Window How to create an Activity 1. Create a layout for your screen <LinearLayout ... > <EditText ... /> <EditText ... /> <Button ... /> </LinearLayout>
  • 34. How to create an Activity 2. Create class which extends class Activity and override onCreate() method 3. Declare your activity in the manifest file <activity android:name=".LoginActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> public class LoginActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); } }
  • 35. Activity Lifecycle When an activity transitions into and out of the different states it is notified through various callback methods. Complete Android Fragment & Activity Lifecycle
  • 37. A Fragment represents a behavior or a portion of user interface in an Activity. A Fragment must always be embedded in an activity and the fragment's lifecycle is directly affected by the host activity's lifecycle. Fragments Android introduced fragments in Android 3.0 (API level 11), primarily to support more dynamic and flexible UI designs on large screens, such as tablets.
  • 38. Create a Fragment Class How to add a Fragment into app public class OrderSpinnerFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_orders_spinner, container, false); } }
  • 39. Adding a fragment to an activity ● Declare the fragment inside the activity's layout file. <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...> <fragment android:name="com.example.news.ArticleListFragment" android:id="@+id/list" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" /> </LinearLayout> ● Or, programmatically add the fragment to an existing ViewGroup. private void addUserInfoFragment(){ FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); UserInfoFragment fragment = new UserInfoFragment(); fragmentTransaction.add(R.id.fragment_container, fragment); fragmentTransaction.commit(); }
  • 40. INTENT AND INTENT FILTERS An Intent is a messaging object you can use to request an action from another app component. Although intents facilitate communication between components in several ways. ● start Activity ● start Service ● deliver Broadcast There are two types of intents: ● Explicit intents specify the component to start by name ● Implicit intents declare a general action to perform, which allows a component from another app to handle it
  • 41. An Intent object carries information that the Android system uses to determine which component to start (such as the exact component name or component category that should receive the intent), plus information that the recipient component uses in order to properly perform the action (such as the action to take and the data to act upon). The primary information contained in an Intent is the following: ● Component name - The name of the component to start. ● Action - The general action to be performed, such as ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, etc. ● Data - The data to operate on, such as a person record in the contacts database, expressed as a Uri. ● Category - Gives additional information about the action to execute. ● Type - Specifies an explicit type (a MIME type) of the intent data. ● Extras - This is a Bundle of any additional information. Building an Intent
  • 42. Example of explicit intent public void startUserDetailsActivity(long userId) { Intent userDetailsIntent = new Intent(this, UserDetailsActivity.class); userDetailsIntent.putExtra(USER_ID, userId); startActivity(userDetailsIntent); } Example of implicit intent public void sendMessageIntent(String textMessage) { Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage); sendIntent.setType("text/plain"); startActivity(sendIntent); }
  • 44. APPLICATION RESOURCES You should always externalize resources such as images and strings from your application code, so that you can maintain them independently. Externalizing your resources also allows you to provide alternative resources that support specific device configurations such as different languages or screen sizes, which becomes increasingly important as more Android- powered devices become available with different configurations. MyProject/ src/ MyActivity.java res/ drawable/ graphic.png layout/ main.xml info.xml mipmap/ icon.png values/ strings.xml
  • 45. RESOURCE DIRECTORIES SUPPORTED INSIDE PROJECT RES/ DIRECTORY. Directory Resource Type animator/ anim/ XML files that define property animations and tween animations. color/ XML files that define a state list of colors. drawable/ Bitmap files (.png, .9.png, .jpg, .gif) or XML files. layout/ XML files that define a user interface layout. menu/ XML files that define application menus, such as an Options Menu, Context Menu, or Sub Menu. values/ XML files that contain simple values, such as strings, integers, and colors.
  • 46. PROVIDING ALTERNATIVE RESOURCES Almost every application should provide alternative resources to support specific device configurations. For instance, you should include alternative drawable resources for different screen densities and alternative string resources for different languages. At runtime, Android detects the current device configuration and loads the appropriate resources for your application.
  • 48. USER INTERFACE All user interface elements in an Android app are built using View and ViewGroup objects. A View is an object that draws something on the screen that the user can interact with. A ViewGroup is an object that holds other View (and ViewGroup) objects in order to define the layout of the interface.
  • 49. LAYOUTS A layout defines the visual structure for a user interface, such as the UI for an activity or app widget. You can declare a layout in two ways: ● Declare UI elements in XML. ● Instantiate layout elements at runtime. <LinearLayout ... > <EditText ... /> <EditText ... /> <Button ... /> </LinearLayout> public class LoginActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); } }
  • 50. LAYOUTS LinearLayout is a view group that aligns all children in a single direction, vertically or horizontally. RelativeLayout is a view group that displays child views in relative positions.
  • 51. LAYOUTS TableLayout is a view that groups views into rows and columns. FrameLayout is a placeholder on screen that you can use to display a single view.
  • 52. LAYOUTS ListView is a view group that displays a list of scrollable items. GridView is a ViewGroup that displays items in a two- dimensional, scrollable grid.
  • 53. COMPARING ANDROID UI ELEMENTS TO SWING UI ELEMENTS Comparing Android UI Elements to Swing UI Elements Activities in Android refers almost to a (J)Frame in Swing. Views in Android refers to (J)Components in Swing. TextViews in Android refers to a (J)Labels in Swing. EditTexts in Android refers to a (J)TextFields in Swing. Buttons in Android refers to a (J)Buttons in Swing.
  • 55. DIALOGS AND TOASTS A Dialog is a small window that prompts the user to make a decision or enter additional information. A dialog does not fill the screen and is normally used for modal events that require users to take an action before they can proceed. A Toast provides simple feedback about an operation in a small popup.
  • 60. WHY GOOD UI IS IMPORTANT Smooth performance. Attracts users and keeps them. Does not irritate users. Does what is expected. “No matter how useful or how good your app is, if its UI is not awesome it will have very few chances of remaining there in your user’s device.” Bad UI =
  • 63. USING THIRD PARTY LIBRARIES
  • 64. USING THIRD PARTY LIBRARIES Create your own customized UI components and reuse them. Use third party libraries created by expert developers. ● Github ● AndroidArsenal.com ● AndroidWeekly.net ● Jake Wharton ● ...and many more(Just Google it)
  • 67.
  • 68. BUT NOT TO WORRY... 800,0000 apps have < 100 downloads. Another 700,000 have < 1000 downloads. Another 400,000 have < 10,000 downloads. Only 35,000 apps are downloaded more than 500,000.
  • 69.
  • 70. HOW TO LEARN ANDROID https://developer.android.com/training/index.html https://www.udacity.com/course/developing -android-apps--ud853 Udacity Course Main Tutorial
  • 71. That's all. Quick start in android development.

Editor's Notes

  1. Росказати історію Фрагментів. Для чого. Головна мета. Два види сервісів! Інтент Сервіс!
  2. Росказати історію Фрагментів. Для чого. Головна мета. Два види сервісів! Інтент Сервіс!
  3. Росказати історію Фрагментів. Для чого. Головна мета.