Faster Android emulation on Xamarin - xamarin

Previously, I was using the Xamarin Android Player, which is now deprecated. This was the fastest Android emulator I've used in recent times, so I was somewhat confused to hear it was deprecated. Now, I'm attempting to use Android's SDK emulator with Intel's HAXM (latest version 6.0.3). I'm using the SDK's image for x86 (previously tried x86_64 image) for Android 7/N (API 24). I'm also using an older system (Apple's Macbook 2011 Core 2 Duo running Mac OS X 10.11), so I'm sure that might play a part in the slowness. I can never get the emulator to boot beyond the android loading animation (the one that says android).
Does anyone have any recommendations on getting the emulator to run well on a mac?

Related

Will Android Studio work on Mac with an ARM processor?

Will Android Studio work on Apple with arm chips ARM (the new Mac devices)?
Good news !
Edit on May 2021 🎉 🌈
Apple Silicon Support
There is an arm64 version available for Android Studio Arctic Fox (2020.3.1) Canary 15 ... Beta03 You can download it here https://developer.android.com/studio/archive
NDK builds doesn't work
First post
Android Studio 4.1 works, but I'm not able to make Emulator work.
Even the ARM image shows me a CPU does not support VT-x
I can confirm, this preview of Emulator works properly https://androidstudio.googleblog.com/2020/12/android-emulator-apple-silicon-preview.html
Since v3 even audio-out works (no audio-in)
Update March 2021
You can simple use one of these and it's working out of the box
For most programming, the chip "underneath the hood" doesn't matter. It only matters if you're working very low-level.
To support old and new apps, Apple will use Rosetta 2, integrated emulation software, to enable ARM-based Macs to run Intel code
The IntelliJ issue for ARM support
The pull request for ARM support on IntelliJ
Intellij (and Google to a lesser extent) has a financial interest in making sure that it does work. Emulation might be slow, but I would be shocked if the IDEs and other tools aren't recompiled to work pretty soon after the release.
Edit: Their IDEs already work on ARM-based Chromebooks, which hopefully means there's little work in making it work for ARM Macs
And on the bright side, emulators will probably be faster?
Android Studio supports it starting at Arctic Fox 2020.3.1 Canary 15. The related ticket.
Android Studio is Basically InteliJ with the Android plugin enabled by default, so if you're impatient, you can use the M1 build of IntelliJ and enable the Android plugin here.
Currently, this has an issue with the bundled sqlite-jdbc not being compatible with Apple Silicon. To resolve this:
Download sqlite-jdbc 3.34.0 or later at https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/
Go to finder > applications > right click on "Intellij Idea" > "show package contents". Go to Contents>lib and replace the old sqlite-jdbc.jar with the latest downloaded sqlite-jdbc.jar file.
Go to https://github.com/google/android-emulator-m1-preview to get an M1 compatible emulator.
I am using Apple Silicon(M1) Macbook and running Android studio on it. There are 2 things -
Does Android studio work on M1 - YES, it is using Rosette2 to convert android studio binary for ARM. And performance is pretty impressive.
Do i have emulator for M1 - YES, download "Android Emulator M1 Preview2" of emulator from here - https://github.com/741g/android-emulator-m1-preview/releases/tag/0.2
Steps:
Double click the .dmg. It will open folder
Drag and move emulator file to Applications
Right click on emulator file and click open. It will show developer security message. Bypass that from "Security & Privacy" window on Mac.
Right click and Open. And it will launch the emulator.
There are few issues with emulator that will resolve in future releases. You can read more on google page - https://androidstudio.googleblog.com/2020/12/android-emulator-apple-silicon-preview.html
In android studio, you will see this emulator as "Virtual device" in running device drop. Select and run your app.

Android app not compatible for Android SDK built for x86

I've successfully upload android app based on xamarin forms in google play store, it shows the list of my real devices that are compatible but it also shows that all my emulators are not compatible with it. When I debug it from visual studio it runs on my emulator. Now that it's in google play I want to try it in my emulator since I don't currently have my physical device I can't install it due to compatibility. It says not compatible to Android SDK built for x86.

Can we use an Ipad Pro to compile xamarin ios projects with Visual Studio on a windows machine?

The xamarin documentation mention that we need an MacBook connected to the network to be able to compile a xamarin ios project on a windows machine.
However can we use an IPAD Pro for this also ? Otherwise I have to buy a MacBook just to connect to my network ?
https://developer.xamarin.com/guides/ios/getting_started/installation/windows/connecting-to-mac/
No. You need a Mac running a current version of OS X to act as a build host. An iPad Pro does not run OS X.
As Dylan S mentioned, getting a cloud hosted mac (like macincloud.com) would be the best solution for you. From what i've seen they got pretty reasonable plans and their website seems pretty informative

Basic Android App not working on Xamarin Android Player via VS2015

I have been trying to run basic Android App provided by Visual Studio 2015 via XAMARIN Android Player. Program gets build and deployed successfully, yet, App or anything does not appear on screen. Xamarin Player takes more than 20 mins to start and then nothing happens. Find Screenshots as well.
WIthin the Android SDK Manager look under Extras there is an package called Intel x86 Emulator Accelerator (HAXM Installer). Installing HAXM will increase the speed of the emulator when you use the Intel Atom CPU/ABI
Also when creating the emulator device check Use Host GPU for increaded performance.
I ran into few issues with Xamarin Android Player as well. Currently I am using Genymotion Emulator and it is much faster.
Well, Well, Well, I got my thing up and running. Following are the steps I performed:
After installing Xamarin for VS2015, I checked for latest Android SDK via SDK Manager. Got all the necessary updates installed.
Installed Xamarin Android Player and used emulator Nexus 5 KitKat API level 19.
Earlier I was using Nexus 5 Lollipop, was the reason why, it was not working. May be its not fixed for buil yet.
As, described by Mr.Pilatus in above answer, the particular HAXM things surely does help in accelerating emulator.
Got my Android app running.
Thank you all for all the necessary suggestion and guiding my in my baby steps in XAMARIN development. Gracias. NAMASTE!

PhoneGap with Windows or iOS Emulator on Virtualized Desktop

In reading the Adobe PhoneGap documentation they seem to have left out any information about running in a virtualized environment.
As you probably know, you cannot plug a mobile device into a virtualized desktop. I'm not referring to a desktop that is running virtualized software like Parallels(tm) on a Mac. I'm talking about a truly virtualized desktop running on a Linux Xen Host Server.
I'm running Microsoft Windows 2012 Server O/S on a Citrix Xen Desktop v6.5. The host server does not support GPU nor hardware acceleration, and installing Intel's HAXM fails reporting my computer does not support this technology either.
I've found that I can only create an AVD using the ARM versions of the android emulators from the Android SDK. And yes, they are slow.
I did glean some great info from : How can I run Android emulator for Intel x86 Atom without hardware acceleration on Windows 8 for API 21 and 19?.
So now that I have my s-l-o-w android emulator working with PhoneGap ... does anyone know how I can find a Windows and/or iOS emulator that PhoneGap might work with? Is this even possible?
I see all the Windows emulators requiring the .NET framework - rather than any java SDK's and I've heard that you can just forget about iOS development on anything other than a MAC product.
Thanks all!
Mary B.

Resources