SlideShare a Scribd company logo
1 of 20
Faster Builds and 
Emulators 
INTEL HAXM ● XAMARIN ANDROID PLAYER ● GENYMOTION
A Windows programmer’s evening 
WE WANT 
THIS
A Xamarin programmer’s evening 
(sometimes) 
AND NOT 
THIS
What slow builds do to a programmer 
WHY YOU 
NO BUILD 
FASTER??!!
Speeding up a build
Speeding up a build (contd.) 
• Don’t clean and rebuild unless you absolutely need to 
(Stackoverflow question about clean and build vs. rebuild) 
• Remove/exclude unnecessary projects, files and resources (esp. drawables) 
• Move as much code as possible into PCL so you can isolate builds – PCLs build faster
Removing unnecessary programs 
• Go to Run and type msconfig 
• Hide all Microsoft services 
• Uncheck any programs you know you don’t 
need unless you need them 
• Do the same process in your Task Manager 
under the “Startup” tab – disable 
unnecessary startup programs
Virtualization 
• Lets AVD share resources with your host OS 
• Execution faster than actual device in many 
cases 
• Lots of RAM needed – in addition to what the 
host OS needs 
• Letting it use host GPU boosts performance 
further 
• Computer should have a minimum 8 GB of RAM
First steps 
• Uninstall everything: VirtualBox, Genymotion, Xamarin Android Player and your existing AVDs 
• Make sure Hyper-V is disabled if you’re on Windows 8 or above 
• Delete some or all of your existing AVDs (not needed but to really start afresh) 
• Ensure that virtualization (Intel VT-x) is enabled – consult network team if needed 
• Remove artifacts from old installations by manually removing registry entries 
• Restart your computer
• Adjust for best performance or use custom settings 
• Affects RAM usage; frees up a bit 
• See this (old) and this (new) article about speeding up 
your system
Intel HAXM 
• Get the installer here (if you agree to the T&C) 
• Make sure you allot enough RAM during installation – at least 2.5 GB recommended 
• Do not run other programs that require virtualization such as Virtual Box or VMWare 
• Do not run Xamarin Android Player or Genymotion alongside an HAXM-enabled AVD 
• Allow an Intel HAXM—enabled AVD to run in isolation
• Choose “set manually” and allot highest possible RAM 
• Ensure that the RAM you allot in your AVD is ≤ (less than/equal to) this value
Fast-deploying emulators 
• Deployment is noticeably faster on some emulators 
• E.g. deploying on a Nexus 4 is a lot faster than deploying on a Nexus S 
• Use Nexus 4 where you can 
• Allot enough resources to your emulator – high RAM, high storage capacity, 80-100 heap size 
• Set this attribute in your app’s manifest file 
android:largeHeap="true"
For faster virtual devices 
• Install Intel x86 images for all Android APIs you use 
• Prefer using a lower API level in your AVD (KitKat and above are resource-intensive) 
(See: this page) 
• Prefer using a lower screen resolution in your AVD 
• Try disabling resource-intensive Windows features
Xamarin Android Player 
• Runs quite flawlessly on Windows 8.1 64-bit 
• Ensure that other virtualization “consumers”/devices are disabled and turned off 
• Ensure that Hyper-V is disabled 
• On Windows 7, there’ll probably be a few glitches (forum solutions didn’t work either ) 
• Bunch of known issues acknowledged by Xamarin 
• Install this prior to Genymotion
Genymotion 
• Uses VirtualBox like Xamarin Android Player 
• Make sure instances run separately 
• Install this after Xamarin Android Player and HAXM 
• Bunch of solutions in FAQs and docs
Wrapping up 
Unless advised in documentation, 
• Never run an emulator inside a VM 
• Only run one emulator of any type at a time (esp. HAXM, which powers only one AVD at a time) 
• Keep an eye on background processes; kill unnecessary processes 
• Keep as few (Explorer) windows open as possible 
• Prefer AVD+Intel HAXM > Xamarin Android Player > Genymotion
Conclusion: happy Xamarin programmers

More Related Content

What's hot

