SlideShare a Scribd company logo
1 of 13
Download to read offline
Android Application Development
    Android Internals: A Quick Overview




                                                  Ahsanul Karim
                               http://androidstream.wordpress.com
What is Android?
An Open Platform for Mobile Development
Google’s Andy Rubin describes Android as:

The first truly open and comprehensive platform for mobile
devices, all of the software to run a mobile phone but without   the
proprietary obstacles that have hindered mobile innovation

  Android is a software    stack for wide range of devices
  including mobiles, tablets and televisions that includes an
         Operating System
         Middleware
         Key Applications.
The Stack
The Stack: Linux Kernel
Android runs of Linux
Linux provides:
1. Hardware Abstraction
    Layer
2. Memory Management
3. Process Management
4. Networking

Users never see Linux sub-
system

(adb shell commands opens
Linux shell we’ll see later)
The Stack: Linux Kernel
Android runs of Linux
Linux provides:
1. Hardware Abstraction
    Layer
2. Memory Management
3. Process Management
4. Networking

Users never see Linux sub-
system

(adb shell commands opens
Linux shell we’ll see later)
The Stack: Native Libraries
Bionic, a super fast and small
GPL-based libc library optimized
for embedded use.
Surface Manager for composing
window manager with off-
screen buffering.
2D and 3D graphics hardware
support or software simulation.
Media codecs offer support for
major audio/video codecs
SQLite database
WebKit library for fast HTML
rendering
The Stack: Android Runtime
  Dalvik VM
Every Android app runs in its own process,
with its own instance of the Dalvik VM.

  Why Dalvik VM?
 1.   Optimized
 2.   Small memory footprints
 3.   Register based architecture
 4.   Security
 5.   Or may be Google’s trick to
      avoid SUN’s lawsuit
The Stack: Application Framework
Activity Manager controls the life
cycle of the app

Resource Manager manages
everything that is not the code

Location Manager figures out the
location of the phone (GPS, GSM,
WiFi)

Notification Manager for events
such as arriving messages,
appointments, etc
The Stack: Applications
Shipped Apps:
an email client,
SMS program,
calendar, maps,
browser, contacts etc.

Third Party Apps

This is where we
        are
What is Android SDK
Provides all necessary tools to develop Android applications. This includes
1.   a compiler,
2.   debugger
3.   a device emulator,
4.   Own virtual machine to run Android programs.


     background processing rich user interface library
        OpenGL libraries access to the file system
                     embedded    SQLite database
Android SDK Features
Features/APIs
Connectivity+Telephony   GSM, EDGE, 3G, 4G, and LTE data transfer+calls+SMS

Location API             APIs for GPS and Network based location detection

MAP Controls             Full support for map integration+controls

Multimedia               Full Multimedia hardware control
                         (camera+recorder+audio+video+still images)
Sensors                  APIs for using sensor hardware including accelerometer,
                         compasses, barometers etc.
Bluetooth & NFC          Peer to peer communication

C2DM                     Cloud to Device Messaging (Push Notification)
Android SDK Features
Features/APIs
Shared Data Stores          Shared Data Stores, APIs for contacts, social networks,
                            calendar and multimedia
Background Services         Background Services and processes

Home Screen Widgets+ Live
Wallpaper
HTML5 Web-kit browser

Localization Framework

Reuse of Application
component
SQLite Data storage
Android Features (Cont.)

            Accelerometer     GPS




    Thermal Sensor
                                               Your App
                                        +     With logic to
                                                Actuate
                                                              =

    Gyroscope




          Light Sensor                                            TTS
                                       Voice Search
                     Magnetic Sensor

More Related Content

What's hot

Day1 before getting_started
Day1 before getting_startedDay1 before getting_started
Day1 before getting_startedAhsanul Karim
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesAhsanul Karim
 
Lecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick OverviewLecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick OverviewAhsanul Karim
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Trainingchandutata
 
Android Development: Build Android App from Scratch
Android Development: Build Android App from ScratchAndroid Development: Build Android App from Scratch
Android Development: Build Android App from ScratchTaufan Erfiyanto
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a NutshellAleix Solé
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginnerAjailal Parackal
 
Questions About Android Application Development
Questions About Android Application DevelopmentQuestions About Android Application Development
Questions About Android Application DevelopmentAdeel Rasheed
 
Synopsis on android nougat
Synopsis on android nougatSynopsis on android nougat
Synopsis on android nougatPooja Maan
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentBenny Skogberg
 
Android development tutorial
Android development tutorialAndroid development tutorial
Android development tutorialnazzf
 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App DevelopmentAbhijeet Gupta
 
Android basic principles
Android basic principlesAndroid basic principles
Android basic principlesHenk Laracker
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Developmentdonnfelker
 
Android application structure
Android application structureAndroid application structure
Android application structureAlexey Ustenko
 

