SlideShare a Scribd company logo
2
Most read
4
Most read
6
Most read
Mobile & Embedded Computing Lab
An deep dive into
Android Open Source Project
Siji Sunny
Director, MELabs
siji@melabs.in
Mobile : +91 9820896398
www.melabs.in
www.melabs.in
History
● October 2003 - Android, Inc founded in California by Andy
Rubin, Rich Miner, Nick Sears and Chris White.
● The company's were to develop an advanced operating
system for digital cameras
● August 17, 2005 - Google acquired Android Inc.
● the team led by Rubin developed a mobile device platform
powered by the Linux kernel.
● October 22, 2008 - First Android device launched in the
market.
Ref: Wikipedia
History
www.melabs.in
● Source code available for download-Contains
- Kernel
- Native Libraries
- Android runtime
- Application Framework
● License -Android Open Source Project is the Apache
Software License, Version 2.0 (For userspace).
● Android originated by a group of companies - Open
Handset Alliance, led by Google.
● Freedom to implement your own device ?
- Google Apps are not open-source
- Vendor depended firmware/drivers
Concept- AOSP
Android Open-Source Project
www.melabs.in
www.melabs.in
Architecture
Applications & Framework
Binder IPC
Linux Kernel
Hardware Abstraction Layer
Media Player
Services
Camera Service
Other Services
Window manager
Activity Manager
Notification
Manager
Other Services
System ServerMedia Server
Ref :http://s.android.com/devices/index.html
www.melabs.in
www.melabs.in
Binder-IPC
●Driver to facilitate inter-process communication (IPC)
●Allows high level framework APIs to interact with Android's
system services
●At the application framework level, all of this communication
is hidden from the developer
●High performance through shared memory
www.melabs.in
HAL
●User space C/C++ library layer
●Defines the interface that Android requires hardware
“drivers” to implement
●Separates the Android platform logic from the hardware
interface
Graphics Audio Camera Bluetooth
HARDWARE ABSTRATION LAYER
www.melabs.in
Native Libraries
●Bionic Libc
●Function Libraries (For standard calls)
●Native Servers (for UI/Video/Audios)
●Hardware Abstraction Libraries
WebkitMedia Framework Sqlite Bionic Libc
OpenGL|ES Audio Manager FreeType SSL
LIBRARIES
www.melabs.in
What is Bionic
●Custom libc implementation, optimized for embedded
use.
Why build a custom libc library?
●License: BSD License (Objective was to keep GPL out of
user-space)
●Size: will load in each process, so it needs to be small
●Fast: limited CPU power means we need to be fast
●Small size and fast code paths
●Very fast and small custom pthread implementation
www.melabs.in
Bionic -Disadvantage
●Doesn't support certain POSIX features
●Not compatible with Gnu Libc (glibc)
●All native code must be compiled against bionic
www.melabs.in
Dalvik Vm
● The software that runs the apps on Android devices
● It's fast, even on weak CPUs
● it will run on systems with little memory
● it will run in an energy-efficient way
● Provides application portability and runtime consistency
● Runs optimized file format (.dex) and Dalvik bytecode
● Java .class / .jar files converted to .dex at build time
Compiling & packaging
.java files
source code
.class file .dex file .apk file
Java compiler
javac
Dex compiler
(dx)
Packaging
(aapt)
www.melabs.in
www.melabs.in
Android Runtime
● Bootloader
● Kernel
● Init
● Android runtime Dalvik/Zygote
● System Server
● Activity Manager
● Launcher (Home)
www.me-labs.com
Zygote Service
(Started at boot)
Zygote Dalvik VM
Process 1
Shared Memory
VM 1
Application 1 Process 2
VM 2
Application 2
Process 3
VM 3
Application 3
www.melabs.in
Application Framework
www.melabs.in
Core Platform Services
● Services that are essential to the Android platform
● Behind the scenes - applications typically donʼt
access them directly
www.melabs.in
Core Platform Services
●Activity Manager
●Package Manager
●Window Manager
●Resource Manager
●Content Providers
●View System
www.melabs.in
Hardware Services
●Telephony Service
●Location Service
●Bluetooth Service
●WiFi Service
●USB Service
●Sensor Service
Twitter : siji_sunny
Gtalk : sijisunny
siji@melabs.in
sijisunny@gmail.com
Thank You
www.melabs.in

More Related Content

