SlideShare a Scribd company logo

An Introduction To Android

This document provides an overview of the Android mobile platform architecture. It describes that Android is based on the Linux kernel with additional enhancements for power management, inter-process communication, and more. It also discusses the Dalvik virtual machine, core libraries, and hardware abstraction layer. Finally, it covers aspects of application development including setting up the manifest, laying out UI with XML, and debugging apps.

1 of 62
Download to read offline
An overview of the
Android Mobile Platform
    Brian Gupta & Nathan Freitas
Credits
• Google Android team
• Patrick Brady (Google) IO http://
  sites.google.com/site/io/anatomy--
  physiology-of-an-android
• Jay Freeman (Saurik) - Debian port
• #android
 • JesusFreke /Disconnect
What is Android?
Internal Architecture
The Linux Kernel in
       Android
• Android is based on the Linux kernel
• Android is not Linux
• No native windowing system
• No glibc
• Does not include full set of standard linux
  utilities
• Kernel source at http://git.android.com
Why Linux kernel for
    Android ?
• Great memory and process management
• Great permissions based security model
• Proven driver model
• Support for shared libraries
• It’s already open source

Recommended

How to reverse engineer Android applications
How to reverse engineer Android applicationsHow to reverse engineer Android applications
How to reverse engineer Android applicationshubx
 
Build and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes worldBuild and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes worldJorge Morales
 
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey GordeychikCODE BLUE
 
What should you know about Net Core?
What should you know about Net Core?What should you know about Net Core?
What should you know about Net Core?Damir Dobric
 
OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...
OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...
OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...Digicomp Academy AG
 

More Related Content

What's hot

Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Daniel Oh
 
Dockers zero to hero - (medium version)
Dockers zero to hero - (medium version)Dockers zero to hero - (medium version)
Dockers zero to hero - (medium version)Nicolas De Loof
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017MarcinStachniuk
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Clark Everetts
 
Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Clark Everetts
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDBChris Simmonds
 
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingFaster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingKohei Tokunaga
 
Reverse engineering android apps
Reverse engineering android appsReverse engineering android apps
Reverse engineering android appsPranay Airan
 
Os Koziarsky
Os KoziarskyOs Koziarsky
Os Koziarskyoscon2007
 
DocuOps & Asciidoctor in a JVM World
DocuOps & Asciidoctor in a JVM WorldDocuOps & Asciidoctor in a JVM World
DocuOps & Asciidoctor in a JVM WorldSchalk Cronjé
 
Introduction of Android Architecture
Introduction of Android ArchitectureIntroduction of Android Architecture
Introduction of Android ArchitectureBin Yang
 
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...Daniel Oh
 
Android reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skypeAndroid reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skypeMário Almeida
 
