SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
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)

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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!
 

Dernier

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
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
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
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Dernier (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
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 ...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

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)