PDF
Deep Dive into the AOSP
PDF
Android's HIDL: Treble in the HAL
ODP
Q4.11: Porting Android to new Platforms
PDF
Embedded Android : System Development - Part I
PDF
Embedded Android Workshop with Pie
PDF
Building aosp
PDF
Android Boot Time Optimization
PDF
Android device driver structure introduction
Deep Dive into the AOSP
Android's HIDL: Treble in the HAL
Q4.11: Porting Android to new Platforms
Embedded Android : System Development - Part I
Embedded Android Workshop with Pie
Building aosp
Android Boot Time Optimization
Android device driver structure introduction

What's hot (20)

PDF
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
PDF
Embedded Android : System Development - Part II (HAL)
PPT
Learning AOSP - Android Linux Device Driver
PDF
Explore Android Internals
PDF
Booting Android: bootloaders, fastboot and boot images
PPT
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
PDF
Android Storage - Vold
PDF
Embedded Android : System Development - Part II (Linux device drivers)
PPTX
Android AIDL Concept
PDF
Embedded Linux BSP Training (Intro)
PPTX
Basic android-ppt
PPT
Android booting sequece and setup and debugging
PPT
Learning AOSP - Android Booting Process
PDF
Android OS Porting: Introduction
PPTX
Android Booting Sequence
PDF
Android Automotive
PPTX
Binder: Android IPC
PDF
Android Binder IPC for Linux
PDF
Android Things : Building Embedded Devices
PDF
Embedded Android : System Development - Part IV
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Embedded Android : System Development - Part II (HAL)
Learning AOSP - Android Linux Device Driver
Explore Android Internals
Booting Android: bootloaders, fastboot and boot images
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Android Storage - Vold
Embedded Android : System Development - Part II (Linux device drivers)
Android AIDL Concept
Embedded Linux BSP Training (Intro)
Basic android-ppt
Android booting sequece and setup and debugging
Learning AOSP - Android Booting Process
Android OS Porting: Introduction
Android Booting Sequence
Android Automotive
Binder: Android IPC
Android Binder IPC for Linux
Android Things : Building Embedded Devices
Embedded Android : System Development - Part IV
Ad

Similar to A deep dive into Android OpenSource Project(AOSP) (20)

PPT
My androidpresentation
PPTX
Android - Application Framework
PDF
Android report.
PPT
Enhancing and modifying_the_core_android_os
PDF
Android System Developement
DOC
document
PPT
Chapter 1 Introduction to android.ppt pl
PPTX
Android Fundamentals, Architecture and Versions
PPT
Android General information
ODP
Enhancing and modifying_the_core_android_os
PDF
Introduction to android
PPTX
android
PDF
Is Android the New Embedded Linux? at AnDevCon V
PDF
Is Android the New Embedded Linux? at AnDevCon VI
PDF
Modern IoT and Embedded Linux Deployment - Berlin
PPT
Android OS
PDF
Introduction to android
PDF
ABS 2014 - The Growth of Android in Embedded Systems
PPTX
Android ppt
PPTX
Android Operating System
My androidpresentation
Android - Application Framework
Android report.
Enhancing and modifying_the_core_android_os
Android System Developement
document
Chapter 1 Introduction to android.ppt pl
Android Fundamentals, Architecture and Versions
Android General information
Enhancing and modifying_the_core_android_os
Introduction to android
android
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VI
Modern IoT and Embedded Linux Deployment - Berlin
Android OS
Introduction to android
ABS 2014 - The Growth of Android in Embedded Systems
Android ppt
Android Operating System
Ad

More from Siji Sunny (10)

PDF
Universal Configuration Interface
PDF
Arduino programming
PDF
OpenSource IoT Middleware Frameworks
PDF
Vedic Sanskrit-on the way of Digitization
PDF
Indian Language App.Development Framework for Android
PDF
Unified Text Layout Engine for FOSS Systems -Paper
PDF
Unified Text Layout Engine for FOSS Systems
PDF
Debian on ARM - Gnunify2015
PDF
Linux kernel
PDF
OpenSource Hardware -Debian Way
Universal Configuration Interface
Arduino programming
OpenSource IoT Middleware Frameworks
Vedic Sanskrit-on the way of Digitization
Indian Language App.Development Framework for Android
Unified Text Layout Engine for FOSS Systems -Paper
Unified Text Layout Engine for FOSS Systems
Debian on ARM - Gnunify2015
Linux kernel
OpenSource Hardware -Debian Way

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Empathic Computing: Creating Shared Understanding
PPTX
A Presentation on Artificial Intelligence
PDF
Electronic commerce courselecture one. Pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
“AI and Expert System Decision Support & Business Intelligence Systems”
Diabetes mellitus diagnosis method based random forest with bat algorithm
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Empathic Computing: Creating Shared Understanding
A Presentation on Artificial Intelligence
Electronic commerce courselecture one. Pdf
Understanding_Digital_Forensics_Presentation.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Per capita expenditure prediction using model stacking based on satellite ima...

