SlideShare a Scribd company logo
1 of 18
Download to read offline
Android Application Development
Lecture 2(B): Android Internals:
A Quick Overview
1. What is Android
2. The Android Stack
3. Android SDK
4. Features of Android SDK
5. Application Build Process
6. How Apps Run
Ahsanul Karim
karim.ahsanul@gmail.com
http://droidtraining.wordpress.com
Android Internals: Overview
1. What is Android
2. The Android Stack
3. Android SDK
4. Features of Android SDK
5. Application Build Process
6. How Apps Run

We'll Discuss...
Android Internals: Overview

What is Android...

What is Android?
An Open Platform for Mobile Applications Development

The first truly open and comprehensive platform for mobile
devices with all of the software to run a mobile phone but
without the proprietary obstacles that have hindered
mobile innovation
- Andy Rubin
A Software Stack for devices including mobiles, tablets and
televisions with:

1. Operating System
2. Middleware
3. Key Applications
Android Internals: Overview

The Android Stack...
Android Internals: Overview
The Stack: Linux Kernel
Android runs on Linux Kernel.
Kernel provides:
1. Hardware Abstraction
2. Memory Management
3. Process Management
4. Networking
Users never see this.
[adb shell commands opens
Linux.. will see it later...]

The Android Stack [1]
Android Internals: Overview
The Stack: Native Libraries
1. Bionic, a fast and small GPLbased libc library
2. Surface Manager, window
manager [off-screen buffering]
3. 2D+3D Graphics OpenGL
4. Media Codecs, offers
support for audio/video codecs
5. SQLite Database Library
6. WebKit Library for better
HTML rendering

The Android Stack [2]
Android Internals: Overview
The Stack: Android Runtime

Dalvik VM
1. Optimized
2. Small Memory Footprints
3. Register based Architecture
4. Security Model

We'll discuss application build
process later in this session

The Android Stack [3]
Android Internals: Overview
The Stack: Application Framework
1. Activity Manager controls
the lifecycle of the application
2. Resource Manager
manages everything that is not
the code
3. Location Manager figures
out the location of the phone
[GPS, GSM, WiFi]
4. Notification Manager for
events such as arriving
messages, appointments etc.

The Android Stack [4]
Android Internals: Overview
The Stack: Applications

Shipped Apps:
Example:
Email client, SMS program,
Calendar, Maps, Browser,
Contacts etc.

Third Party Apps:

This is where
we are

The Android Stack [5]
Android Internals: Overview

Android SDK [1]
Android Internals: Overview

Android SDK [2]

Includes everything required to Develop, Test & Debug
Android APIs

API Libraries provide developers access to the Android stack.
Same libraries are used by Google for shipped application

Development Tools

Tools that are used to build applications from source files to
executables. [dx, aapt etc]

Emulator + AVD
Manager

Emulator running in ADVs to simulate device hardware
configuration lets developers test applications

Documentation

Reference documentation and developer guide

Sample Code

Sample application source code for different features and API
libraries

Online Support

http://developer.android.com + a vibrant developer community
Android Internals: Overview

SDK Features [1]

Features/APIs
Connectivity +
Telephony

GSM, EDGE, 3G, 4G and LTE Data Transfer+Calls and SMS

Location API

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,
compass, barometer etc.

Bluetooth & NFC

Peer to peer communication

Wi-Fi

Wi-Fi hardware access

Storage

SQLite Database
Android Internals: Overview

SDK Features [2]

Features/APIs
Shared Data Stores

Shared Data Stores, APIs fr contacts, Social Networks,
Calendar and Multimedia

Background Services

Support for Background Services and Processes

MAP Controls

Full support for map integration+controls

Widgets

Home-screen Widgets and Live Wallpaper

WebKit

Integrated HTML5 WebKit based browser

OpenGL

Mobile optimized hardware-accelerated 2D and 3D graphics
support

Localization

Localization through dynamic resource framework

Reuse Components

Framework encourages reuse of application components
Build Process [1]
Android Internals: Overview

Build Process [2]

Android
Runtime
.class file
.class file
.class file

Manifest
dx Tool

.dex file
Resources

aapt

.apk App
Package
Android Internals: Overview

How Apps Run [1]

The .apk file is installed on a device, and lives in its own security sandbox
1. Android OS- a multi-user Linux system in which each application is a different user.
2. System assigns each app a unique Linux user ID. The system sets permissions for all
the files in an application so that only the user ID assigned to that application can
access them.
3. Each process has its own VM, so app's code runs in isolation from other apps.
4. By default, every application runs in its own Linux process. Android starts the
process when any of the application's components need to be executed, then shuts
down the process when it's no longer needed/when the system must recover memory
for other applications.
In this way, the Android system implements the principle of least privilege.
Android Internals: Overview

