SlideShare a Scribd company logo
Presentation By-
Niraj N. Solanke
Contents
• Introduction to Android
•Layers of Android Operating System
•Current runtime of Android(Dalvik)
•Working
•Advantages/Disadvantages
•ART(Android Runtime)
•Working
•Advantages/Disadvantages
•Benchmarks
•Conclusion
•References
Introduction
•Android is an open-source platform developed by
Google on 5th Nov. 2007 that's currently available on a
wide variety of smart phones. Android is a software stack
for mobile devices that includes an operating
system, middleware and key applications.
•Android is an open source operating system so almost
anyone can modify and tweak various components of it
thus it makes Android the most favored mobile operating
system.
•Android OS is developed on Linux platform which is
wholly dedicated to open source and so does Android.
Layers of Android Operating
System
Dalvik runtime (current VM)
•In standard Java environments, Java source code is
compiled into Java bytecode, which is stored within .class
files, the .class files are read by the JVM at runtime.
•Each class in your Java code will result in one .class file, this
means that if you have, say, one .java source file that
contains one public class, one static inner class, and three
anonymous classes, the compilation process (javac) will
output 5 .class files.
•On the Android platform, Java source code is still compiled
into .class files. But after .class files are generated, the “dx”
tool is used to convert the .class files into a .dex, or Dalvik
Executable, file.
Whereas a .class file contains only one class, a .dex file
contains multiple classes. It is the .dex file that is executed on
Working of Dalvik VM
•Android uses Dalvik and a Just-In-Time (JIT) compiler. This
means that Android apps are written in a generic version of
code, called bytecode, that is only half-compiled by
developers. Whenever the apps are launched, Dalvik
compiles the code “just in time” to run.
Fig:- Compiling steps in
Disadvantages of Dalvik
•As we have seen the working of the Dalvik VM’s working
as, “the Android apps are written in a generic version of
code, called bytecode, that is only half-compiled by
developers. Whenever the apps are launched, Dalvik
compiles the code “just in time” to run.”
•This means that whenever a new process (application) starts
it is compiled and loaded in the RAM to run the
application, when the application is removed from the RAM all
the compilation work of that bytecode needs to be done again
and again thus it is time consuming and significantly affects
the battery for all the unnecessary repeated processing
power.
•Right after Android 4.4 was announced, Google
had partially implemented a new runtime compiler
in the software called ART that could potentially
replace Dalvik in the near future.
•Android RunTime, that compiles the bytecode when
applications are installed as opposed to compiling them just
before being launched. This is called Ahead-Of-Time (AOT)
compiling and is much, much more efficient on performance
and battery life.
•Dalvik was originally designed not for speed, smoothness, or
power, but to save space. Android devices at the time had
very limited storage and memory, and Google's primary
concern at the time was fitting everything into a small
footprint.
•Today, Android runs on much different hardware with tons of
power and storage, and Android could see a big performance
and battery improvement with a more modern runtime. That
new runtime is called "Android RunTime," and it's a
newer, speedier replacement for Dalvik.
•The Dalvik cache contains compiled bytecode, which still
needs to run in the dalvik virtual machine. This is faster than
running Java without JIT, but still much slower than native
code.
•ART compiles Java to native machine language, eliminating
the need to spin up a vm for each new app and to interpret
byte code.
•It’s not without downsides, though. ART
compiled code would take up slightly more room
on a device compared to apps that were only
compiled in use.
•But for most devices, the tradeoff is well worth it, installing
apps will also likely take longer using ART. Since they’re
compiled on installation, on bigger apps that could definitely
draw out the process a bit, but for most people I feel like the
performance gains would be worth it.
• The new runtime is already capable of cutting execution
time in half for most applications. This means that long-
running, processor-intensive tasks will be able to finish
faster, allowing the system to idle more often and for longer.
Regular applications will also benefit from smoother
animations and more instantaneous responses to touch and
•ART will compile bytecode to native code ahead of time.
Native code will take up more space than bytecode. Every
app will use about 10-20% extra space compared to dalvik
version. It won't be multiple GB's though.
•The other likely notable drawback will come in the form of a
longer install time for apps - the side effect of performing the
AOT compilation.
•Thus it seems that it has some drawbacks on ART but it is
recently being developed and not been fully optimized to
operate and it is not selected by default on latest KitKat (4.4)
version on android.
Drawbacks of ART
Dalvik VS ART
•Dalvik has been the default runtime environment of Android
since its first public release. It has also been the primary
bottleneck of the OS because it uses JIT (just-in-time)
compilation, requiring apps to be compiled on the go before
running them, which can be quite taxing on performance as
well as battery life.
•ART (Android RunTime) is a replacement for Dalvik that
uses AOT (ahead of time) compilation, meaning your apps
are compiled to a ready-to-run state before you even launch
them, making the process of launching and using them much
faster and smoother. And since this would reduce their
compilation frequency significantly, you can expect to start
seeing better battery life.
Benchmarks
•Performance benchmark
•Memory before and after changing
Conclusion
•Overall, ART sounds like a pretty amazing project, one that I
hope to see as a regular part of Android sooner rather than
later. The improvements are likely to be pretty amazing while
the drawbacks should be virtually undetectable. It doesn’t
mean ART will become the default in official releases from
Google for some time as it needs further development.
References
Official link
http://source.android.com/devices/tech/dalvik/art.html
Reddit links
•http://www.reddit.com/r/Android/comments/1qb97o/heres_a_
simpler_explanation_of_art_for_android_44/
•http://www.reddit.com/r/Android/comments/1q9h50/
Other links
•http://www.androidpolice.com/2013/11/06/meet-art-part-1-
the-new-super-fast-android-runtime-google-has-been-
working-on-in-secret-for-over-2-years-debuts-in-kitkat/
•http://www.talkandroid.com/182965-art-the-new-android-
compiler-added-in-kitkat-gets-detailed-and-explained/
Questions ??