A deep dive into Android OpenSource Project(AOSP)

  • 1. Mobile & Embedded Computing Lab An deep dive into Android Open Source Project Siji Sunny Director, MELabs siji@melabs.in Mobile : +91 9820896398 www.melabs.in
  • 2. www.melabs.in History ● October 2003 - Android, Inc founded in California by Andy Rubin, Rich Miner, Nick Sears and Chris White. ● The company's were to develop an advanced operating system for digital cameras ● August 17, 2005 - Google acquired Android Inc. ● the team led by Rubin developed a mobile device platform powered by the Linux kernel. ● October 22, 2008 - First Android device launched in the market. Ref: Wikipedia
  • 4. ● Source code available for download-Contains - Kernel - Native Libraries - Android runtime - Application Framework ● License -Android Open Source Project is the Apache Software License, Version 2.0 (For userspace). ● Android originated by a group of companies - Open Handset Alliance, led by Google. ● Freedom to implement your own device ? - Google Apps are not open-source - Vendor depended firmware/drivers Concept- AOSP Android Open-Source Project www.melabs.in
  • 6. Applications & Framework Binder IPC Linux Kernel Hardware Abstraction Layer Media Player Services Camera Service Other Services Window manager Activity Manager Notification Manager Other Services System ServerMedia Server Ref :http://s.android.com/devices/index.html www.melabs.in
  • 7. www.melabs.in Binder-IPC ●Driver to facilitate inter-process communication (IPC) ●Allows high level framework APIs to interact with Android's system services ●At the application framework level, all of this communication is hidden from the developer ●High performance through shared memory
  • 8. www.melabs.in HAL ●User space C/C++ library layer ●Defines the interface that Android requires hardware “drivers” to implement ●Separates the Android platform logic from the hardware interface Graphics Audio Camera Bluetooth HARDWARE ABSTRATION LAYER
  • 9. www.melabs.in Native Libraries ●Bionic Libc ●Function Libraries (For standard calls) ●Native Servers (for UI/Video/Audios) ●Hardware Abstraction Libraries WebkitMedia Framework Sqlite Bionic Libc OpenGL|ES Audio Manager FreeType SSL LIBRARIES
  • 10. www.melabs.in What is Bionic ●Custom libc implementation, optimized for embedded use. Why build a custom libc library? ●License: BSD License (Objective was to keep GPL out of user-space) ●Size: will load in each process, so it needs to be small ●Fast: limited CPU power means we need to be fast ●Small size and fast code paths ●Very fast and small custom pthread implementation
  • 11. www.melabs.in Bionic -Disadvantage ●Doesn't support certain POSIX features ●Not compatible with Gnu Libc (glibc) ●All native code must be compiled against bionic
  • 12. www.melabs.in Dalvik Vm ● The software that runs the apps on Android devices ● It's fast, even on weak CPUs ● it will run on systems with little memory ● it will run in an energy-efficient way ● Provides application portability and runtime consistency ● Runs optimized file format (.dex) and Dalvik bytecode ● Java .class / .jar files converted to .dex at build time
  • 13. Compiling & packaging .java files source code .class file .dex file .apk file Java compiler javac Dex compiler (dx) Packaging (aapt) www.melabs.in
  • 14. www.melabs.in Android Runtime ● Bootloader ● Kernel ● Init ● Android runtime Dalvik/Zygote ● System Server ● Activity Manager ● Launcher (Home)
  • 15. www.me-labs.com Zygote Service (Started at boot) Zygote Dalvik VM Process 1 Shared Memory VM 1 Application 1 Process 2 VM 2 Application 2 Process 3 VM 3 Application 3
  • 17. www.melabs.in Core Platform Services ● Services that are essential to the Android platform ● Behind the scenes - applications typically donʼt access them directly
  • 18. www.melabs.in Core Platform Services ●Activity Manager ●Package Manager ●Window Manager ●Resource Manager ●Content Providers ●View System
  • 19. www.melabs.in Hardware Services ●Telephony Service ●Location Service ●Bluetooth Service ●WiFi Service ●USB Service ●Sensor Service
  • 20. Twitter : siji_sunny Gtalk : sijisunny siji@melabs.in sijisunny@gmail.com Thank You www.melabs.in