PowerCLI administration with a Windows Docker image
PowerCLI administration with a Windows Docker imagePowerCLI administration with a Windows Docker image
PowerCLI administration with a Windows Docker imageJustin Sider
 
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Amazon Web Services
 
Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...Gluster.org
 
Lessons From A DevOps Transformation on AWS
Lessons From A DevOps Transformation on AWSLessons From A DevOps Transformation on AWS
Lessons From A DevOps Transformation on AWSHrishikesh Barua
 
Exploring Windows XP to 7 Migration Options
Exploring Windows XP to 7 Migration OptionsExploring Windows XP to 7 Migration Options
Exploring Windows XP to 7 Migration OptionsDavid Strom
 
Scalr: Setting Up Automated Scaling
Scalr: Setting Up Automated ScalingScalr: Setting Up Automated Scaling
Scalr: Setting Up Automated ScalingHakka Labs
 
Virtualization
VirtualizationVirtualization
Virtualizationmasudonish
 
JUST EAT: Tools we use to enable our culture
JUST EAT: Tools we use to enable our cultureJUST EAT: Tools we use to enable our culture
JUST EAT: Tools we use to enable our culturePeter Mounce
 
A brief introduction to CloudFormation
A brief introduction to CloudFormationA brief introduction to CloudFormation
A brief introduction to CloudFormationSWIFTotter Solutions
 
LAMP Management with Virtualmin
LAMP Management with VirtualminLAMP Management with Virtualmin
LAMP Management with VirtualminJoe Ferguson
 
Bluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web ApplicationBluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web ApplicationCraig Trim
 
Hyun goo oVirt study - Presentation
Hyun goo oVirt study - PresentationHyun goo oVirt study - Presentation
Hyun goo oVirt study - PresentationJohnny Hyun Goo
 
Introducing Colama: virtual lab infrastructure for Enterprise
Introducing Colama: virtual lab infrastructure for EnterpriseIntroducing Colama: virtual lab infrastructure for Enterprise
Introducing Colama: virtual lab infrastructure for EnterpriseCoriolis Technologies
 
AWS Summit Bogotá Track Avanzado: EC2 avanzado
AWS Summit Bogotá Track Avanzado: EC2 avanzadoAWS Summit Bogotá Track Avanzado: EC2 avanzado
AWS Summit Bogotá Track Avanzado: EC2 avanzadoAmazon Web Services
 
Sync in an NFV World (Ram, ITSF 2016)
Sync in an NFV World  (Ram, ITSF 2016)Sync in an NFV World  (Ram, ITSF 2016)
Sync in an NFV World (Ram, ITSF 2016)Adam Paterson
 
A crash course in scaling wordpress
A crash course inscaling wordpress A crash course inscaling wordpress
A crash course in scaling wordpress GovLoop
 

What's hot (20)

PowerCLI administration with a Windows Docker image
PowerCLI administration with a Windows Docker imagePowerCLI administration with a Windows Docker image
PowerCLI administration with a Windows Docker image
 
Ansible Playbook
Ansible PlaybookAnsible Playbook
Ansible Playbook
 
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
 
Virapix
VirapixVirapix
Virapix
 
Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...
 
Lessons From A DevOps Transformation on AWS
Lessons From A DevOps Transformation on AWSLessons From A DevOps Transformation on AWS
Lessons From A DevOps Transformation on AWS
 
Exploring Windows XP to 7 Migration Options
Exploring Windows XP to 7 Migration OptionsExploring Windows XP to 7 Migration Options
Exploring Windows XP to 7 Migration Options
 
Scalr: Setting Up Automated Scaling
Scalr: Setting Up Automated ScalingScalr: Setting Up Automated Scaling
Scalr: Setting Up Automated Scaling
 
Virtualization
VirtualizationVirtualization
Virtualization
 
JUST EAT: Tools we use to enable our culture
JUST EAT: Tools we use to enable our cultureJUST EAT: Tools we use to enable our culture
JUST EAT: Tools we use to enable our culture
 
A brief introduction to CloudFormation
A brief introduction to CloudFormationA brief introduction to CloudFormation
A brief introduction to CloudFormation
 
VMUG RO Autolab Demo
VMUG RO Autolab DemoVMUG RO Autolab Demo
VMUG RO Autolab Demo
 