More Related Content

What's hot

Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android Device
Patricia Aas
 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
Javier Perez
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
saitej15
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
Jaime Barragan
 
Android architecture
Android architectureAndroid architecture
Android architecture
Kartik Kalpande Patil
 
Unix Operating System
Unix Operating SystemUnix Operating System
Unix Operating System
subhsikha
 
Open source operating systems
Open source operating systemsOpen source operating systems
Open source operating systems
Tushar B Kute
 
History of Linux
History of LinuxHistory of Linux
History of Linux
Gray-chan Desu
 
Browsing Linux Kernel Source
Browsing Linux Kernel SourceBrowsing Linux Kernel Source
Browsing Linux Kernel Source
Motaz Saad
 
AIDL - Android Interface Definition Language
AIDL  - Android Interface Definition LanguageAIDL  - Android Interface Definition Language
AIDL - Android Interface Definition Language
Arvind Devaraj
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
Linux Run Level
Linux Run LevelLinux Run Level
Linux Run Level
Gaurav Mishra
 
From Android NDK To AOSP
From Android NDK To AOSPFrom Android NDK To AOSP
From Android NDK To AOSP
Min-Yih Hsu
 
Introduction to Linux basic
Introduction to Linux basicIntroduction to Linux basic
Introduction to Linux basic
f114n
 
Linux ppt
Linux pptLinux ppt
Linux ppt
lincy21
 
Qnx os
Qnx os Qnx os
Qnx os
Student
 
Android Logging System
Android Logging SystemAndroid Logging System
Android Logging System
William Lee
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
Bilal Mirza
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Opersys inc.
 
Android activities & views
Android activities & viewsAndroid activities & views
Android activities & views
ma-polimi
 

What's hot (20)

Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android Device
 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Unix Operating System
Unix Operating SystemUnix Operating System
Unix Operating System
 
Open source operating systems
Open source operating systemsOpen source operating systems
Open source operating systems
 
History of Linux
History of LinuxHistory of Linux
History of Linux
 
Browsing Linux Kernel Source
Browsing Linux Kernel SourceBrowsing Linux Kernel Source
Browsing Linux Kernel Source
 