How Apps Run [2]

The .apk file is installed on a device, and lives in its own security sandbox
Linux
Kernel
Linux Process
Dalvik Virtual Machine
Android Application
Android Internals: Overview

Questions...

At the end of the day, the questions we ask of
ourselves determine the type of people that we will
become.
-Leo Babauta

More Related Content

What's hot

Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesAhsanul 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
 
Android Services and Managers Basic
Android Services and Managers BasicAndroid Services and Managers Basic
Android Services and Managers BasicWilliam Lee
 
Synopsis on android application
Synopsis on android applicationSynopsis on android application
Synopsis on android applicationJawed akhtar
 
android app development training report
android app development training reportandroid app development training report
android app development training reportRishita Jaggi
 
Getting Started With ANDROID
Getting Started With ANDROIDGetting Started With ANDROID
Getting Started With ANDROIDAmit Yadav
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App DevelopmentTodd Burgess
 
Android Synopsis
Android SynopsisAndroid Synopsis
Android SynopsisNiraj Rahi
 
Android application development
Android application developmentAndroid application development
Android application developmentMadhuprakashR1
 
Synopsis on android nougat
Synopsis on android nougatSynopsis on android nougat
Synopsis on android nougatPooja Maan
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI WidgetsAhsanul Karim
 
FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)Nehemiah Tan
 
Android summer training report
Android summer training reportAndroid summer training report
Android summer training reportShashendra Singh
 
Android MapView and MapActivity
Android MapView and MapActivityAndroid MapView and MapActivity
Android MapView and MapActivityAhsanul Karim
 
Android File Manager Report PDF
Android File Manager Report PDFAndroid File Manager Report PDF
Android File Manager Report PDFPrajjwal Kumar
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App DevelopmentMike Kvintus
 
Android task manager project presentation
Android task manager project presentationAndroid task manager project presentation
Android task manager project presentationAkhilesh Jaiswal
 

What's hot (20)

Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
 
Android User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAndroid User Interface: Basic Form Widgets
Android User Interface: Basic Form Widgets
 
Android Services and Managers Basic
Android Services and Managers BasicAndroid Services and Managers Basic
Android Services and Managers Basic
 
Synopsis on android application
Synopsis on android applicationSynopsis on android application
Synopsis on android application
 
android app development training report
android app development training reportandroid app development training report
android app development training report
 
Getting Started With ANDROID
Getting Started With ANDROIDGetting Started With ANDROID
Getting Started With ANDROID
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App Development
 
Android Synopsis
Android SynopsisAndroid Synopsis
Android Synopsis
 
Android application development
Android application developmentAndroid application development
Android application development
 
Android presentation slide
Android presentation slideAndroid presentation slide
Android presentation slide
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Synopsis on android nougat
Synopsis on android nougatSynopsis on android nougat
Synopsis on android nougat
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI Widgets
 
FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)
 
Android summer training report
Android summer training reportAndroid summer training report
Android summer training report
 
Android MapView and MapActivity
Android MapView and MapActivityAndroid MapView and MapActivity
Android MapView and MapActivity
 
Android File Manager Report PDF
Android File Manager Report PDFAndroid File Manager Report PDF
Android File Manager Report PDF
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App Development
 
.Net presentation
.Net presentation.Net presentation
.Net presentation
 
Android task manager project presentation
Android task manager project presentationAndroid task manager project presentation
Android task manager project presentation
 

Viewers also liked

Day1 before getting_started
Day1 before getting_startedDay1 before getting_started
Day1 before getting_startedAhsanul 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
 
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
 
Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Ahsanul Karim
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorialAhsanul 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
 
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
 
Day 2 android internals a quick overview
Day 2 android internals a quick overviewDay 2 android internals a quick overview
Day 2 android internals a quick overviewAhsanul 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 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 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: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Ahsanul Karim
 
Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Ahsanul Karim
 
Sensors in Android (old)
Sensors in Android (old)Sensors in Android (old)
Sensors in Android (old)Ahsanul Karim
 
Android GPS Tutorial
Android GPS TutorialAndroid GPS Tutorial
Android GPS TutorialAhsanul Karim
 
Day 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedDay 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedAhsanul Karim
 

Viewers also liked (20)

Mcq peresentation
Mcq  peresentationMcq  peresentation
Mcq peresentation
 
