SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Why is Android the way it is ...




Navin Kabra
navin@punetech.com

    Navin Kabra

    Background:
    ▸ Computer Science
    ▸ B.Tech, IIT-Bombay
    ▸ Ph.D, Univ of Wisconsin-Madison, USA

    Currently
    ▸ CTO, BharatHealth.com
    ▸ Also founder of PuneTech

    Links:
    ▸ http://punetech.com
    ▸ http://punetech.com/navin
    ▸ http://smriti.com

    Twitter: @_navin, @punetech

    Email: navin@punetech.com

    Operating system
     −   Initially targeting mobile phones
     −   Now on more and more devices

    By: Open Handset Alliance
     −   Primarily Google
     −   Also: HTC, Motorola, Intel, T-mobile, TI,
         Samsung
     −   And: 47 others…

    Stack
     −   Linux Kernel
     −   Java programming language
     −   OpenGL graphics
     −   Android’s own app development
         framework
                                                     Photo Credit:Android Home by
                                                     Unnamed 102 (via wikipedia)

    Kernel
     −   Drivers: display, camera, bluetooth, flash memory, binder(IPC), usb, keypad, wifi,
         audio, power mgmt

    Libraries
     −   Surface, media, sqlite, opengl|es, freetype(fonts), webkit(browser), libc, ssl, sgl

    Java
     −   Dalvik Virtual Machine, Core java libraries

    Application Framework
     −   Window manager, Activities, Content Providers, View System, Notification Mgr,
         Package manager, Telephony manager, Resources, Location, Gtalk

    Applications
     −   Home, Contacts, Phone, Browser

    Re-design for mobile
    −   i.e. CPU and memory constrained systems

    Re-design for open-ness
    −   Everything is open source
    −   Open-ness friendly license

    Re-design for reuse
    −   Framework encourages mashups/interoperability

    Brand new Virtual Machine: Dalvik VM

    Optimized for low-memory requirements

    No JARs – use DEX files
     −   Regular DEX file smaller than compressed JAR

    No JIT yet
     −   but (so?) lots of native code

    Allow multiple VMs
     −   one per app
     −   better security

    Better use of OS kernel features
     −   Process isolation, memory mgmt, threading

    Use Apache license

    GPL scares off device manufacturers
    −   Android kernel = linux kernel = LGPL
    −   Not as scary

    Java wants centralized control (JCP)
    −   Another reason why no JVM
    −   And Java standard libraries missing


    Everything is replaceable/rewriteable
    −   Including contacts, sms, telephony…

    App development framework encourages mashups


    Activities

    Intents

    Content Providers

    Apps broken up into activites


    Each activity independently invokable


    Example - email activites:
     −   Show one email
     −   Show email list
     −   Create an email
     −   Pick an email recipient

    Share these across different apps

    Inter-app communication via “intents”


    Specify what you want
     −   Don’t specify how or who


    System picks who does it
     −   Other apps register with system
     −   Indicate which intents they’re interested in handling



    Loose coupling allows ease of replacement
     −   Intents = XML format

    Abstract, high-level API for storing/retreiving data


    Level of indirection between app & data storage


    Content provider chooses data storage mechanism
     −   File-system, database, cloud (internet)
     −   (By the way, SQLite is in-built)

    Java programming language used

    But not the Java Runtime
     −   No JVM
     −   No standard Java libraries
     −   No JCP (Java community process)
     −   No Java license
     −   No JARs (i.e. no byte-code compatibility)

    Linux Kernel

    No native windowing support
     −   i.e. no Xwindows/Xfree86/Xorg/GNOME/KDE

    No standard C library
     −   i.e. no glibc
     −   “Bionic” – customized, partial libc implementation
     −   Only 200k (half of glibc)
     −   Designed for low CPU devices
     −   Customized High performance pthread library

    No standard linux utilities
     −   Some are there, most are missing

    In addition to Java:
    −   C, C++, Python, Lua, Scala

    Supports GSM (not CDMA?)

    Touch, but not multi-touch (yet)

    Targeted Machine

    CPU: 250-500MHz

    Bus: 100MHz

    Data-cache: 16-32K

    Memory: 64MB
    −   Low-level startup takes up 24MB
    −   High-level startup takes up another 20MB
    −   System library takes up another 10MB
    −   Only 10MB available for apps

    Resources Alternatives by:

     −   MCC=mobile country code
     −   Language and region
     −   screen orientation: port, land, square
     −   screen pixel density: 92dpi, 108dpi,
     −   touchscreen type: notouch, stylus, finger
     −   keyboard: keysexposed, keyshidden, keyssoft
     −   primary input type: nokeys, qwerty, 12keys
     −   primary navigation method: nonav, dpad, trackball, wheel
     −   screen dimensions: 320x240, 640x480
     −   sdk version: v1 (1.0), v2 (1.1), v3(1.5)