AIDL - Android Interface Definition Language
AIDL  - Android Interface Definition LanguageAIDL  - Android Interface Definition Language
AIDL - Android Interface Definition Language
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Linux Run Level
Linux Run LevelLinux Run Level
Linux Run Level
 
From Android NDK To AOSP
From Android NDK To AOSPFrom Android NDK To AOSP
From Android NDK To AOSP
 
Introduction to Linux basic
Introduction to Linux basicIntroduction to Linux basic
Introduction to Linux basic
 
Linux ppt
Linux pptLinux ppt
Linux ppt
 
Qnx os
Qnx os Qnx os
Qnx os
 
Android Logging System
Android Logging SystemAndroid Logging System
Android Logging System
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
 
Android activities & views
Android activities & viewsAndroid activities & views
Android activities & views
 

Viewers also liked

LAS16-201: ART JIT in Android N
LAS16-201: ART JIT in Android NLAS16-201: ART JIT in Android N
LAS16-201: ART JIT in Android N
Linaro
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
Linaro
 
Introduction to ART (Android Runtime)
Introduction to ART (Android Runtime)Introduction to ART (Android Runtime)
Introduction to ART (Android Runtime)
Iordanis (Jordan) Giannakakis
 
HKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overviewHKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overview
Linaro
 
How to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machineHow to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machine
Chun-Yu Wang
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
Salma Begum
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Haribabu Nandyal Padmanaban
 
iOS Application Testing
iOS Application TestingiOS Application Testing
iOS Application Testing
Mreetyunjaya Daas
 
Android operating system
Android operating systemAndroid operating system
Android operating system
Shisir Ahmed
 
Performance optimization for Android
Performance optimization for AndroidPerformance optimization for Android
Performance optimization for Android
Arslan Anwar
 
Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011
Doug Hawkins
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer tool
Gabor Paller
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
National Cheng Kung University
 
Android presentation
Android presentationAndroid presentation
Android presentation
Elyes Naouar
 
Android vs Others Operating System
Android vs Others Operating SystemAndroid vs Others Operating System
Android vs Others Operating System
Shemul Hossain
 
Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1
Usman Chaudhry
 
Oficio capcitación matemática
Oficio capcitación matemáticaOficio capcitación matemática
Oficio capcitación matemática
Karina Verónica Santisteban Fernandez
 
Analyze and optimize Android apps power consumption
Analyze and optimize Android apps power consumptionAnalyze and optimize Android apps power consumption
Analyze and optimize Android apps power consumption
DroidConTLV
 
Oficio capcitación matemática
Oficio capcitación matemáticaOficio capcitación matemática
Oficio capcitación matemática
Karina Verónica Santisteban Fernandez
 
BKK16-306 ART ii
BKK16-306 ART iiBKK16-306 ART ii
BKK16-306 ART ii
Linaro
 

Viewers also liked (20)

LAS16-201: ART JIT in Android N
LAS16-201: ART JIT in Android NLAS16-201: ART JIT in Android N
LAS16-201: ART JIT in Android N
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 
Introduction to ART (Android Runtime)
Introduction to ART (Android Runtime)Introduction to ART (Android Runtime)
Introduction to ART (Android Runtime)
 
HKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overviewHKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overview
 
How to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machineHow to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machine
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
 
iOS Application Testing
iOS Application TestingiOS Application Testing
iOS Application Testing
 
Android operating system
Android operating systemAndroid operating system
Android operating system
 
Performance optimization for Android
Performance optimization for AndroidPerformance optimization for Android
Performance optimization for Android
 
Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer tool
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Android vs Others Operating System
Android vs Others Operating SystemAndroid vs Others Operating System
Android vs Others Operating System
 
Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1
 
Oficio capcitación matemática
Oficio capcitación matemáticaOficio capcitación matemática
Oficio capcitación matemática
 
Analyze and optimize Android apps power consumption
Analyze and optimize Android apps power consumptionAnalyze and optimize Android apps power consumption
Analyze and optimize Android apps power consumption
 