What's hot (20)

Day1 before getting_started
Day1 before getting_startedDay1 before getting_started
Day1 before getting_started
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
 
Lecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick OverviewLecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick Overview
 
Training android
Training androidTraining android
Training android
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Training
 
Android Development: Build Android App from Scratch
Android Development: Build Android App from ScratchAndroid Development: Build Android App from Scratch
Android Development: Build Android App from Scratch
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a Nutshell
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
 
Aptech Apps
Aptech Apps Aptech Apps
Aptech Apps
 
Questions About Android Application Development
Questions About Android Application DevelopmentQuestions About Android Application Development
Questions About Android Application Development
 
Synopsis on android nougat
Synopsis on android nougatSynopsis on android nougat
Synopsis on android nougat
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Android development tutorial
Android development tutorialAndroid development tutorial
Android development tutorial
 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App Development
 
Android basic principles
Android basic principlesAndroid basic principles
Android basic principles
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
cpuk10745
cpuk10745cpuk10745
cpuk10745
 

Viewers also liked

Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)Ahsanul Karim
 
Day 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through ActivitiesDay 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through ActivitiesAhsanul Karim
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorialAhsanul Karim
 
Day 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location APIDay 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location APIAhsanul Karim
 
Android MapView and MapActivity
Android MapView and MapActivityAndroid MapView and MapActivity
Android MapView and MapActivityAhsanul Karim
 
Android User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAndroid User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAhsanul Karim
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsAhsanul Karim
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAhsanul Karim
 
Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Ahsanul Karim
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studioParinita03
 
Android GPS Tutorial
Android GPS TutorialAndroid GPS Tutorial
Android GPS TutorialAhsanul Karim
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI WidgetsAhsanul Karim
 
Day 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver ComponentDay 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver ComponentAhsanul Karim
 
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
 
Lecture 3 getting active through activities
Lecture 3 getting active through activities Lecture 3 getting active through activities
Lecture 3 getting active through activities Ahsanul Karim
 
Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Ahsanul Karim
 

Viewers also liked (19)

Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)
 
Day 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through ActivitiesDay 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through Activities
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorial
 
Client-Server
Client-ServerClient-Server
Client-Server
 
Day 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location APIDay 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location API
 
Android MapView and MapActivity
Android MapView and MapActivityAndroid MapView and MapActivity
Android MapView and MapActivity
 
Android Services
Android ServicesAndroid Services
Android Services
 
Android User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAndroid User Interface: Basic Form Widgets
Android User Interface: Basic Form Widgets
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViews
 
List Views
List ViewsList Views
List Views
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
 
Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studio
 
Android GPS Tutorial
Android GPS TutorialAndroid GPS Tutorial
Android GPS Tutorial
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI Widgets
 
Day 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver ComponentDay 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver Component
 
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)
 
Lecture 3 getting active through activities
Lecture 3 getting active through activities Lecture 3 getting active through activities
Lecture 3 getting active through activities
 
Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3
 

Similar to Day 2 android internals a quick overview

Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, androidJehad2012
 
Android unveiled (I)
Android unveiled (I)Android unveiled (I)
Android unveiled (I)denian00
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212Yoojoo Jang
 
Android overview
Android overviewAndroid overview
Android overviewHas Taiar
 
Gene Presentation For Android
Gene Presentation For AndroidGene Presentation For Android
Gene Presentation For AndroidGene Leybzon
 
Android – As a tool of innovation
Android – As a tool of innovation Android – As a tool of innovation
Android – As a tool of innovation Pallab Sarkar
 
Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)RAHUL TRIPATHI
 
An introduction to Android
An introduction to AndroidAn introduction to Android
An introduction to AndroidRajesh Jambukia
 
Android 1-intro n architecture
Android 1-intro n architectureAndroid 1-intro n architecture
Android 1-intro n architectureDilip Singh
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android Ranjith Kumar
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016Benjamin Cabé
 
Getting started with android
Getting started with androidGetting started with android
Getting started with androidamitgb
 
Garbage Management using Android Smartphone
Garbage Management using Android SmartphoneGarbage Management using Android Smartphone
Garbage Management using Android Smartphoneijsrd.com
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development WorkshopMuthu Kumar
 

Similar to Day 2 android internals a quick overview (20)

Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, android
 
Android unveiled (I)
Android unveiled (I)Android unveiled (I)
Android unveiled (I)
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
 
Android overview
Android overviewAndroid overview
Android overview
 
Gene Presentation For Android
Gene Presentation For AndroidGene Presentation For Android
Gene Presentation For Android
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Android
AndroidAndroid
Android
 
Android – As a tool of innovation
Android – As a tool of innovation Android – As a tool of innovation
Android – As a tool of innovation
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)Android Basic Presentation (Introduction)
Android Basic Presentation (Introduction)
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 
Android
AndroidAndroid
Android
 