Weitere ähnliche Inhalte

Was ist angesagt?

MOBILE OPERATING SYSTEM
MOBILE OPERATING SYSTEMMOBILE OPERATING SYSTEM
MOBILE OPERATING SYSTEMcool192
 
Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android pptTaha Malampatti
 
Android Operating System Presentation Slides in Simple
Android Operating System Presentation Slides in SimpleAndroid Operating System Presentation Slides in Simple
Android Operating System Presentation Slides in SimpleFacebook
 
Comparative Study On Mobile Operating Systems
  Comparative Study On Mobile Operating Systems   Comparative Study On Mobile Operating Systems
Comparative Study On Mobile Operating Systems Hardik Jain
 
Mobile Operating Systems
Mobile Operating Systems Mobile Operating Systems
Mobile Operating Systems Anant Lodha
 
Mobile Operating Systems
Mobile Operating SystemsMobile Operating Systems
Mobile Operating SystemsBhargav Radia
 
ANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEMANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEMpreeta sinha
 
Operating Systems in Mobile Phones
Operating Systems in Mobile PhonesOperating Systems in Mobile Phones
Operating Systems in Mobile PhonesSasukeJUchiha
 
Why Android Is The Most Popular Mobile Operating System In The World ?
Why Android Is The Most Popular Mobile Operating System In The World ?Why Android Is The Most Popular Mobile Operating System In The World ?
Why Android Is The Most Popular Mobile Operating System In The World ?David Stoffel
 
Mobile operating systems
Mobile operating systemsMobile operating systems
Mobile operating systemsSriram PV
 
Mobile operating system..
Mobile operating system..Mobile operating system..
Mobile operating system..Aashish Uppal
 
Seminar on mobile os
Seminar on mobile osSeminar on mobile os
Seminar on mobile osabani12
 

Was ist angesagt? (20)

MOBILE OPERATING SYSTEM
MOBILE OPERATING SYSTEMMOBILE OPERATING SYSTEM
MOBILE OPERATING SYSTEM
 
Mobile operating system
Mobile operating systemMobile operating system
Mobile operating system
 
Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android ppt
 
Android Operating System Presentation Slides in Simple
Android Operating System Presentation Slides in SimpleAndroid Operating System Presentation Slides in Simple
Android Operating System Presentation Slides in Simple
 
mobile Os
mobile Osmobile Os
mobile Os
 
Comparative Study On Mobile Operating Systems
  Comparative Study On Mobile Operating Systems   Comparative Study On Mobile Operating Systems
Comparative Study On Mobile Operating Systems
 
Mobile operating systems
Mobile operating systemsMobile operating systems
Mobile operating systems
 
Mobile Operating System
Mobile Operating SystemMobile Operating System
Mobile Operating System
 
EOS
EOSEOS
EOS
 
Mobile Operating Systems
Mobile Operating Systems Mobile Operating Systems
Mobile Operating Systems
 
Mobile operating system
Mobile operating systemMobile operating system
Mobile operating system
 
Mobile Operating Systems
Mobile Operating SystemsMobile Operating Systems
Mobile Operating Systems
 
Android vs window
Android vs windowAndroid vs window
Android vs window
 
ANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEMANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEM
 