GCM for Android
GCM for AndroidGCM for Android
GCM for Android
 
Day1 before getting_started
Day1 before getting_startedDay1 before getting_started
Day1 before getting_started
 
Lecture 3 getting active through activities
Lecture 3 getting active through activities Lecture 3 getting active through activities
Lecture 3 getting active through activities
 
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]
 
Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorial
 
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
 
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
 
Day 2 android internals a quick overview
Day 2 android internals a quick overviewDay 2 android internals a quick overview
Day 2 android internals a quick overview
 
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
 
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 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: 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 Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3
 
Sensors in Android (old)
Sensors in Android (old)Sensors in Android (old)
Sensors in Android (old)
 
Android GPS Tutorial
Android GPS TutorialAndroid GPS Tutorial
Android GPS Tutorial
 
Training android
Training androidTraining android
Training android
 
Day 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedDay 1 Android: Before Getting Started
Day 1 Android: Before Getting Started
 

Similar to Lecture 2(b) Android Internals A Quick Overview

Outstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement AwardOutstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement Awardpravinmali2191
 
Android seminar report
Android seminar reportAndroid seminar report
Android seminar reportdgpune
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a NutshellAleix Solé
 
Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01Santosh Sh
 
Android Overview
Android OverviewAndroid Overview
Android OverviewRaju Kadam
 
Android - Workshop By Secure-Net Technologies
Android - Workshop By Secure-Net TechnologiesAndroid - Workshop By Secure-Net Technologies
Android - Workshop By Secure-Net TechnologiesNamita Mahajan
 
Android and its feature
Android and its featureAndroid and its feature
Android and its featureShubham Kumar
 
Unit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-assUnit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-assARVIND SARDAR
 
Android development-tutorial
Android development-tutorialAndroid development-tutorial
Android development-tutorialilias ahmed
 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App DevelopmentAbhijeet Gupta
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Android interview questions and answers
Android interview questions and answersAndroid interview questions and answers
Android interview questions and answerskavinilavuG
 
Mobile Android and Network
Mobile Android and NetworkMobile Android and Network
Mobile Android and NetworkPadma Sankar
 

Similar to Lecture 2(b) Android Internals A Quick Overview (20)

Notes Unit2.pptx
Notes Unit2.pptxNotes Unit2.pptx
Notes Unit2.pptx
 
Outstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement AwardOutstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement Award
 
Android seminar report
Android seminar reportAndroid seminar report
Android seminar report
 
Cc4201519521
Cc4201519521Cc4201519521
Cc4201519521
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a Nutshell
 
Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01
 
Aptech Apps
Aptech Apps Aptech Apps
Aptech Apps
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Android - Workshop By Secure-Net Technologies
Android - Workshop By Secure-Net TechnologiesAndroid - Workshop By Secure-Net Technologies
Android - Workshop By Secure-Net Technologies
 
Android and its feature
Android and its featureAndroid and its feature
Android and its feature
 
Unit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-assUnit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-ass
 
Android development-tutorial
Android development-tutorialAndroid development-tutorial
Android development-tutorial
 
What is Android
What is Android What is Android
What is Android
 
Android Basic- CMC
Android Basic- CMCAndroid Basic- CMC
Android Basic- CMC
 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App Development
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android interview questions and answers
Android interview questions and answersAndroid interview questions and answers
Android interview questions and answers
 
Mobile Android and Network
Mobile Android and NetworkMobile Android and Network
Mobile Android and Network
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 

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
 
লেকচার ১ (ক)- শুরুর আগে:
লেকচার ১ (ক)- শুরুর আগে:লেকচার ১ (ক)- শুরুর আগে:
লেকচার ১ (ক)- শুরুর আগে:Ahsanul 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 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
 
Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)Ahsanul Karim
 
Android before getting started
Android before getting startedAndroid before getting started
Android before getting startedAhsanul Karim
 
Introduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedIntroduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedAhsanul Karim
 

More from Ahsanul Karim (11)

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 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
 
Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)
 
AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
Android before getting started
Android before getting startedAndroid before getting started
Android before getting started
 
Introduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedIntroduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting Started
 
Client-Server
Client-ServerClient-Server
Client-Server
 

Recently uploaded

Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxleah joy valeriano
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptshraddhaparab530
 

Recently uploaded (20)

Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.ppt
 

