SlideShare a Scribd company logo
1 of 25
Download to read offline
Introducing Android




                             Cory Maksymchuk
                cory.maksymchuk@protegra.com
                   cory.maksymchuk@gmail.com
Today


•   Java is dead?
•   What is Android and why was it made?
•   Open?
•   Money?
•   Overview of android architecture
•   Sample Application
Java is Dead
Android
Worldwide Smart Phone Market share

•   2009 – 3.9%
•   2010 – 23%
•   2011 – 38%
•   2012 – 49%
•   3 years = 500 million smart phones running Android
Why Java?


•   Mature Language
•   Massive open source community
•   Excellent tools/IDEs
•   Large, slow bloated Virtual Machine
    - Dalvik = Small, fast optimized Virtual Machine


• All benefits, no disadvantages
    - Except?
What is Android?
How was growth achieved?

•   Operating system, built on Linux
•   Compiler, debugger, emulator, VM
•   Open sourced code under Apache 2 license
•   Open Handset Alliance – 84’ish Companies
    -   Why?
    -   Open standards to allow it to grow
    -   Ability to compete – Apple, Symbian/Nokia, RIM, Microsoft
    -   Google = Smart
• Android vs. iPhone?
Open?


• Yes… but No…
• Open
   - A license that insures the code can be modified, reused and
     distributed
   - A community development approach
   - Assurance the users have total freedom over the device and
     software.
• Google has achieved ½ of openness – Legally Open
  Source
• Is their ‘community development approach’ any different
  than Apple or RIM?
Money?


• What kind of a company is Google?
• How do they make money?
• Android simply makes them better at doing what they’ve
  always done best.
3 Things


• Activities = Screens



• Views/Widgets = Components



• Intents = Messages - used for navigation (among other
  things)
Activities = Screens


• Screens have lifecycles on Mobile devices
   -   onCreate() — Activity is first created
   -   onStart() — Becomes visible
   -   onResume() — Interacting with the user
   -   onPause() — Current activity-> another activity resumed
   -   onStop() — No longer visible to the user
   -   onDestroy() — Before the activity is destroyed
   -   onRestart() — Restarting again
Views


• Basic building block for UI components

                                  Layout




                Widget           ViewGroup




                          View
Views – Cont’d


• To add views to a screen/activity, create hierarchy of
  views, then call setViewGroup(…) in the activity.
• Layout may contain layout and buttons, text fields, radio
  buttons, etc.
Intents = Messages


• Main communication mechanism in Android

1) Used to call other apps or screens – This is us!
2) Send a message to someone who is listening
  -   Low battery
  -   Time zone change
3) Start a service
  -   Download a file
  -   Start/Check the status of a process
Intents/Messages
What do they contain?

• Component name – Unique identifier of component
   - This is an explicit intent
• Activity
   -   ACTION_CALL
   -   ACTION_EDIT
   -   ACTION_SYNC
   -   ACTION_VIEW