LAMP Management with Virtualmin
LAMP Management with VirtualminLAMP Management with Virtualmin
LAMP Management with Virtualmin
 
Bluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web ApplicationBluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web Application
 
Hyun goo oVirt study - Presentation
Hyun goo oVirt study - PresentationHyun goo oVirt study - Presentation
Hyun goo oVirt study - Presentation
 
Introducing Colama: virtual lab infrastructure for Enterprise
Introducing Colama: virtual lab infrastructure for EnterpriseIntroducing Colama: virtual lab infrastructure for Enterprise
Introducing Colama: virtual lab infrastructure for Enterprise
 
AWS Summit Bogotá Track Avanzado: EC2 avanzado
AWS Summit Bogotá Track Avanzado: EC2 avanzadoAWS Summit Bogotá Track Avanzado: EC2 avanzado
AWS Summit Bogotá Track Avanzado: EC2 avanzado
 
Sync in an NFV World (Ram, ITSF 2016)
Sync in an NFV World  (Ram, ITSF 2016)Sync in an NFV World  (Ram, ITSF 2016)
Sync in an NFV World (Ram, ITSF 2016)
 
A crash course in scaling wordpress
A crash course inscaling wordpress A crash course inscaling wordpress
A crash course in scaling wordpress
 
colama EigenBoot
colama EigenBootcolama EigenBoot
colama EigenBoot
 

Similar to Faster Builds and Emulators (Xamarin.Android)

Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxWO Community
 
Hyper-V: Best Practices
Hyper-V: Best PracticesHyper-V: Best Practices
Hyper-V: Best PracticesTomica Kaniski
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudEberhard Wolff
 
Windows optimization and customization
Windows optimization and customizationWindows optimization and customization
Windows optimization and customizationHiren Mayani
 
Virtualization
VirtualizationVirtualization
VirtualizationMadnanS
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrantMakis Asimidis
 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOpenStack Foundation
 
FOSS_GNU/Linux
FOSS_GNU/LinuxFOSS_GNU/Linux
FOSS_GNU/LinuxYogesh Ks
 
Platform Security Summit 18: Xen Security Weather Report 2018
Platform Security Summit 18: Xen Security Weather Report 2018Platform Security Summit 18: Xen Security Weather Report 2018
Platform Security Summit 18: Xen Security Weather Report 2018The Linux Foundation
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Eberhard Wolff
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparisonadesso AG
 
Practical Implementation of Virtual Machine
Practical Implementation of Virtual MachinePractical Implementation of Virtual Machine
Practical Implementation of Virtual MachineRubal Sagwal
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMathew Beane
 
Docker introduction
Docker introductionDocker introduction
Docker introductionJo Ee Liew
 
Improving Game Performance in the Browser
Improving Game Performance in the BrowserImproving Game Performance in the Browser
Improving Game Performance in the BrowserFITC
 

Similar to Faster Builds and Emulators (Xamarin.Android) (20)

Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS Linux
 
Msdnaa and you
Msdnaa and youMsdnaa and you
Msdnaa and you
 
Building an iOS Build Server
Building an iOS Build ServerBuilding an iOS Build Server
Building an iOS Build Server
 
Msdnaa and you
Msdnaa and youMsdnaa and you
Msdnaa and you
 
Hyper-V: Best Practices
Hyper-V: Best PracticesHyper-V: Best Practices
Hyper-V: Best Practices
 
PROCESS WARP
PROCESS WARPPROCESS WARP
PROCESS WARP
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
 
Windows optimization and customization
Windows optimization and customizationWindows optimization and customization
Windows optimization and customization
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMU
 
FOSS_GNU/Linux
FOSS_GNU/LinuxFOSS_GNU/Linux
FOSS_GNU/Linux
 
Platform Security Summit 18: Xen Security Weather Report 2018
Platform Security Summit 18: Xen Security Weather Report 2018Platform Security Summit 18: Xen Security Weather Report 2018
Platform Security Summit 18: Xen Security Weather Report 2018
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Practical Implementation of Virtual Machine
Practical Implementation of Virtual MachinePractical Implementation of Virtual Machine
Practical Implementation of Virtual Machine
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling Magento
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Improving Game Performance in the Browser
Improving Game Performance in the BrowserImproving Game Performance in the Browser
Improving Game Performance in the Browser
 