Lecture 2(b) Android Internals A Quick Overview

  • 1. Android Application Development Lecture 2(B): Android Internals: A Quick Overview 1. What is Android 2. The Android Stack 3. Android SDK 4. Features of Android SDK 5. Application Build Process 6. How Apps Run Ahsanul Karim karim.ahsanul@gmail.com http://droidtraining.wordpress.com
  • 2. Android Internals: Overview 1. What is Android 2. The Android Stack 3. Android SDK 4. Features of Android SDK 5. Application Build Process 6. How Apps Run We'll Discuss...
  • 3. Android Internals: Overview What is Android... What is Android? An Open Platform for Mobile Applications Development The first truly open and comprehensive platform for mobile devices with all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation - Andy Rubin A Software Stack for devices including mobiles, tablets and televisions with: 1. Operating System 2. Middleware 3. Key Applications
  • 5. Android Internals: Overview The Stack: Linux Kernel Android runs on Linux Kernel. Kernel provides: 1. Hardware Abstraction 2. Memory Management 3. Process Management 4. Networking Users never see this. [adb shell commands opens Linux.. will see it later...] The Android Stack [1]
  • 6. Android Internals: Overview The Stack: Native Libraries 1. Bionic, a fast and small GPLbased libc library 2. Surface Manager, window manager [off-screen buffering] 3. 2D+3D Graphics OpenGL 4. Media Codecs, offers support for audio/video codecs 5. SQLite Database Library 6. WebKit Library for better HTML rendering The Android Stack [2]
  • 7. Android Internals: Overview The Stack: Android Runtime Dalvik VM 1. Optimized 2. Small Memory Footprints 3. Register based Architecture 4. Security Model We'll discuss application build process later in this session The Android Stack [3]
  • 8. Android Internals: Overview The Stack: Application Framework 1. Activity Manager controls the lifecycle of the application 2. Resource Manager manages everything that is not the code 3. Location Manager figures out the location of the phone [GPS, GSM, WiFi] 4. Notification Manager for events such as arriving messages, appointments etc. The Android Stack [4]
  • 9. Android Internals: Overview The Stack: Applications Shipped Apps: Example: Email client, SMS program, Calendar, Maps, Browser, Contacts etc. Third Party Apps: This is where we are The Android Stack [5]
  • 11. Android Internals: Overview Android SDK [2] Includes everything required to Develop, Test & Debug Android APIs API Libraries provide developers access to the Android stack. Same libraries are used by Google for shipped application Development Tools Tools that are used to build applications from source files to executables. [dx, aapt etc] Emulator + AVD Manager Emulator running in ADVs to simulate device hardware configuration lets developers test applications Documentation Reference documentation and developer guide Sample Code Sample application source code for different features and API libraries Online Support http://developer.android.com + a vibrant developer community
  • 12. Android Internals: Overview SDK Features [1] Features/APIs Connectivity + Telephony GSM, EDGE, 3G, 4G and LTE Data Transfer+Calls and SMS Location API 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, compass, barometer etc. Bluetooth & NFC Peer to peer communication Wi-Fi Wi-Fi hardware access Storage SQLite Database
  • 13. Android Internals: Overview SDK Features [2] Features/APIs Shared Data Stores Shared Data Stores, APIs fr contacts, Social Networks, Calendar and Multimedia Background Services Support for Background Services and Processes MAP Controls Full support for map integration+controls Widgets Home-screen Widgets and Live Wallpaper WebKit Integrated HTML5 WebKit based browser OpenGL Mobile optimized hardware-accelerated 2D and 3D graphics support Localization Localization through dynamic resource framework Reuse Components Framework encourages reuse of application components
  • 15. Android Internals: Overview Build Process [2] Android Runtime .class file .class file .class file Manifest dx Tool .dex file Resources aapt .apk App Package
  • 16. Android Internals: Overview How Apps Run [1] The .apk file is installed on a device, and lives in its own security sandbox 1. Android OS- a multi-user Linux system in which each application is a different user. 2. System assigns each app a unique Linux user ID. The system sets permissions for all the files in an application so that only the user ID assigned to that application can access them. 3. Each process has its own VM, so app's code runs in isolation from other apps. 4. By default, every application runs in its own Linux process. Android starts the process when any of the application's components need to be executed, then shuts down the process when it's no longer needed/when the system must recover memory for other applications. In this way, the Android system implements the principle of least privilege.
  • 17. Android Internals: Overview How Apps Run [2] The .apk file is installed on a device, and lives in its own security sandbox Linux Kernel Linux Process Dalvik Virtual Machine Android Application
  • 18. Android Internals: Overview Questions... At the end of the day, the questions we ask of ourselves determine the type of people that we will become. -Leo Babauta