Operating Systems in Mobile Phones
Operating Systems in Mobile PhonesOperating Systems in Mobile Phones
Operating Systems in Mobile Phones
 
Why Android Is The Most Popular Mobile Operating System In The World ?
Why Android Is The Most Popular Mobile Operating System In The World ?Why Android Is The Most Popular Mobile Operating System In The World ?
Why Android Is The Most Popular Mobile Operating System In The World ?
 
Android
AndroidAndroid
Android
 
Mobile operating systems
Mobile operating systemsMobile operating systems
Mobile operating systems
 
Mobile operating system..
Mobile operating system..Mobile operating system..
Mobile operating system..
 
Seminar on mobile os
Seminar on mobile osSeminar on mobile os
Seminar on mobile os
 

Ähnlich wie Why Android is designed the way it is

Why Android? Exploring the design desisions in Android
Why Android? Exploring the design desisions in AndroidWhy Android? Exploring the design desisions in Android
Why Android? Exploring the design desisions in AndroidNavin Kabra
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212Yoojoo Jang
 
jeevanreddy-nwplm
jeevanreddy-nwplmjeevanreddy-nwplm
jeevanreddy-nwplmjeevan b
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Benjamin Cabé
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsShashank Banerjea
 
J2ME mobile app development
J2ME mobile app developmentJ2ME mobile app development
J2ME mobile app developmentMuthu Kumar
 
Operating system Definition Structures
Operating  system Definition  StructuresOperating  system Definition  Structures
Operating system Definition Structuresanair23
 
Amruth_Kumar_Juturu_Resume
Amruth_Kumar_Juturu_ResumeAmruth_Kumar_Juturu_Resume
Amruth_Kumar_Juturu_ResumeAmruth Kumar
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016Vaidheswaran CS
 
20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_ChesnokovVladimir Chesnokov
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android DevelopmentHayi Nukman
 
A Taste of Java ME
A Taste of Java MEA Taste of Java ME
A Taste of Java MEwiradikusuma
 
Максим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overviewМаксим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overviewMinsk Linux User Group
 

Ähnlich wie Why Android is designed the way it is (20)

Why Android? Exploring the design desisions in Android
Why Android? Exploring the design desisions in AndroidWhy Android? Exploring the design desisions in Android
Why Android? Exploring the design desisions in Android
 
Android Introduction
Android IntroductionAndroid Introduction
Android Introduction
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
 
jeevanreddy-nwplm
jeevanreddy-nwplmjeevanreddy-nwplm
jeevanreddy-nwplm
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
 
Alvaro Denis Resume
Alvaro Denis ResumeAlvaro Denis Resume
Alvaro Denis Resume
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE Projects
 
Android
AndroidAndroid
Android
 
J2ME mobile app development
J2ME mobile app developmentJ2ME mobile app development
J2ME mobile app development
 
Operating system Definition Structures
Operating  system Definition  StructuresOperating  system Definition  Structures
Operating system Definition Structures
 
Amruth_Kumar_Juturu_Resume
Amruth_Kumar_Juturu_ResumeAmruth_Kumar_Juturu_Resume
Amruth_Kumar_Juturu_Resume
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016
 
20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov
 
Operating system
Operating systemOperating system
Operating system
 
Introduction
IntroductionIntroduction
Introduction
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android Development
 
A Taste of Java ME
A Taste of Java MEA Taste of Java ME
A Taste of Java ME
 
Максим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overviewМаксим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overview
 

Mehr von IndicThreads

Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs itIndicThreads
 
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive ApplicationsUnderstanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive ApplicationsIndicThreads
 
Go Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayGo Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayIndicThreads
 
Building Resilient Microservices
Building Resilient Microservices Building Resilient Microservices
Building Resilient Microservices IndicThreads
 
App using golang indicthreads
App using golang  indicthreadsApp using golang  indicthreads
App using golang indicthreadsIndicThreads
 
Building on quicksand microservices indicthreads
Building on quicksand microservices  indicthreadsBuilding on quicksand microservices  indicthreads
Building on quicksand microservices indicthreadsIndicThreads
 
How to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingHow to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingIndicThreads
 