Recently uploaded

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 

Recently uploaded (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

Faster Builds and Emulators (Xamarin.Android)

  • 1. Faster Builds and Emulators INTEL HAXM ● XAMARIN ANDROID PLAYER ● GENYMOTION
  • 2. A Windows programmer’s evening WE WANT THIS
  • 3. A Xamarin programmer’s evening (sometimes) AND NOT THIS
  • 4. What slow builds do to a programmer WHY YOU NO BUILD FASTER??!!
  • 6. Speeding up a build (contd.) • Don’t clean and rebuild unless you absolutely need to (Stackoverflow question about clean and build vs. rebuild) • Remove/exclude unnecessary projects, files and resources (esp. drawables) • Move as much code as possible into PCL so you can isolate builds – PCLs build faster
  • 7. Removing unnecessary programs • Go to Run and type msconfig • Hide all Microsoft services • Uncheck any programs you know you don’t need unless you need them • Do the same process in your Task Manager under the “Startup” tab – disable unnecessary startup programs
  • 8. Virtualization • Lets AVD share resources with your host OS • Execution faster than actual device in many cases • Lots of RAM needed – in addition to what the host OS needs • Letting it use host GPU boosts performance further • Computer should have a minimum 8 GB of RAM
  • 9. First steps • Uninstall everything: VirtualBox, Genymotion, Xamarin Android Player and your existing AVDs • Make sure Hyper-V is disabled if you’re on Windows 8 or above • Delete some or all of your existing AVDs (not needed but to really start afresh) • Ensure that virtualization (Intel VT-x) is enabled – consult network team if needed • Remove artifacts from old installations by manually removing registry entries • Restart your computer
  • 10.
  • 11.
  • 12. • Adjust for best performance or use custom settings • Affects RAM usage; frees up a bit • See this (old) and this (new) article about speeding up your system
  • 13. Intel HAXM • Get the installer here (if you agree to the T&C) • Make sure you allot enough RAM during installation – at least 2.5 GB recommended • Do not run other programs that require virtualization such as Virtual Box or VMWare • Do not run Xamarin Android Player or Genymotion alongside an HAXM-enabled AVD • Allow an Intel HAXM—enabled AVD to run in isolation
  • 14. • Choose “set manually” and allot highest possible RAM • Ensure that the RAM you allot in your AVD is ≤ (less than/equal to) this value
  • 15. Fast-deploying emulators • Deployment is noticeably faster on some emulators • E.g. deploying on a Nexus 4 is a lot faster than deploying on a Nexus S • Use Nexus 4 where you can • Allot enough resources to your emulator – high RAM, high storage capacity, 80-100 heap size • Set this attribute in your app’s manifest file android:largeHeap="true"
  • 16. For faster virtual devices • Install Intel x86 images for all Android APIs you use • Prefer using a lower API level in your AVD (KitKat and above are resource-intensive) (See: this page) • Prefer using a lower screen resolution in your AVD • Try disabling resource-intensive Windows features
  • 17. Xamarin Android Player • Runs quite flawlessly on Windows 8.1 64-bit • Ensure that other virtualization “consumers”/devices are disabled and turned off • Ensure that Hyper-V is disabled • On Windows 7, there’ll probably be a few glitches (forum solutions didn’t work either ) • Bunch of known issues acknowledged by Xamarin • Install this prior to Genymotion
  • 18. Genymotion • Uses VirtualBox like Xamarin Android Player • Make sure instances run separately • Install this after Xamarin Android Player and HAXM • Bunch of solutions in FAQs and docs
  • 19. Wrapping up Unless advised in documentation, • Never run an emulator inside a VM • Only run one emulator of any type at a time (esp. HAXM, which powers only one AVD at a time) • Keep an eye on background processes; kill unnecessary processes • Keep as few (Explorer) windows open as possible • Prefer AVD+Intel HAXM > Xamarin Android Player > Genymotion