Oficio capcitación matemática
Oficio capcitación matemáticaOficio capcitación matemática
Oficio capcitación matemática
 
BKK16-306 ART ii
BKK16-306 ART iiBKK16-306 ART ii
BKK16-306 ART ii
 

Similar to Google ART (Android RunTime)

Android Lollipop
Android LollipopAndroid Lollipop
Android Lollipop
Željko Plesac
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android N
Imam Raza
 
Codename one
Codename oneCodename one
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
Nandini Prabhu
 
Lick my Lollipop
Lick my LollipopLick my Lollipop
Lick my Lollipop
Tamara Momčilović
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
Android
Android Android
Android
Ravina Bhavsar
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
Moataz Nabil
 
Android lollipop
Android lollipopAndroid lollipop
Android lollipop
Nandakishor Sonkamble
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
Omolara Adejuwon
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement
Shubham Pahune
 
Android ndk
Android ndkAndroid ndk
Develop android application with mono for android
Develop android application with mono for androidDevelop android application with mono for android
Develop android application with mono for androidNicko Satria Consulting
 
Chapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesChapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side Technologies
It Academy
 
Android technology
Android technology Android technology
Android technology
vikas malviya
 
Android app development
Android app developmentAndroid app development
Android app development
Abhishek Saini
 
Android app development by abhi android
Android app development by abhi androidAndroid app development by abhi android
Android app development by abhi android
susijanny
 

Similar to Google ART (Android RunTime) (20)

Android Lollipop
Android LollipopAndroid Lollipop
Android Lollipop
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android N
 
Codename one
Codename oneCodename one
Codename one
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
 
Lick my Lollipop
Lick my LollipopLick my Lollipop
Lick my Lollipop
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
Android
Android Android
Android
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Android lollipop
Android lollipopAndroid lollipop
Android lollipop
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
 
Android NDK
Android NDKAndroid NDK
Android NDK
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement
 
Android ndk
Android ndkAndroid ndk
Android ndk
 
Develop android application with mono for android
Develop android application with mono for androidDevelop android application with mono for android
Develop android application with mono for android
 
Chapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesChapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side Technologies
 
Android technology
Android technology Android technology
Android technology
 
Android app development
Android app developmentAndroid app development
Android app development
 
Android app development by abhi android
Android app development by abhi androidAndroid app development by abhi android
Android app development by abhi android
 

Recently uploaded

Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

