SlideShare une entreprise Scribd logo
1  sur  19
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 ??

Contenu connexe

Tendances

Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting SequenceJayanta Ghoshal
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with PieOpersys inc.
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Android Architecture
Android ArchitectureAndroid Architecture
Android Architecturedeepakshare
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
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 chapter02-setup2-emulator
Android chapter02-setup2-emulatorAndroid chapter02-setup2-emulator
Android chapter02-setup2-emulatorguru472
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application FrameworkYong Heui Cho
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating SystemBilal Mirza
 
Android Web app
Android Web app Android Web app
Android Web app Sumit Kumar
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsLinaro
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android Ranjith Kumar
 

Tendances (20)

Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting Sequence
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with Pie
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android Architecture
Android ArchitectureAndroid Architecture
Android Architecture
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
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...
 
Aidl service
Aidl serviceAidl service
Aidl service
 
Android
AndroidAndroid
Android
 
Dvm
DvmDvm
Dvm
 
Android chapter02-setup2-emulator
Android chapter02-setup2-emulatorAndroid chapter02-setup2-emulator
Android chapter02-setup2-emulator
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application Framework
 
Virtualization
Virtualization Virtualization
Virtualization
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Android Web app
Android Web app Android Web app
Android Web app
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
 
Android - Graphics Animation in Android
Android - Graphics Animation in AndroidAndroid - Graphics Animation in Android
Android - Graphics Animation in Android
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 

En vedette

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 NLinaro
 
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 GuideLinaro
 
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 overviewLinaro
 
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 machineChun-Yu Wang
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating systemSalma 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 toolsHaribabu Nandyal Padmanaban
 
Android operating system
Android operating systemAndroid operating system
Android operating systemShisir Ahmed
 
Performance optimization for Android
Performance optimization for AndroidPerformance optimization for Android
Performance optimization for AndroidArslan 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 2011Doug 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 toolGabor Paller
 
Android presentation
Android presentationAndroid presentation
Android presentationElyes Naouar
 
Android vs Others Operating System
Android vs Others Operating SystemAndroid vs Others Operating System
Android vs Others Operating SystemShemul Hossain
 
Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1Usman Chaudhry
 
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 consumptionDroidConTLV
 
BKK16-306 ART ii
BKK16-306 ART iiBKK16-306 ART ii
BKK16-306 ART iiLinaro
 

En vedette (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
 

Similaire à Google ART (Android RunTime)

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 NImam Raza
 
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_osArnav 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 ApplicationNandini Prabhu
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
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 DockerMoataz Nabil
 
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_osArnav 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
 
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 TechnologiesIt Academy
 
Android app development by abhi android
Android app development by abhi androidAndroid app development by abhi android
Android app development by abhi androidsusijanny
 
Android app development
Android app developmentAndroid app development
Android app developmentAbhishek Saini
 

Similaire à 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 by abhi android
Android app development by abhi androidAndroid app development by abhi android
Android app development by abhi android
 
Android app development
Android app developmentAndroid app development
Android app development
 

Dernier

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Dernier (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

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/