An introduction to Android
An introduction to AndroidAn introduction to Android
An introduction to Android
 
Android
AndroidAndroid
Android
 
Android 1-intro n architecture
Android 1-intro n architectureAndroid 1-intro n architecture
Android 1-intro n architecture
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
Getting started with android
Getting started with androidGetting started with android
Getting started with android
 
Garbage Management using Android Smartphone
Garbage Management using Android SmartphoneGarbage Management using Android Smartphone
Garbage Management using Android Smartphone
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development Workshop
 

More from Ahsanul Karim

Lecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & PreferencesLecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & PreferencesAhsanul Karim
 
Day 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts APIDay 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts APIAhsanul Karim
 
Day 15: Working in Background
Day 15: Working in BackgroundDay 15: Working in Background
Day 15: Working in BackgroundAhsanul Karim
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsAhsanul Karim
 
Day 4: Activity lifecycle
Day 4: Activity lifecycleDay 4: Activity lifecycle
Day 4: Activity lifecycleAhsanul Karim
 
Mobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete StudyMobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete StudyAhsanul Karim
 

More from Ahsanul Karim (7)

Lecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & PreferencesLecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & Preferences
 
Day 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts APIDay 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts API
 
Day 15: Working in Background
Day 15: Working in BackgroundDay 15: Working in Background
Day 15: Working in Background
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViews
 
Day 4: Activity lifecycle
Day 4: Activity lifecycleDay 4: Activity lifecycle
Day 4: Activity lifecycle
 
Mobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete StudyMobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete Study
 
GCM for Android
GCM for AndroidGCM for Android
GCM for Android
 

Day 2 android internals a quick overview

  • 1. Android Application Development Android Internals: A Quick Overview Ahsanul Karim http://androidstream.wordpress.com
  • 2. What is Android? An Open Platform for Mobile Development Google’s Andy Rubin describes Android as: The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation Android is a software stack for wide range of devices including mobiles, tablets and televisions that includes an Operating System Middleware Key Applications.
  • 4. The Stack: Linux Kernel Android runs of Linux Linux provides: 1. Hardware Abstraction Layer 2. Memory Management 3. Process Management 4. Networking Users never see Linux sub- system (adb shell commands opens Linux shell we’ll see later)
  • 5. The Stack: Linux Kernel Android runs of Linux Linux provides: 1. Hardware Abstraction Layer 2. Memory Management 3. Process Management 4. Networking Users never see Linux sub- system (adb shell commands opens Linux shell we’ll see later)
  • 6. The Stack: Native Libraries Bionic, a super fast and small GPL-based libc library optimized for embedded use. Surface Manager for composing window manager with off- screen buffering. 2D and 3D graphics hardware support or software simulation. Media codecs offer support for major audio/video codecs SQLite database WebKit library for fast HTML rendering
  • 7. The Stack: Android Runtime Dalvik VM Every Android app runs in its own process, with its own instance of the Dalvik VM. Why Dalvik VM? 1. Optimized 2. Small memory footprints 3. Register based architecture 4. Security 5. Or may be Google’s trick to avoid SUN’s lawsuit
  • 8. The Stack: Application Framework Activity Manager controls the life cycle of the app Resource Manager manages everything that is not the code Location Manager figures out the location of the phone (GPS, GSM, WiFi) Notification Manager for events such as arriving messages, appointments, etc
  • 9. The Stack: Applications Shipped Apps: an email client, SMS program, calendar, maps, browser, contacts etc. Third Party Apps This is where we are
  • 10. What is Android SDK Provides all necessary tools to develop Android applications. This includes 1. a compiler, 2. debugger 3. a device emulator, 4. Own virtual machine to run Android programs. background processing rich user interface library OpenGL libraries access to the file system embedded SQLite database
  • 11. Android SDK Features Features/APIs Connectivity+Telephony GSM, EDGE, 3G, 4G, and LTE data transfer+calls+SMS Location API APIs for GPS and Network based location detection MAP Controls Full support for map integration+controls Multimedia Full Multimedia hardware control (camera+recorder+audio+video+still images) Sensors APIs for using sensor hardware including accelerometer, compasses, barometers etc. Bluetooth & NFC Peer to peer communication C2DM Cloud to Device Messaging (Push Notification)
  • 12. Android SDK Features Features/APIs Shared Data Stores Shared Data Stores, APIs for contacts, social networks, calendar and multimedia Background Services Background Services and processes Home Screen Widgets+ Live Wallpaper HTML5 Web-kit browser Localization Framework Reuse of Application component SQLite Data storage
  • 13. Android Features (Cont.) Accelerometer GPS Thermal Sensor Your App + With logic to Actuate = Gyroscope Light Sensor TTS Voice Search Magnetic Sensor