• Data
   - URI and MIME type (http://www.protegra.com)
• Category
   - Logical Grouping of activities
• Extras
   - Key/Value pairs
Intent Filters – Intent Resolution


•   Data


•   <intent-filter . . . >
       <action android:name="com.example.project.SHOW_CURRENT" />
       <action android:name="com.example.project.SHOW_RECENT" />
       ...
       <category android:name="android.intent.category.DEFAULT" />
       <category android:name="android.intent.category.BROWSABLE" />
       ...
     <data android:mimeType="video/mpeg" android:scheme="http" . . . />
      <data android:mimeType="audio/mpeg" android:scheme="http" . . . />
    </intent-filter>
Summary


• Screens = Activities
• Screens have components (Views) to manage layouts
  as well as widgets, etc.
• Activities call other Activities, invoke services and send
  messages using Intents
Code

More Related Content

Similar to C maksymchuk android

Android_Workshop
Android_WorkshopAndroid_Workshop
Android_Workshop
Senthil ACS
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
Imam Raza
 
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
DuckMa
 

Similar to C maksymchuk android (20)

Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android_Workshop
Android_WorkshopAndroid_Workshop
Android_Workshop
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2
 
Unit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.pptUnit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.ppt
 
Dori waldman android _course
Dori waldman android _courseDori waldman android _course
Dori waldman android _course
 
Eca online-seminar-session-1.pptx
Eca online-seminar-session-1.pptxEca online-seminar-session-1.pptx
Eca online-seminar-session-1.pptx
 
Android_ver_01
Android_ver_01Android_ver_01
Android_ver_01
 
03 - Membangun Aplikasi Mobile Berkualitas (Herman Tolle)
03 - Membangun Aplikasi Mobile Berkualitas (Herman Tolle)03 - Membangun Aplikasi Mobile Berkualitas (Herman Tolle)
03 - Membangun Aplikasi Mobile Berkualitas (Herman Tolle)
 
OS in mobile devices [Android]
OS in mobile devices [Android]OS in mobile devices [Android]
OS in mobile devices [Android]
 
Android
AndroidAndroid
Android
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart Jfokus
 
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
 
Basics of Android
Basics of Android Basics of Android
Basics of Android
 
Android Mobile App Development basics PPT
Android Mobile App Development basics PPTAndroid Mobile App Development basics PPT
Android Mobile App Development basics PPT
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and Security
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 

More from sdeconf

More from sdeconf (20)

S rogalsky user-storymapping
S rogalsky user-storymappingS rogalsky user-storymapping
S rogalsky user-storymapping
 
Sdec 2011 ux_agile_svt
Sdec 2011 ux_agile_svtSdec 2011 ux_agile_svt
Sdec 2011 ux_agile_svt
 
Sdec 2011 ask_watchlisten_svt
Sdec 2011 ask_watchlisten_svtSdec 2011 ask_watchlisten_svt
Sdec 2011 ask_watchlisten_svt
 
S bueckert sdecmobile
S bueckert sdecmobileS bueckert sdecmobile
S bueckert sdecmobile
 
Ro r trilogy-part-1
Ro r trilogy-part-1Ro r trilogy-part-1
Ro r trilogy-part-1
 
Rackforce the cloud
Rackforce the cloudRackforce the cloud
Rackforce the cloud
 
Pscad agile adoption
Pscad agile adoptionPscad agile adoption
Pscad agile adoption
 
L phillips apm
L phillips apmL phillips apm
L phillips apm
 
J wagner security
J wagner securityJ wagner security
J wagner security
 
G meredith scala
G meredith scalaG meredith scala
G meredith scala
 
Friesens agile adoption
Friesens agile adoptionFriesens agile adoption
Friesens agile adoption
 
Dan perron lim
Dan perron limDan perron lim
Dan perron lim
 
D alpert ux102
D alpert ux102D alpert ux102
D alpert ux102
 
Sdec11.agile ina day
Sdec11.agile ina daySdec11.agile ina day
Sdec11.agile ina day
 
D alpert ux101
D alpert ux101D alpert ux101
D alpert ux101
 
C fowler intro-azure
C fowler intro-azureC fowler intro-azure
C fowler intro-azure
 
C fowler azure-dojo
C fowler azure-dojoC fowler azure-dojo
C fowler azure-dojo
 
Booked in agileadoption
Booked in agileadoptionBooked in agileadoption
Booked in agileadoption
 
A baryklo design-patterns
A baryklo design-patternsA baryklo design-patterns
A baryklo design-patterns
 
T bunio active-architecture
T bunio active-architectureT bunio active-architecture
T bunio active-architecture
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

C maksymchuk android

  • 1. Introducing Android Cory Maksymchuk cory.maksymchuk@protegra.com cory.maksymchuk@gmail.com
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Today • Java is dead? • What is Android and why was it made? • Open? • Money? • Overview of android architecture • Sample Application
  • 10. Android Worldwide Smart Phone Market share • 2009 – 3.9% • 2010 – 23% • 2011 – 38% • 2012 – 49% • 3 years = 500 million smart phones running Android
  • 11. Why Java? • Mature Language • Massive open source community • Excellent tools/IDEs • Large, slow bloated Virtual Machine - Dalvik = Small, fast optimized Virtual Machine • All benefits, no disadvantages - Except?
  • 12. What is Android? How was growth achieved? • Operating system, built on Linux • Compiler, debugger, emulator, VM • Open sourced code under Apache 2 license • Open Handset Alliance – 84’ish Companies - Why? - Open standards to allow it to grow - Ability to compete – Apple, Symbian/Nokia, RIM, Microsoft - Google = Smart • Android vs. iPhone?
  • 13. Open? • Yes… but No… • Open - A license that insures the code can be modified, reused and distributed - A community development approach - Assurance the users have total freedom over the device and software. • Google has achieved ½ of openness – Legally Open Source • Is their ‘community development approach’ any different than Apple or RIM?
  • 14. Money? • What kind of a company is Google? • How do they make money? • Android simply makes them better at doing what they’ve always done best.
  • 15.
  • 16. 3 Things • Activities = Screens • Views/Widgets = Components • Intents = Messages - used for navigation (among other things)
  • 17. Activities = Screens • Screens have lifecycles on Mobile devices - onCreate() — Activity is first created - onStart() — Becomes visible - onResume() — Interacting with the user - onPause() — Current activity-> another activity resumed - onStop() — No longer visible to the user - onDestroy() — Before the activity is destroyed - onRestart() — Restarting again
  • 18.
  • 19. Views • Basic building block for UI components Layout Widget ViewGroup View
  • 20. Views – Cont’d • To add views to a screen/activity, create hierarchy of views, then call setViewGroup(…) in the activity. • Layout may contain layout and buttons, text fields, radio buttons, etc.
  • 21. Intents = Messages • Main communication mechanism in Android 1) Used to call other apps or screens – This is us! 2) Send a message to someone who is listening - Low battery - Time zone change 3) Start a service - Download a file - Start/Check the status of a process
  • 22. Intents/Messages What do they contain? • Component name – Unique identifier of component - This is an explicit intent • Activity - ACTION_CALL - ACTION_EDIT - ACTION_SYNC - ACTION_VIEW • Data - URI and MIME type (http://www.protegra.com) • Category - Logical Grouping of activities • Extras - Key/Value pairs
  • 23. Intent Filters – Intent Resolution • Data • <intent-filter . . . > <action android:name="com.example.project.SHOW_CURRENT" /> <action android:name="com.example.project.SHOW_RECENT" /> ... <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> ... <data android:mimeType="video/mpeg" android:scheme="http" . . . /> <data android:mimeType="audio/mpeg" android:scheme="http" . . . /> </intent-filter>
  • 24. Summary • Screens = Activities • Screens have components (Views) to manage layouts as well as widgets, etc. • Activities call other Activities, invoke services and send messages using Intents
  • 25. Code