Iot secure connected devices indicthreads
Iot secure connected devices indicthreadsIot secure connected devices indicthreads
Iot secure connected devices indicthreadsIndicThreads
 
Real world IoT for enterprises
Real world IoT for enterprisesReal world IoT for enterprises
Real world IoT for enterprisesIndicThreads
 
IoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIndicThreads
 
Functional Programming Past Present Future
Functional Programming Past Present FutureFunctional Programming Past Present Future
Functional Programming Past Present FutureIndicThreads
 
Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams IndicThreads
 
Building & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fameBuilding & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fameIndicThreads
 
Internet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads ConferenceInternet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads ConferenceIndicThreads
 
Cars and Computers: Building a Java Carputer
 Cars and Computers: Building a Java Carputer Cars and Computers: Building a Java Carputer
Cars and Computers: Building a Java CarputerIndicThreads
 
Scrap Your MapReduce - Apache Spark
 Scrap Your MapReduce - Apache Spark Scrap Your MapReduce - Apache Spark
Scrap Your MapReduce - Apache SparkIndicThreads
 
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
 Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & DockerIndicThreads
 
Speed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedbackSpeed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedbackIndicThreads
 
Unraveling OpenStack Clouds
 Unraveling OpenStack Clouds Unraveling OpenStack Clouds
Unraveling OpenStack CloudsIndicThreads
 
Digital Transformation of the Enterprise. What IT leaders need to know!
Digital Transformation of the Enterprise. What IT  leaders need to know!Digital Transformation of the Enterprise. What IT  leaders need to know!
Digital Transformation of the Enterprise. What IT leaders need to know!IndicThreads
 

Mehr von IndicThreads (20)

Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs it
 
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive ApplicationsUnderstanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
 
Go Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayGo Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang way
 
Building Resilient Microservices
Building Resilient Microservices Building Resilient Microservices
Building Resilient Microservices
 
App using golang indicthreads
App using golang  indicthreadsApp using golang  indicthreads
App using golang indicthreads
 
Building on quicksand microservices indicthreads
Building on quicksand microservices  indicthreadsBuilding on quicksand microservices  indicthreads
Building on quicksand microservices indicthreads
 
How to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingHow to Think in RxJava Before Reacting
How to Think in RxJava Before Reacting
 
Iot secure connected devices indicthreads
Iot secure connected devices indicthreadsIot secure connected devices indicthreads
Iot secure connected devices indicthreads
 
Real world IoT for enterprises
Real world IoT for enterprisesReal world IoT for enterprises
Real world IoT for enterprises
 
IoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreads
 
Functional Programming Past Present Future
Functional Programming Past Present FutureFunctional Programming Past Present Future
Functional Programming Past Present Future
 
Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams
 
Building & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fameBuilding & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fame
 
Internet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads ConferenceInternet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads Conference
 
Cars and Computers: Building a Java Carputer
 Cars and Computers: Building a Java Carputer Cars and Computers: Building a Java Carputer
Cars and Computers: Building a Java Carputer
 
Scrap Your MapReduce - Apache Spark
 Scrap Your MapReduce - Apache Spark Scrap Your MapReduce - Apache Spark
Scrap Your MapReduce - Apache Spark
 
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
 Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
 
Speed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedbackSpeed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedback
 
Unraveling OpenStack Clouds
 Unraveling OpenStack Clouds Unraveling OpenStack Clouds
Unraveling OpenStack Clouds
 
Digital Transformation of the Enterprise. What IT leaders need to know!
Digital Transformation of the Enterprise. What IT  leaders need to know!Digital Transformation of the Enterprise. What IT  leaders need to know!
Digital Transformation of the Enterprise. What IT leaders need to know!
 

