Back in 2015, I outlined the installation steps, but those steps no longer work and the process is now much easier.
Update: I have updated this post for 2017 here, I recommend that you read that instead.
I am developing a Xamarin application that displays maps. On Android, the map control requires that Google Play Services is installed, but most emulator images do include them. I mainly develop on Windows, so I have been using the great Visual Studio Emulator for Android. I prefer it because it is fast and uses Hyper-V. Other emulators like Xamarin’s or GenyMotion use VirtualBox under the covers which doesn’t work if you have Hyper-V enabled and I have had networking problems when it is installed and my laptop resumes from sleep.
Xamarin has a great article on how to install Google Play Services on their emulators, but it doesn’t work with the Visual Studio Emulator. I then found the solution on StackOverflow written Vijay Sargunam. His solution worked perfectly, but was missing a few steps, so the following are my modifications to his work. (more…)
We are busy preparing the long awaited beta release of NUnit 3.0 that should ship this week, but I’ve also been working on NUnit 3 runners for Android and iOS using Xamarin. It is still early days, but it is working fairly well, so I wanted to show it off and hopefully get some feedback on it. Windows phone will follow shortly and I will update it to support other platforms like Windows Store when Xamarin’s support moves from early preview to beta. (more…)
Everyone knows how S-L-O-W and painful the Android emulator can be when developing. The Intel x86 system images are better, but still a bit slow, so most of us test and debug on actual devices. Still, emulators come in handy. In the past, I came across the Android x86 project and thought it would be a good option, but found the project to not be ready for prime time. With their 4.4 release earlier this month, that has changed.
It still isn’t straight forward to install, so I am going to document the steps and some of the problems I ran into.
First, download the ISO for the 4.4 or newer release Android x86 from the downloads page.
Next fire up Hyper-V Manager. I assume you have some experience creating virtual machines using Hyper-V, so I am just going to outline the setup. If you need more info, Google it or check out this quick-start.
First, we need to make sure that a Virtual Switch is setup to enable networking. If you haven’t already done it for another virtual machine, click Virtual Switch Manager on the right and create a new External Virtual Switch. Name it something like Ethernet and make sure it is linked to your Ethernet card, not your WiFi.
Back in Hyper-V Manager, at the top right, click New, Virtual Machine and name it Android 4.4.
Specify Generation 1 on the next screen, then select the startup memory. You probably want to increase it to 1024 or 2048 MB. Also, select Use Dynamic Memory.
In Configure Networking, select the Ethernet switch we setup previously.
On the Connect Virtual Hard Disk page, you can use the defaults, but you will want to decrease the size of the disk to something like 16 GB.
On the Installation Options page, select Install an operating system from a bootable CD/DVD-ROM and select the ISO you downloaded from Android-x86.
You can now click Next, check out the summary and click Finish to create your new virtual machine.
In Hyper-V Manager, click on your new Android virtual machine and click Connect in the lower right.
This will open the virtual machine in a powered off state. Press the Start button in the toolbar to power up and boot the machine. It will boot to the Live and Installation CD screen. Use the keyboard to scroll down and select Installation – Install Android-x86 to harddisk.
Select Create/Modify partitions,
Use the keyboard to highlight New and press Enter.
Select Primary, then accept the size of the partition, then click on Bootable.
Now, highlight Write, press Enter and type in yes to create the partition. You can now Quit.
You can now choose sda1 Linux Virtual Disk.
Format as ext3. confirm your selection, then wait while the partition is created. It will sit at 0% for awhile, don’t worry, it will go.
Next you will be asked if you want to install GRUB. Say yes.
Also say yes to making /system read-write.
It will now install Android on your virtual disk.
After a successful installation, you will be asked if you want to run Android or reboot. Don’t do either, click on the Turn Off button to shutdown the machine, then go to Media | DVD Drive and Eject the Android X86 ISO. Now press Start to boot the machine.
You will see the GRUB boot screen, then it will start booting Android and go to the initial setup. Step through as you would any Android device with a few small points.
On the Just a sec progress screen, click the screen with the mouse a couple of times so that it doesn’t time out and lock the device.
Skip Wi-Fi setup. Your Ethernet card will act like cell data.
If you have a Google account and want to use it, click Yes, otherwise No.
Once you are done the setup, immediately go to Settings | Display | Sleep and set it to never. When Android x86 locks the screen, you cannot get it to wake up in Hyper-V. If anyone figures out how to do it, please post the solution in the comments.
Debugging in Android Studio
Now for the fun stuff.
Setup the Emulator for Debugging
First, we need to enable debugging on the device. Go to Settings | About tablet and click on the Build number 7 times to enable the Developer Options.
Go back to settings and open Developer Options and turn on USB debugging. I also find it useful to enable Show Touches in the Input section so that you can see the mouse clicks.
Next, go back to settings and into Security and enable Unknown Sources.
In Android, run the Terminal Emulator. The font is probably way too small to see, so go into Preferences and increase the font size.
Back in the emulator window, type netcfg and take note of the IP address of eth0.
Now, back on Windows open a command prompt (with a path to your Android tools) and type adb connect [ipaddress] with the IP address from the device. Now when you do an adb devices, you should see your emulator listed.
C:\src>adb connect 10.224.81.122 * daemon not running. starting it now on port 5037 * * daemon started successfully * connected to 10.224.81.122:5555 C:\src>adb devices List of devices attached 10.224.81.122:5555 device
Debug Your App from Android Studio
Launch Android Studio and load your project. In the configuration dropdown in the toolbar, select Edit Configurations. In the dialog, click on your app configuration and in the Target Device section, make sure it says Show chooser dialog. Close the configuration dialog.
You can now Run or Debug your app and a Choose Device dialog will come up with your emulator listed.
So far, I haven’t been able to adjust the emulator resolution to portrait mode and you can’t rotate the device. From what I can tell, Hyper-V limits the available resolutions to common desktop resolutions. There is also no sound in the emulator and I haven’t been able to get it working with my WiFi card yet, but it is a great option for quick debugging and testing.
That’s all there is to it. If you have any solutions, questions or problems, post them in the comments.
Gas Mileage calculates your vehicle’s fuel economy using your trip odometer. Tracking your fuel usage helps you keep an eye on the health of your vehicle and see how changes to how you drive affects your mileage. Gas mileage is a simple application that does one thing and does it well.
Other mileage tracking calculators require you to add entries every time you fill up and if you forget, it is difficult to catch up. Gas Mileage is different, just remember to reset your trip odometer every time you fill up your tank and then add entries when you remember.
- Enter and display values in any common unit
- List of fill-ups are color coded based on the mileage
- Supports as many vehicles as you like
- Icons for each of your vehicles
- Shows your best mileage, average mileage, worst mileage and the last mileage you entered
- Easily edit, delete or update any of your fill-ups
- Add notes to fill-ups and view them later