Google ART (Android RunTime)

  • 2. Contents • Introduction to Android •Layers of Android Operating System •Current runtime of Android(Dalvik) •Working •Advantages/Disadvantages •ART(Android Runtime) •Working •Advantages/Disadvantages •Benchmarks •Conclusion •References
  • 3. Introduction •Android is an open-source platform developed by Google on 5th Nov. 2007 that's currently available on a wide variety of smart phones. Android is a software stack for mobile devices that includes an operating system, middleware and key applications. •Android is an open source operating system so almost anyone can modify and tweak various components of it thus it makes Android the most favored mobile operating system. •Android OS is developed on Linux platform which is wholly dedicated to open source and so does Android.
  • 4.
  • 5. Layers of Android Operating System
  • 6. Dalvik runtime (current VM) •In standard Java environments, Java source code is compiled into Java bytecode, which is stored within .class files, the .class files are read by the JVM at runtime. •Each class in your Java code will result in one .class file, this means that if you have, say, one .java source file that contains one public class, one static inner class, and three anonymous classes, the compilation process (javac) will output 5 .class files. •On the Android platform, Java source code is still compiled into .class files. But after .class files are generated, the “dx” tool is used to convert the .class files into a .dex, or Dalvik Executable, file. Whereas a .class file contains only one class, a .dex file contains multiple classes. It is the .dex file that is executed on
  • 7. Working of Dalvik VM •Android uses Dalvik and a Just-In-Time (JIT) compiler. This means that Android apps are written in a generic version of code, called bytecode, that is only half-compiled by developers. Whenever the apps are launched, Dalvik compiles the code “just in time” to run. Fig:- Compiling steps in
  • 8. Disadvantages of Dalvik •As we have seen the working of the Dalvik VM’s working as, “the Android apps are written in a generic version of code, called bytecode, that is only half-compiled by developers. Whenever the apps are launched, Dalvik compiles the code “just in time” to run.” •This means that whenever a new process (application) starts it is compiled and loaded in the RAM to run the application, when the application is removed from the RAM all the compilation work of that bytecode needs to be done again and again thus it is time consuming and significantly affects the battery for all the unnecessary repeated processing power.
  • 9.
  • 10. •Right after Android 4.4 was announced, Google had partially implemented a new runtime compiler in the software called ART that could potentially replace Dalvik in the near future. •Android RunTime, that compiles the bytecode when applications are installed as opposed to compiling them just before being launched. This is called Ahead-Of-Time (AOT) compiling and is much, much more efficient on performance and battery life. •Dalvik was originally designed not for speed, smoothness, or power, but to save space. Android devices at the time had very limited storage and memory, and Google's primary concern at the time was fitting everything into a small footprint.
  • 11. •Today, Android runs on much different hardware with tons of power and storage, and Android could see a big performance and battery improvement with a more modern runtime. That new runtime is called "Android RunTime," and it's a newer, speedier replacement for Dalvik. •The Dalvik cache contains compiled bytecode, which still needs to run in the dalvik virtual machine. This is faster than running Java without JIT, but still much slower than native code. •ART compiles Java to native machine language, eliminating the need to spin up a vm for each new app and to interpret byte code.
  • 12. •It’s not without downsides, though. ART compiled code would take up slightly more room on a device compared to apps that were only compiled in use. •But for most devices, the tradeoff is well worth it, installing apps will also likely take longer using ART. Since they’re compiled on installation, on bigger apps that could definitely draw out the process a bit, but for most people I feel like the performance gains would be worth it. • The new runtime is already capable of cutting execution time in half for most applications. This means that long- running, processor-intensive tasks will be able to finish faster, allowing the system to idle more often and for longer. Regular applications will also benefit from smoother animations and more instantaneous responses to touch and
  • 13. •ART will compile bytecode to native code ahead of time. Native code will take up more space than bytecode. Every app will use about 10-20% extra space compared to dalvik version. It won't be multiple GB's though. •The other likely notable drawback will come in the form of a longer install time for apps - the side effect of performing the AOT compilation. •Thus it seems that it has some drawbacks on ART but it is recently being developed and not been fully optimized to operate and it is not selected by default on latest KitKat (4.4) version on android. Drawbacks of ART
  • 14. Dalvik VS ART •Dalvik has been the default runtime environment of Android since its first public release. It has also been the primary bottleneck of the OS because it uses JIT (just-in-time) compilation, requiring apps to be compiled on the go before running them, which can be quite taxing on performance as well as battery life. •ART (Android RunTime) is a replacement for Dalvik that uses AOT (ahead of time) compilation, meaning your apps are compiled to a ready-to-run state before you even launch them, making the process of launching and using them much faster and smoother. And since this would reduce their compilation frequency significantly, you can expect to start seeing better battery life.
  • 16. •Memory before and after changing
  • 17. Conclusion •Overall, ART sounds like a pretty amazing project, one that I hope to see as a regular part of Android sooner rather than later. The improvements are likely to be pretty amazing while the drawbacks should be virtually undetectable. It doesn’t mean ART will become the default in official releases from Google for some time as it needs further development.
  • 18. References Official link http://source.android.com/devices/tech/dalvik/art.html Reddit links •http://www.reddit.com/r/Android/comments/1qb97o/heres_a_ simpler_explanation_of_art_for_android_44/ •http://www.reddit.com/r/Android/comments/1q9h50/ Other links •http://www.androidpolice.com/2013/11/06/meet-art-part-1- the-new-super-fast-android-runtime-google-has-been- working-on-in-secret-for-over-2-years-debuts-in-kitkat/ •http://www.talkandroid.com/182965-art-the-new-android- compiler-added-in-kitkat-gets-detailed-and-explained/