Android Developer Fundamentals V2
Build your first
      app
           Lesson 1
                                                                          This
                                                                           Thiswork
                                                                                workis islicensed
                                                                                           licensedunder
                                                                                                    undera a
                                                     Introduction
                                                       Introductiontoto
                 Android Developer Fundamentals V2                        Creative
                                                                           CreativeCommons
                                                                                     CommonsAttribution
                                                                                                   Attribution4.0
                                                                                                                4.0Inter
                                                                                                                     Inter   1
                                                         Android
                                                           Android        national
                                                                           nationalLicense
                                                                                     License
1.0 Introduction to Android
                                                            This work is licensed under a
                                          Introduction to
      Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   2
                                              Android       national License
Contents
● Android is an ecosystem
● Android platform architecture
● Android Versions
● Challenges of Android app development
● App fundamentals
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   3
                                                     Android       national License
Android Ecosystem
                                                        This work is licensed under a
                                      Introduction to
  Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   4
                                          Android       national License
What is Android?
●   Mobile operating system based on Linux kernel
●   User Interface for touch screens
●   Used on over 80% of all smartphones
●   Powers devices such as watches, TVs, and cars
●   Over 2 Million Android apps in Google Play store
●   Highly customizable for devices / by vendors
●   Open source
                                                                     This work is licensed under a
                                                   Introduction to
               Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   5
                                                       Android       national License
Android user interaction
● Touch gestures: swiping, tapping, pinching
● Virtual keyboard for characters, numbers, and emoji
● Support for Bluetooth, USB controllers and peripherals
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   6
                                                     Android       national License
Android and sensors
Sensors can discover user action and respond
● Device contents rotate as needed
● Walking adjusts position on map
● Tilting steers a virtual car or controls a physical toy
● Moving too fast disables game interactions
                                                                    This work is licensed under a
                                                  Introduction to
              Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   7
                                                      Android       national License
Android home screen
 ● Launcher icons for apps
 ● Self-updating widgets for live content
 ● Can be multiple pages
 ● Folders to organize apps
 ● "OK Google"
                                                                  This work is licensed under a
                                                Introduction to
            Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   8
                                                    Android       national License
Android app examples
 Pandora                       Pokemon GO                                                     Facebook
                                                                                              Messenger
                                                                 This work is licensed under a
                                               Introduction to
           Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   9
                                                   Android       national License
Android Software Developer Kit (SDK)
● Development tools (debugger, monitors, editors)
● Libraries (maps, wearables)
● Virtual devices (emulators)
● Documentation (developers.android.com)
● Sample code
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   10
                                                     Android       national License
Android Studio
                                                     ● Official Android IDE
                                                     ● Develop, run, debug,
                                                       test, and package apps
                                                     ● Monitors and
                                                       performance tools
                                                     ● Virtual devices
                                                     ● Project views
                                                     ● Visual layout editor
                                                               This work is licensed under a
                                             Introduction to
         Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   11
                                                 Android       national License
Google Play store
Publish apps through Google Play store:
● Official app store for Android
● Digital distribution service operated by Google
                                                                    This work is licensed under a
                                                  Introduction to
              Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   12
                                                      Android       national License
Android Platform
  Architecture
                                                       This work is licensed under a
                                     Introduction to
 Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   13
                                         Android       national License
 Android stack
1. System and user apps
2. Android OS API in
   Java framework
3. Expose native APIs;
   run apps
4. Expose device
   hardware capabilities
5. Linux Kernel
                                                                     This work is licensed under a
                                                   Introduction to
               Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   14
                                                       Android       national License
System and user apps
● System apps have no special status
● System apps provide key capabilities to app developers
Example:
  Your app can use a system app to deliver a SMS
  message.
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   15
                                                     Android       national License
Java API Framework
The entire feature-set of the Android OS is available to you
through APIs written in the Java language.
● View class hierarchy to create UI screens
● Notification manager
● Activity manager for life cycles and navigation
                                                                     This work is licensed under a
                                                   Introduction to
               Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   16
                                                       Android       national License
Android runtime
Each app runs in its own process with its own instance of the
Android Runtime.
                                                                    This work is licensed under a
                                                  Introduction to
              Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   17
                                                      Android       national License
C/C++ libraries
● Core C/C++ Libraries give access to core native Android
  system components and services.
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   18
                                                     Android       national License
Hardware Abstraction Layer (HAL)
● Standard interfaces that expose device hardware
  capabilities as libraries
  Examples: Camera, bluetooth module
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   19
                                                     Android       national License
Linux Kernel
● Threading and low-level memory management
● Security features
● Drivers
                                                                  This work is licensed under a
                                                Introduction to
            Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   20
                                                    Android       national License
 Older Android versions
Codename              Version              Released              API Level
Honeycomb             3.0 - 3.2.6          Feb 2011              11 - 13
Ice Cream Sandwich 4.0 - 4.0.4             Oct 2011              14 - 15
Jelly Bean            4.1 - 4.3.1          July 2012             16 - 18
KitKat                4.4 - 4.4.4          Oct 2013              19 - 20                 Android History and
                                                                                         Platform Versions
Lollipop              5.0 - 5.1.1          Nov 2014              21 - 22                 for more and earlier
                                                                                         versions before 2011
                                                                         This work is licensed under a
                                                       Introduction to
                   Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   21
                                                           Android       national License
Newer Android versions
 Codename                           Version                      Released                      API Level
 Marshmallow                        6.0 - 6.0.1                  Oct 2015                      23
 Nougat                             7.0 - 7.1                    Sept 2016                     24 - 25
 Oreo                               8.0 - 8.1                    Sept 2017                     26 - 27
 Pie                                9.0                          Aug 2018                      28
                                                                     This work is licensed under a
                                                   Introduction to
               Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   22
                                                       Android       national License
App Development
                                                       This work is licensed under a
                                     Introduction to
 Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   23
                                         Android       national License
What is an Android app?
● One or more interactive screens
● Written using Java Programming Language and XML
● Uses the Android Software Development Kit (SDK)
● Uses Android libraries and Android Application
  Framework
● Executed by Android Runtime Virtual machine (ART)
                                                                  This work is licensed under a
                                                Introduction to
            Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   24
                                                    Android       national License
Challenges of Android development
●   Multiple screen sizes and resolutions
●   Performance: make your apps responsive and smooth
●   Security: keep source code and user data safe
●   Compatibility: run well on older platform versions
●   Marketing: understand the market and your users
    (Hint: It doesn't have to be expensive, but it can be.)
                                                                     This work is licensed under a
                                                   Introduction to
               Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   25
                                                       Android       national License
App building blocks
● Resources: layouts, images, strings, colors as XML and
  media files
● Components: activities, services, and helper classes as
  Java code
● Manifest: information about app for the runtime
● Build configuration: APK versions in Gradle config files
                                                                    This work is licensed under a
                                                  Introduction to
              Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   26
                                                      Android       national License
Learn more
● Android History
● Introduction to Android
● Platform Architecture
● UI Overview
● Platform Versions
● Supporting Different Platform Versions
● Android Studio User’s Guide
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution 4.0 Inter   27
                                                     Android       national License
What's Next?
● Concept Chapter: 1.0 Introduction to Android
● No Practical
                                                                   This work is licensed under a
                                                 Introduction to
             Android Developer Fundamentals V2                     Creative Commons Attribution-NonCo   28
                                                     Android       mmercial 4.0 International License
END
                                                     This work is licensed under a
                                   Introduction to
  Android Developer Fundamentals                     Creative Commons Attribution-NonCo   29
                                       Android       mmercial 4.0 International License