SlideShare ist ein Scribd-Unternehmen logo
1 von 60
INTRODUCTION TO
ANDROID AND ANDROID
STUDIO
Suyash Srijan
ABOUT THE SPEAKER
• Computer science student at Oxford Brookes
• A kickass Android developer with nearly 6 years of experience
• Experience with building ROMs and porting Android to different devices
• Experience with other platforms (iOS, Windows, Blackberry) and Wearables (Pebble & Android Wear)
• Overall a very cool guy
@suyashsrijan
fb.com/suyashsrijan
github.com/theblixguy
WHAT WILL WE LEARN TODAY
• What is Android
• Why develop for Android
• Android platform overview
• Android app overview
• Android app lifecycle
• Android app fundamentals (activities, intents, etc)
• Design
• Device compatibility
• Distribution
• What we need to get started with Android development
• Android Studio and development tools
WHAT IS
Android is the world’s most popular and dominant mobile operating
system. It is based on Linux kernel 3.4/3.10 (depending on device) and is
open-source (with proprietary bits). It runs on a wide variety of hardware,
including smartphones, smart watches, cars, televisions, digital cameras,
game consoles and more. It was founded by Andy Rubin and three
others in October 2003 and got acquired by Google in August 2005.
WHY DEVELOP FOR
is gigantic
• Over 1B users
• Over 1.5M activations per day
• Over 200M smartphones running Android sold annually
• Over 1.43M apps available
• Over 76% smartphone operating system market share
is freedom
• Thousands of third party libraries available
• Free SDK, IDE and emulator
• No restrictions; access anything*
• Faster access to new form factors and hardware
• Distribute your app anywhere (Playstore, Amazon Appstore, …)
* well, not anything, but you get the point
PLATFORM OVERVIEW
APP OVERVIEW
• Java: Java class files containing app logic
• Res: Different resource files
• Anim: Animation resource files
• Drawable: Images
• Drawable-Xdpi: Images depending on screen density
• Layout: App layout files
• Menu: Layout menu files
• Values: Value files (strings, colors, arrays, etc)
• Values-vX: Value files depending on API level
• Values-Xdp: Value files depending on screen density
• XML: XML files (duh)
• AndroidManifest.xml: App metadata file
• build.gradle: Build related settings
APP LIFECYCLE
APP FUNDAMENTALS
ACTIVITY
• A window/interface which a user can interact with
• Every app has at least one activity
• Activities can be full-screen, floating or embedded
inside another activity
startActivity(new Intent(this, newActivity.class));
FRAGMENTS
• A piece of user interface that is meant to be reused
• Adds modularity to your app and makes dynamic UI
design easy
• It has its own layout, behavior and lifecycle callbacks,
but it killed/stop if the activity is too
getFragmentManager().beginTransaction().add(andr
oid.R.id.content, new MyFragment()).commit();
INTENTS
• An intent is an abstract description of an operation to
be performed. Think of it as an “intention” to do
something
• Intents can be used to start activities, services or send
a broadcast
• Intents are of two types – Explicit (when you know
what exactly you want to do), and Implicit (when
you’re not sure what you want to do)
Intent viewAmazon = new
Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(“http://www.amazon.com”));
startActivity(viewAmazon);
SERVICES
• A service is a long running
operation in the background
• There are two types of services
in Android – Bounded (which
runs as long as components
which bind to it run) and
Unbounded (which runs
indefinitely) but a service can
also be both
• Services run on the main thread
of the application by default
startService(new Intent(this,
myService.class));
BROADCAST RECIEVERS
App/Service
System sends a
broadcast
Battery level
changes
SMS received
Photo captured
• A broadcast is a system or
app event that can be
“broadcasted” so other
apps/services can listen for it
• Broadcasts are handled by
a BroadcastReceiver, which
is a component that allows
you to listen for broadcasts
• A BroadcastReceiver can be
implemented in
AndroidManifest.xml, or
dynamically by calling
registerReceiver(), or both
• An app’s/services’s
BroadcastReceiver is never
called if the app/service
hasn’t been explicitly started
by the user
CONTENT PROVIDERS/RESOLVERS
App
Database
Insert
Update Delete
Fetch
• A content provider allows you
to store data in your app in a
structured way, similar to a
relational database like SQL, for
the purpose of providing it to
other apps. Example usage:
Contacts app, SMS app, etc
• A content resolver allows you
to get data from a content
provider or manipulate its data
(modify, delete, update, etc)
• You cannot request to read
data from a content provider
at runtime, it has to be
declared in
AndroidManifest.xml
ANDROIDMANIFEST.XML
LAYOUTS
• A layout defines the visual structure for a user
interface, such as the UI for an activity or app widget
• Layouts can be defined both in XML or
programmatically using View and ViewGroup objects
• There are 5 different types of Layouts in Android:
LinearLayout, RelativeLayout, FrameLayout,
TableLayout and AbsoluteLayout
DESIGN
DEVICE COMPATIBILITY
Android is designed to run on many different types of devices, from phones to tablets
and televisions. As a developer, the range of devices provides a huge potential
audience for your app. In order for your app to be successful on all these devices, it
should tolerate some feature variability and provide a flexible user interface that
adapts to different screen configurations. To facilitate your effort toward that goal,
Android provides a dynamic app framework in which you can provide configuration-
specific app resources in static files (such as different XML layouts for different screen
sizes). Android then loads the appropriate resources based on the current device
configuration. So with some forethought to your app design and some additional app
resources, you can publish a single application package (APK) that provides an
optimized user experience on a variety of devices. If necessary, however, you can
specify your app's feature requirements and control which types of devices can install
your app from Google Play Store.
DISTRIBUTION
WHAT DO I NEED TO BUILD AN
APP?
JAVA PROGRAMMING
LANGUAGE & XML
docs.oracle.com/javase/tutorial/java/
ANDROID SDK & SDK TOOLS
developer.android.com/sdk
ANDROID STUDIO
tools.android.com/download/studio
AND OF COURSE…
MORE ON ANDROID STUDIO
ADB
• Connect to an Android device or emulator
• Read logcat
• Install, reinstall or uninstall apps
• Send/retrieve files to/from device storage
• Forward ports
• Record screen or take screenshots
• Reboot your phone into boot loader or recovery
mode
• Take backups or restore them
• Execute shell commands
DEVICE MONITOR
LOGCAT
SDK MANAGER
WORKFLOW
THERE’S STILL A LOT TO COVER…
NDK, Support Library, Google services APIs, Monetization, etc.
THANK YOU
PLEASE FOLLOW US ON SOCIAL MEDIA CHANNELS
FOR INFORMATION ON UPCOMING EVENTS, TALKS
AND MORE
@gdgoxford
fb.com/gdgoxford
plus.google.com/+GdgoxfordUkGoogleDevelopers/

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android pptTaha Malampatti
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development pptGautam Kumar
 
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
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in androidPrawesh Shrestha
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming BasicsEueung Mulyana
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptxFalgunSorathiya
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentEric Cattoir
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android applicationAtibur Rahman
 
Layouts in android
Layouts in androidLayouts in android
Layouts in androidDurai S
 
androidstudio.pptx
androidstudio.pptxandroidstudio.pptx
androidstudio.pptxSundaresanB5
 
Introduction to Flutter
Introduction to FlutterIntroduction to Flutter
Introduction to FlutterApoorv Pandey
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginnerAjailal Parackal
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Developmentdonnfelker
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppttirupathinews
 
android layouts
android layoutsandroid layouts
android layoutsDeepa Rani
 

Was ist angesagt? (20)

Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android ppt
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development ppt
 
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 ppt
Android ppt Android ppt
Android ppt
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in android
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
 
Android UI
Android UIAndroid UI
Android UI
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptx
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
 
Android User Interface
Android User InterfaceAndroid User Interface
Android User Interface
 
Layouts in android
Layouts in androidLayouts in android
Layouts in android
 
androidstudio.pptx
androidstudio.pptxandroidstudio.pptx
androidstudio.pptx
 
Introduction to Flutter
Introduction to FlutterIntroduction to Flutter
Introduction to Flutter
 
Android seminar ppt
Android seminar pptAndroid seminar ppt
Android seminar ppt
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppt
 
android layouts
android layoutsandroid layouts
android layouts
 

Ähnlich wie Introduction to Android and Android Studio

Android Workshop_1
Android Workshop_1Android Workshop_1
Android Workshop_1Purvik Rana
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programmingPERKYTORIALS
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App DevelopmentMike Kvintus
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2Joemarie Amparo
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101Michael Angelo Rivera
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersBoom Shukla
 
Android Penetration Testing - Day 1
Android Penetration Testing - Day 1Android Penetration Testing - Day 1
Android Penetration Testing - Day 1Mohammed Adam
 
Introduction to Android Development Part 1
Introduction to Android Development Part 1Introduction to Android Development Part 1
Introduction to Android Development Part 1Kainda Kiniel Daka
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android ApplicationNandini Prabhu
 
architecture of android.pptx
architecture of android.pptxarchitecture of android.pptx
architecture of android.pptxallurestore
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 
Android architecture
Android architectureAndroid architecture
Android architectureDeepa Rahul
 
Android Development
Android DevelopmentAndroid Development
Android Developmentmclougm4
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
Android In A Nutshell
Android In A NutshellAndroid In A Nutshell
Android In A NutshellTed Chien
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionDuckMa
 

Ähnlich wie Introduction to Android and Android Studio (20)

Android Workshop_1
Android Workshop_1Android Workshop_1
Android Workshop_1
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App Development
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
 
Android Penetration Testing - Day 1
Android Penetration Testing - Day 1Android Penetration Testing - Day 1
Android Penetration Testing - Day 1
 
Introduction to Android Development Part 1
Introduction to Android Development Part 1Introduction to Android Development Part 1
Introduction to Android Development Part 1
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
 
architecture of android.pptx
architecture of android.pptxarchitecture of android.pptx
architecture of android.pptx
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
Androidify workshop
Androidify workshopAndroidify workshop
Androidify workshop
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Android In A Nutshell
Android In A NutshellAndroid In A Nutshell
Android In A Nutshell
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 

Kürzlich hochgeladen

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Kürzlich hochgeladen (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

Introduction to Android and Android Studio

  • 1. INTRODUCTION TO ANDROID AND ANDROID STUDIO Suyash Srijan
  • 2. ABOUT THE SPEAKER • Computer science student at Oxford Brookes • A kickass Android developer with nearly 6 years of experience • Experience with building ROMs and porting Android to different devices • Experience with other platforms (iOS, Windows, Blackberry) and Wearables (Pebble & Android Wear) • Overall a very cool guy @suyashsrijan fb.com/suyashsrijan github.com/theblixguy
  • 3. WHAT WILL WE LEARN TODAY • What is Android • Why develop for Android • Android platform overview • Android app overview • Android app lifecycle • Android app fundamentals (activities, intents, etc) • Design • Device compatibility • Distribution • What we need to get started with Android development • Android Studio and development tools
  • 5. Android is the world’s most popular and dominant mobile operating system. It is based on Linux kernel 3.4/3.10 (depending on device) and is open-source (with proprietary bits). It runs on a wide variety of hardware, including smartphones, smart watches, cars, televisions, digital cameras, game consoles and more. It was founded by Andy Rubin and three others in October 2003 and got acquired by Google in August 2005.
  • 7. is gigantic • Over 1B users • Over 1.5M activations per day • Over 200M smartphones running Android sold annually • Over 1.43M apps available • Over 76% smartphone operating system market share
  • 8. is freedom • Thousands of third party libraries available • Free SDK, IDE and emulator • No restrictions; access anything* • Faster access to new form factors and hardware • Distribute your app anywhere (Playstore, Amazon Appstore, …) * well, not anything, but you get the point
  • 10.
  • 12. • Java: Java class files containing app logic • Res: Different resource files • Anim: Animation resource files • Drawable: Images • Drawable-Xdpi: Images depending on screen density • Layout: App layout files • Menu: Layout menu files • Values: Value files (strings, colors, arrays, etc) • Values-vX: Value files depending on API level • Values-Xdp: Value files depending on screen density • XML: XML files (duh) • AndroidManifest.xml: App metadata file • build.gradle: Build related settings
  • 13.
  • 15.
  • 18. • A window/interface which a user can interact with • Every app has at least one activity • Activities can be full-screen, floating or embedded inside another activity startActivity(new Intent(this, newActivity.class));
  • 20. • A piece of user interface that is meant to be reused • Adds modularity to your app and makes dynamic UI design easy • It has its own layout, behavior and lifecycle callbacks, but it killed/stop if the activity is too getFragmentManager().beginTransaction().add(andr oid.R.id.content, new MyFragment()).commit();
  • 22. • An intent is an abstract description of an operation to be performed. Think of it as an “intention” to do something • Intents can be used to start activities, services or send a broadcast • Intents are of two types – Explicit (when you know what exactly you want to do), and Implicit (when you’re not sure what you want to do) Intent viewAmazon = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(“http://www.amazon.com”)); startActivity(viewAmazon);
  • 24. • A service is a long running operation in the background • There are two types of services in Android – Bounded (which runs as long as components which bind to it run) and Unbounded (which runs indefinitely) but a service can also be both • Services run on the main thread of the application by default startService(new Intent(this, myService.class));
  • 26. App/Service System sends a broadcast Battery level changes SMS received Photo captured • A broadcast is a system or app event that can be “broadcasted” so other apps/services can listen for it • Broadcasts are handled by a BroadcastReceiver, which is a component that allows you to listen for broadcasts • A BroadcastReceiver can be implemented in AndroidManifest.xml, or dynamically by calling registerReceiver(), or both • An app’s/services’s BroadcastReceiver is never called if the app/service hasn’t been explicitly started by the user
  • 28. App Database Insert Update Delete Fetch • A content provider allows you to store data in your app in a structured way, similar to a relational database like SQL, for the purpose of providing it to other apps. Example usage: Contacts app, SMS app, etc • A content resolver allows you to get data from a content provider or manipulate its data (modify, delete, update, etc) • You cannot request to read data from a content provider at runtime, it has to be declared in AndroidManifest.xml
  • 30.
  • 32. • A layout defines the visual structure for a user interface, such as the UI for an activity or app widget • Layouts can be defined both in XML or programmatically using View and ViewGroup objects • There are 5 different types of Layouts in Android: LinearLayout, RelativeLayout, FrameLayout, TableLayout and AbsoluteLayout
  • 34.
  • 36. Android is designed to run on many different types of devices, from phones to tablets and televisions. As a developer, the range of devices provides a huge potential audience for your app. In order for your app to be successful on all these devices, it should tolerate some feature variability and provide a flexible user interface that adapts to different screen configurations. To facilitate your effort toward that goal, Android provides a dynamic app framework in which you can provide configuration- specific app resources in static files (such as different XML layouts for different screen sizes). Android then loads the appropriate resources based on the current device configuration. So with some forethought to your app design and some additional app resources, you can publish a single application package (APK) that provides an optimized user experience on a variety of devices. If necessary, however, you can specify your app's feature requirements and control which types of devices can install your app from Google Play Store.
  • 37.
  • 39.
  • 40. WHAT DO I NEED TO BUILD AN APP?
  • 41. JAVA PROGRAMMING LANGUAGE & XML docs.oracle.com/javase/tutorial/java/
  • 42. ANDROID SDK & SDK TOOLS developer.android.com/sdk
  • 45.
  • 46. MORE ON ANDROID STUDIO
  • 47.
  • 48. ADB
  • 49. • Connect to an Android device or emulator • Read logcat • Install, reinstall or uninstall apps • Send/retrieve files to/from device storage • Forward ports • Record screen or take screenshots • Reboot your phone into boot loader or recovery mode • Take backups or restore them • Execute shell commands
  • 51.
  • 53.
  • 55.
  • 57.
  • 58. THERE’S STILL A LOT TO COVER… NDK, Support Library, Google services APIs, Monetization, etc.
  • 60. PLEASE FOLLOW US ON SOCIAL MEDIA CHANNELS FOR INFORMATION ON UPCOMING EVENTS, TALKS AND MORE @gdgoxford fb.com/gdgoxford plus.google.com/+GdgoxfordUkGoogleDevelopers/