[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container SecurityDaniel Oh
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
 
How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsBo-Yi Wu
 
DVCS in big corporation
DVCS in big corporationDVCS in big corporation
DVCS in big corporationdchaffiol
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 

What's hot (20)

Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
 
Dockers zero to hero - (medium version)
Dockers zero to hero - (medium version)Dockers zero to hero - (medium version)
Dockers zero to hero - (medium version)
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
 
Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017
 
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDKHow to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDB
 
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingFaster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
 
Reverse engineering android apps
Reverse engineering android appsReverse engineering android apps
Reverse engineering android apps
 
Os Koziarsky
Os KoziarskyOs Koziarsky
Os Koziarsky
 
DocuOps & Asciidoctor in a JVM World
DocuOps & Asciidoctor in a JVM WorldDocuOps & Asciidoctor in a JVM World
DocuOps & Asciidoctor in a JVM World
 
Introduction of Android Architecture
Introduction of Android ArchitectureIntroduction of Android Architecture
Introduction of Android Architecture
 
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
 
How to Build & Use OpenCL on Android Studio
How to Build & Use OpenCL on Android StudioHow to Build & Use OpenCL on Android Studio
How to Build & Use OpenCL on Android Studio
 
Android reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skypeAndroid reverse engineering - Analyzing skype
Android reverse engineering - Analyzing skype
 
[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjs
 
DVCS in big corporation
DVCS in big corporationDVCS in big corporation
DVCS in big corporation
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 

Viewers also liked

Android 电源管理 power_management_(英文版)
Android 电源管理 power_management_(英文版)Android 电源管理 power_management_(英文版)
Android 电源管理 power_management_(英文版)borderj
 
Android System Design And Power Management
Android System Design And Power ManagementAndroid System Design And Power Management
Android System Design And Power ManagementNilay Mishra
 
Android power management, current and future trends
Android power management, current and future trendsAndroid power management, current and future trends
Android power management, current and future trendsSoumya Kanti Datta
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limitsDroidcon Berlin
 
How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performancerickschwar
 
Android Platform Overview - Azercell Barama
Android Platform Overview - Azercell BaramaAndroid Platform Overview - Azercell Barama
Android Platform Overview - Azercell BaramaRamin Orujov
 
Android power management
Android power managementAndroid power management
Android power managementJerrin George
 
Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...
Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...
Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...Egor Elizarov
 
Android Accessibility - The missing manual
Android Accessibility - The missing manualAndroid Accessibility - The missing manual
Android Accessibility - The missing manualTed Drake
 
Seminar android presentation
Seminar android presentationSeminar android presentation
Seminar android presentationShruti Maheshwari
 
Android seminar report
Android seminar reportAndroid seminar report
Android seminar reportdgpune
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in AndroidOpersys inc.
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentationconnectshilpa
 

Viewers also liked (20)

Android 电源管理 power_management_(英文版)
Android 电源管理 power_management_(英文版)Android 电源管理 power_management_(英文版)
Android 电源管理 power_management_(英文版)
 
Android System Design And Power Management
Android System Design And Power ManagementAndroid System Design And Power Management
Android System Design And Power Management
 
Power management android
Power management androidPower management android
Power management android
 
Android power management, current and future trends
Android power management, current and future trendsAndroid power management, current and future trends
Android power management, current and future trends
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
 
How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performance
 
Android Platform Overview - Azercell Barama
Android Platform Overview - Azercell BaramaAndroid Platform Overview - Azercell Barama
Android Platform Overview - Azercell Barama
 
Android power management
Android power managementAndroid power management
Android power management
 
Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...
Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...
Android internals 09 - Sensors, Power Management, Input subsystem, Data stora...
 
Android Accessibility - The missing manual
Android Accessibility - The missing manualAndroid Accessibility - The missing manual
Android Accessibility - The missing manual
 
Seminar android presentation
Seminar android presentationSeminar android presentation
Seminar android presentation
 
Android seminar report
Android seminar reportAndroid seminar report
Android seminar report
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
Mobile operating systems
Mobile operating systemsMobile operating systems
Mobile operating systems
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Efficient Android Threading
Efficient Android ThreadingEfficient Android Threading
Efficient Android Threading
 
Power Management from Linux Kernel to Android
Power Management from Linux Kernel to AndroidPower Management from Linux Kernel to Android
Power Management from Linux Kernel to Android
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
 

Similar to An Introduction To Android

Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011pundiramit
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android DevelopmentHayi Nukman
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsLinaro
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvmdfages
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009sullis
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsPositive Hack Days
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Opersys inc.
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcampahkjsdcsadc
 
Android Overview
Android OverviewAndroid Overview
Android Overviewatomi
 
Lecture02web 140phpapp01
Lecture02web 140phpapp01Lecture02web 140phpapp01
Lecture02web 140phpapp01letuan9999
 
Android Internals and Toolchain
Android Internals and ToolchainAndroid Internals and Toolchain
Android Internals and ToolchainVladimir Kotov
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portlandsullis
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application FrameworkYong Heui Cho
 

Similar to An Introduction To Android (20)

Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android Development
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android Applications
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
 
Android
Android Android
Android
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Android
AndroidAndroid
Android
 
Lecture02web 140phpapp01
Lecture02web 140phpapp01Lecture02web 140phpapp01
Lecture02web 140phpapp01
 
Android Internals and Toolchain
Android Internals and ToolchainAndroid Internals and Toolchain
Android Internals and Toolchain
 
01 02 - introduction - adroid stack
01  02 - introduction - adroid stack01  02 - introduction - adroid stack
01 02 - introduction - adroid stack
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portland
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application Framework
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
Android : Deep dive into developing MobileApp using Android
Android : Deep dive into developing MobileApp using AndroidAndroid : Deep dive into developing MobileApp using Android
Android : Deep dive into developing MobileApp using Android
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 

Recently uploaded

HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...htrindia
 
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...Neo4j
 
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Product School
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanDatabarracks
 
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...DianaGray10
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfSafe Software
 
IT Nation Evolve event 2024 - Quarter 1
IT Nation Evolve event 2024  - Quarter 1IT Nation Evolve event 2024  - Quarter 1
IT Nation Evolve event 2024 - Quarter 1Inbay UK
 
AGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfAGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfRodneyThomas28
 
Roundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfRoundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfMostafa Higazy
 
SKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesSKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesNeo4j
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Product School
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxInfosec
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriGeospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriSafe Software
 
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoRevolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoProduct School
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIEDanBrown980551
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)François
 
AI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficientAI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficientKari Kakkonen
 
Artificial Intelligence, Design, and More-than-Human Justice
Artificial Intelligence, Design, and More-than-Human JusticeArtificial Intelligence, Design, and More-than-Human Justice
Artificial Intelligence, Design, and More-than-Human JusticeJosh Gellers
 
Q4 2023 Quarterly Investor Presentation - FINAL.pdf
Q4 2023 Quarterly Investor Presentation - FINAL.pdfQ4 2023 Quarterly Investor Presentation - FINAL.pdf
Q4 2023 Quarterly Investor Presentation - FINAL.pdfTejal81
 

Recently uploaded (20)

HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
 
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
 
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response Plan
 
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
 
IT Nation Evolve event 2024 - Quarter 1
IT Nation Evolve event 2024  - Quarter 1IT Nation Evolve event 2024  - Quarter 1
IT Nation Evolve event 2024 - Quarter 1
 
AGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfAGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdf
 
Roundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfRoundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdf
 
SKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesSKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologies
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptx
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriGeospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & Esri
 
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoRevolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIE
 
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
 
AI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficientAI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficient
 
Artificial Intelligence, Design, and More-than-Human Justice
Artificial Intelligence, Design, and More-than-Human JusticeArtificial Intelligence, Design, and More-than-Human Justice
Artificial Intelligence, Design, and More-than-Human Justice
 
Q4 2023 Quarterly Investor Presentation - FINAL.pdf
Q4 2023 Quarterly Investor Presentation - FINAL.pdfQ4 2023 Quarterly Investor Presentation - FINAL.pdf
Q4 2023 Quarterly Investor Presentation - FINAL.pdf
 

An Introduction To Android

  • 1. An overview of the Android Mobile Platform Brian Gupta & Nathan Freitas
  • 2. Credits • Google Android team • Patrick Brady (Google) IO http:// sites.google.com/site/io/anatomy-- physiology-of-an-android • Jay Freeman (Saurik) - Debian port • #android • JesusFreke /Disconnect
  • 5. The Linux Kernel in Android • Android is based on the Linux kernel • Android is not Linux • No native windowing system • No glibc • Does not include full set of standard linux utilities • Kernel source at http://git.android.com
  • 6. Why Linux kernel for Android ? • Great memory and process management • Great permissions based security model • Proven driver model • Support for shared libraries • It’s already open source
  • 7. Kernel Enhancements • Alarm • Ashmem • Binder • Power Management • Low memory killer • Kernel debugger • Logger
  • 8. Kernel Enhancements: Binder • Driver to facilitate inter-process communication • High performance through shared memory • Per-process thread pool for processing requests • Reference counting and mapping of object references across processes • Synchronous calls between processes.
  • 10. Kernel Enhancements: Power Management • Built on top of standard Linux power management • More aggressive power manager • Components make requests to keep power via “wake locks” • Supports different types of wake locks • android.os.PowerManager
  • 11. Libraries • Bionic Libc - custom libc implementation • Function Libraries • Native Servers • Hardware Abstraction Libraries
  • 12. Libraries: Bionic Libc • Custom libc implementation optimized for embedded use • License BSD - Keeps GPL out of user space • Size: loads in each process so it needs to be small • Fast: limited CPU power (fast and small pthread implementation)
  • 13. Libraries: WebKit • Based on the open source WebKit browser • Renders pages in full (desktop) mode • Full CSS, JavaScript, DOM, Ajax support • Single-column and Adaptive view rendering • Really powerful
  • 14. Libraries: Media Framework • Based on PacketVideo OpenCORE platform • Supports standard audio, video and stills • Support for hardware/software codecs
  • 15. Libraries: SQLite • Light-weight transactional data store • Back end for most platform data storage
  • 16. Libraries: Flingers • Flingers are native servers that regulate all the heavy lifting for System I/O • Surface Flinger • Audio Flinger
  • 17. Hardware Abstraction Layer • user space C/C++ library layer • Standard interface that Android drivers need to implement • Separates Android platform logic from hardware interface • Plugabble : e.g. you can plug in OSS below
  • 18. Dalvik Virtual Machine • Android’s custom clean room implementation virtual machine • provides application portability • runs optimized file format (.dex) • Java .class/.jar files converted into .dex at build time • Supports multiple virtual machine processes per VM
  • 19. Core Libraries: Overview • Data Structures • Utilities • File access • Network Access • Graphics • http://developer.android.com/reference/packages.html
  • 20. Core platform services • Activity manager • Package manager • Window manager • Resource manager • Content manager
  • 21. Hardware Services • Telephony • Location • Bluetooth • WiFi • USB • Sensor(s)
  • 23. How Android boots: Init • Similar to linux based systems • At startup the boot loader loads the linux kernel and starts the init process
  • 24. Runtime Walkthrough • USB Daemon (usbd) • Android debug bridge • Debugger Daemon • Radio interface layer daemon
  • 25. Runtime Walkthrough (2) • Initializes service manager • Registers service manager as default context manager for Binder service
  • 26. Init and Zygote • Init process starts with the zygote process • a nascent process which strats the dalvik VM instance • loads classes and listens on socket for request to spawn VM’s • Forks on request to create VM instances for managed processes • Copy-on-write to maximize re-use and minimize footprint
  • 27. Layer Interaction • App -> Runtime Service -> Lib • App -> Runtime Service -> Native Service -> Lib • App -> Runtime Service -> Native Daemon -> Lib
  • 29. Open Source Licenses • GPL - Linux Kernel and modules, bluez • BSD - Bionic • Apache - almost everything else
  • 30. Closed source Components • HTC RIL (radio interface) library and data files (this is glue between the telephony layer in android and the AT/QMI control channels provided via GPL kernel drivers) • libhgl.so - Qualcomm/ati opengl ES library • libqcamera.so - Qualcomm camera library • akmd - software to process and adjust compass/accelerometer events • Qualcomm h264 codec frontend (does some processing the dsp cannot do) • frontend HW accel codec • quot;Google appsquot; - Maps, Gmail, etc.
  • 31. Project Status • Public vs private branches • Repo, git and Gerrit • Cupcake - development branch • http://source.android.com/roadmap/cupcake
  • 32. Getting the source • http://source.android.com/download
  • 33. Setting up your machine • Android development can be done on • Ubuntu 32 bit (preferred) • Ubuntu AMD64 • MacOS X • http://source.android.com/download
  • 34. Setting up your machine (2) • Steps (at a glance) • Non Android specific prereqs: • Install git and GPG for your platform • JDK 5.0, update 12 or higher. • The following packages: flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl. • You might also want Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc. • libreadline • Install repo script • Create a working dir • repo init, repo sync • Build the code - quot;makequot;
  • 35. How to get involved
  • 37. HTC Dream G1 vs ADP1
  • 39. Ports • Nokia Internet Tablets • Sharp Zaurus • HTC Models • Kaiser,Vogue, Polaris, Titan, Raphael & Diamond • OpenMoko FreeRunner
  • 41. The Basics with (or w/o) Android 1.1 SDK r1 Eclipse IDE http://developer.android.com
  • 43. All the Tools Fit.... Android Emulator: A virtual mobile device that runs on your computer.You use the emulator to design, debug, and test your applications in an actual Android run-time environment. Android Development Tools Plugin (for the Eclipse IDE): The ADT plugin adds powerful extensions to the Eclipse integrated environment, making creating and debugging your Android applications easier and faster. If you use Eclipse, the ADT plugin gives you an incredible boost in developing Android applications. Hierarchy Viewer: The Hierarchy Viewer tool allows you to debug and optimize your user interface. It provides a visual representation of your layout's hierarchy of Views and a magnified inspector of the current display with a pixel grid, so you can get your layout just right. Draw 9-patch: The Draw 9-patch tool allows you to easily create a NinePatch graphic using a WYSIWYG editor. It also previews stretched versions of the image, and highlights the area in which content is allowed. Dalvik Debug Monitor Service (ddms): Integrated with Dalvik, the Android platform's custom VM, this tool lets you manage processes on an emulator or device and assists in debugging.You can use it to kill processes, select a specific process to debug, generate trace data, view heap and thread information, take screenshots of the emulator or device, and more. Android Debug Bridge (adb): The adb tool lets you install your application's .apk files on an emulator or device and access the emulator or device from a command line. You can also use it to link a standard debugger to application code running on an Android emulator or device. Android Asset Packaging Tool (aapt): The aapt tool lets you create .apk files containing the binaries and resources of Android applications. mksdcard: Helps you create a disk image that you can use with the emulator, to simulate the presence of an external storage card (such as an SD card).
  • 44. What’s in an App? Libraries Other Service Default Other Activities Other Intents Activity Activities Activities Content Providers Android Manifest Drawable Layouts Values Assets
  • 45. Setting up the Manifest <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <manifest xmlns:android=quot;http://schemas.android.com/apk/res/androidquot; package=quot;com.openideals.inaugreportquot; android:versionCode=quot;1quot; android:versionName=quot;1.0.0quot;> <uses-permission android:name=quot;android.permission.ACCESS_FINE_LOCATIONquot; /> <uses-permission android:name=quot;android.permission.ACCESS_COARSE_LOCATIONquot; /> <uses-permission android:name=quot;android.permission.INTERNETquot; /> <uses-permission android:name=quot;android.permission.READ_PHONE_STATEquot;/> <application android:icon=quot;@drawable/iconquot; android:label=quot;@string/app_namequot;> <activity android:name=quot;.InaugReportMainActivityquot; android:label=quot;@string/app_namequot;> <intent-filter> <action android:name=quot;android.intent.action.MAINquot; /> <category android:name=quot;android.intent.category.LAUNCHERquot; /> </intent-filter> </activity> <activity android:name=quot;com.openideals.android.geo.LocationFinderActivityquot; android:label=quot;@string/view_location_finderquot;/> <activity android:name=quot;.ReportFormActivityquot; android:label=quot;@string/view_report_formquot;/> <activity android:name=quot;com.openideals.android.ui.InternalWebViewquot; android:label=quot;@string/internal_web_viewquot; /> <activity android:name=quot;com.openideals.android.geo.GeoRSSMapViewquot; android:label=quot;@string/geo_map_viewquot; /> <uses-library android:name=quot;com.google.android.mapsquot; /> </application> </manifest>
  • 46. Config & Code Editing
  • 47. Laying it All Out <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <ScrollView xmlns:android=quot;http://schemas.android.com/apk/res/androidquot; android:id=quot;@+id/scrollReportFormquot; android:layout_width=quot;fill_parentquot; android:layout_height=quot;fill_parentquot; android:background=quot;@drawable/inaug_report_no_seal_quot;> <LinearLayout android:id=quot;@+id/layoutReportFormquot; android:label=quot;Text Reportquot; android:layout_width=quot;fill_parentquot; android:layout_height=quot;wrap_contentquot; android:orientation=quot;verticalquot; android:gravity=quot;topquot; android:padding=quot;6.0spquot;> <TextView android:id=quot;@+id/labelTitlequot; android:layout_width=quot;wrap_contentquot; android:layout_height=quot;wrap_contentquot; android:text=quot;Title:quot;/> <EditText android:id=quot;@+id/entryTitlequot; android:layout_width=quot;fill_parentquot; android:layout_height=quot;wrap_contentquot; android:background=quot;@android:drawable/editbox_backgroundquot; /> <TextView android:id=quot;@+id/labelReportquot; android:layout_width=quot;wrap_contentquot; android:layout_height=quot;wrap_contentquot; android:paddingTop=quot;10dpquot; android:text=quot;Your Report:quot;/>
  • 48. Activity: Do Something! /** Called when the activity is first created. */ @Override package com.openideals.inaugreport; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); import android.app.Activity; import android.app.ProgressDialog; setContentView(R.layout.reportform); import android.content.Intent; import android.location.Location; ((Button)findViewById(R.id.btnReportFormSubmit)).setOnClickListener(this); import android.os.Bundle; ((Button)findViewById(R.id.btnReportFormCancel)).setOnClickListener(this); import android.os.Handler; import android.util.Log; import android.view.View; } import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.Spinner; Toast.makeText(getBaseContext(), quot;There was import android.widget.TextView; a problem submitting your report. Wait a second, and then import android.widget.Toast; try again!quot;, Toast.LENGTH_LONG).show(); import com.openideals.android.geo.LocationFinderActivity; import com.openideals.android.ui.HorizontalSlider; import com.openideals.android.ui.HorizontalSlider.OnProgressChangeListener; private void showMain () } { Intent iMain = new Intent(this, LocationFinderActivity.class); startActivity(iMain); }
  • 51. OpenIntents.org Title Action Description Call android.intent.action.CALL Perform a call to someone specified by the data. Capture an image android.media.action.IMAGE_CAPTURE An application implementing this intent protocol allows the user to capture an image. Check for Update org.openintents.intents.CHECK_VERSION Preliminary protocol until Market improves update facitilities! Connect host org.theb.ssh.action.CONNECT_HOST Connect to a host. Create shortcut android.intent.action.CREATE_SHORTCUT Creates a shortcut on the main screen. Delete data android.intent.action.DELETE Delete the given data from its container. Dial a number android.intent.action.DIAL Dial a number as specified by the data. Edit data android.intent.action.EDIT Provide explicit editable access to the given data. Edit title com.android.notepad.action.EDIT_TITLE Edit the title of a content. Encode com.google.zxing.client.android.ENCODE Encode to barcode and display on screen. Environmental measurement com.borntotinker.intent.action.MEASURE An open ended intent to collect information from the android phone's surroundings. Flickr photo com.google.android.photostream.FLICKR_PHOTO Show a flickr photo. Flickr stream com.google.android.photostream.FLICKR_STREAM Display a Flickr stream. Get content android.intent.action.GET_CONTENT Allow the user to select a particular kind of data and return it. Insert data android.intent.action.INSERT Insert an empty item into the given container. List all applications android.intent.action.ALL_APPS List all available applications. Main android.intent.action.MAIN Start as a main entry point, does not expect to receive data. Pick data android.intent.action.PICK Pick an item from the data, returning what was selected. Pick directory org.openintents.action.PICK_DIRECTORY Pick a directory (folder) through a file manager. Pick file org.openintents.action.PICK_FILE Pick a file through a file manager. Record sound android.provider.MediaStore.RECORD_SOUND Start SoundRecorder application to record sound. Resolve unresolved intents org.openintents.intents.UNRESOLVED_INTENT Delegates the user to a selection of possible applications that can resolve the given intent. Ringtone picker android.intent.action.RINGTONE_PICKER Show a ringtone picker. Scan com.google.zxing.client.android.SCAN Scan a barcode. Search android.intent.action.SEARCH Perform a search. Search book contents com.google.zxing.client.android.SEARCH_BOOK_CONTENTSUse Google Book Search to search the contents of the book provided. Send a message to the given uri android.intent.action.SENDTO Send a message to someone specified by the data. Send data to someone android.intent.action.SEND Deliver some data to someone else. Send Twitter Message com.twidroid.SendTweet Send a Twitter/Identi.ca Message thru Twidroid. Set wallpaper android.intent.action.SET_WALLPAPER Show settings for choosing wallpaper Share (through QR code) com.google.zxing.client.android.SHARE Display an item as QR code to scan with a phone. Show about dialog org.openintents.action.SHOW_ABOUT_DIALOG Show an about dialog to display information about your application. Show radar com.google.android.radar.SHOW_RADAR Display a radar like view centered around the current position and mark the given location Tag data org.openintents.action.TAG Add a tag to the given data. View data android.intent.action.VIEW Display the data to the user. Web search android.intent.action.WEB_SEARCH Perform a web search.
  • 54. PhoneGap “webOS” • PhoneGap is a development tool that allows web developers to take advantage of the core features in the iPhone, Android, and Blackberry SDK using JavaScript.
  • 55. Application Development Nathan Freitas nathan@olivercoady.com blog: openideals.com consulting: olivercoady.com
  • 57. Getting root By getting root you can update the bootloader and install custom firmware
  • 58. Why custom firmware? • • Include bug fixes from git add useful kernel modules source (ext2, cifs, ++) unionfs • • Phone tethering hack Phone backup utility • • Multi-touch hack Change splash screen • • Install Debian userspace Custom compiled firmware • busybox + lots of commands • added a modified /system/ etc/security/cacerts.bks • added a /system/etc/ file, which contains resolv.conf file with the 4.2.2 additional certificates for family of DNS servers, to cacert.org (courtesy of allow busybox's ping, wget, Disconnect) etc. to resolve host names
  • 59. Getting and installing custom firmware Look for the latest JesusFreke custom firmware
  • 60. Building custom firmware • Jesus Freke's instructions here: • http://forum.xda-developers.com/ showthread.php?t=466174 • Jesus Freke's latest build environment here: • http://jf.andblogs.net/2009/02/11/jfv143/
  • 61. Installing Debian on the G1 Jay Freeman's (Saurik) instructions: http://www.saurikurik.com/id/10
  • 62. Resources • • FAQ http://tinyurl.com/ Android New York City: androidfaq #androidnyc@irc.freenode .net • IRC • Mailing lists Text • General Android: • #android@irc.freenode.net http://code.google.com/ android/groups.html • Android application • development: #android- AndroidNYC Meetup dev@irc.freenode.net http://www.meetup.com/ androidnyc • Android hacking: • #android@irc.saurik.net My email: Brian.gupta@brandorr.com