Kürzlich hochgeladen

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Why Android is designed the way it is

  • 1. Why is Android the way it is ... Navin Kabra navin@punetech.com
  • 2. Navin Kabra  Background: ▸ Computer Science ▸ B.Tech, IIT-Bombay ▸ Ph.D, Univ of Wisconsin-Madison, USA  Currently ▸ CTO, BharatHealth.com ▸ Also founder of PuneTech  Links: ▸ http://punetech.com ▸ http://punetech.com/navin ▸ http://smriti.com  Twitter: @_navin, @punetech  Email: navin@punetech.com
  • 3. Operating system − Initially targeting mobile phones − Now on more and more devices  By: Open Handset Alliance − Primarily Google − Also: HTC, Motorola, Intel, T-mobile, TI, Samsung − And: 47 others…  Stack − Linux Kernel − Java programming language − OpenGL graphics − Android’s own app development framework Photo Credit:Android Home by Unnamed 102 (via wikipedia)
  • 4. Kernel − Drivers: display, camera, bluetooth, flash memory, binder(IPC), usb, keypad, wifi, audio, power mgmt  Libraries − Surface, media, sqlite, opengl|es, freetype(fonts), webkit(browser), libc, ssl, sgl  Java − Dalvik Virtual Machine, Core java libraries  Application Framework − Window manager, Activities, Content Providers, View System, Notification Mgr, Package manager, Telephony manager, Resources, Location, Gtalk  Applications − Home, Contacts, Phone, Browser
  • 5. Re-design for mobile − i.e. CPU and memory constrained systems  Re-design for open-ness − Everything is open source − Open-ness friendly license  Re-design for reuse − Framework encourages mashups/interoperability
  • 6. Brand new Virtual Machine: Dalvik VM  Optimized for low-memory requirements  No JARs – use DEX files − Regular DEX file smaller than compressed JAR  No JIT yet − but (so?) lots of native code  Allow multiple VMs − one per app − better security  Better use of OS kernel features − Process isolation, memory mgmt, threading
  • 7. Use Apache license  GPL scares off device manufacturers − Android kernel = linux kernel = LGPL − Not as scary  Java wants centralized control (JCP) − Another reason why no JVM − And Java standard libraries missing  Everything is replaceable/rewriteable − Including contacts, sms, telephony…
  • 8. App development framework encourages mashups  Activities  Intents  Content Providers
  • 9. Apps broken up into activites  Each activity independently invokable  Example - email activites: − Show one email − Show email list − Create an email − Pick an email recipient  Share these across different apps
  • 10. Inter-app communication via “intents”  Specify what you want − Don’t specify how or who  System picks who does it − Other apps register with system − Indicate which intents they’re interested in handling  Loose coupling allows ease of replacement − Intents = XML format
  • 11. Abstract, high-level API for storing/retreiving data  Level of indirection between app & data storage  Content provider chooses data storage mechanism − File-system, database, cloud (internet) − (By the way, SQLite is in-built)
  • 12. Java programming language used  But not the Java Runtime − No JVM − No standard Java libraries − No JCP (Java community process) − No Java license − No JARs (i.e. no byte-code compatibility)
  • 13. Linux Kernel  No native windowing support − i.e. no Xwindows/Xfree86/Xorg/GNOME/KDE  No standard C library − i.e. no glibc − “Bionic” – customized, partial libc implementation − Only 200k (half of glibc) − Designed for low CPU devices − Customized High performance pthread library  No standard linux utilities − Some are there, most are missing
  • 14. In addition to Java: − C, C++, Python, Lua, Scala  Supports GSM (not CDMA?)  Touch, but not multi-touch (yet)
  • 15. Targeted Machine  CPU: 250-500MHz  Bus: 100MHz  Data-cache: 16-32K  Memory: 64MB − Low-level startup takes up 24MB − High-level startup takes up another 20MB − System library takes up another 10MB − Only 10MB available for apps
  • 16. Resources Alternatives by: − MCC=mobile country code − Language and region − screen orientation: port, land, square − screen pixel density: 92dpi, 108dpi, − touchscreen type: notouch, stylus, finger − keyboard: keysexposed, keyshidden, keyssoft − primary input type: nokeys, qwerty, 12keys − primary navigation method: nonav, dpad, trackball, wheel − screen dimensions: 320x240, 640x480 − sdk version: v1 (1.0), v2 (1.1), v3(1.5)