Installing Google Play Services (GAPPS) on Visual Studio Android Emulators

2015-10-28 12_39_14-XDEUpdate: 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…)

Read more

NUnit 3.0 Test Runner for Android and iOS

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…)

Read more

Using Android-X86 as an Emulator in Hyper-V for Windows

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.

Installation

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.

Virtual Switch Manager

Back in Hyper-V Manager, at the top right, click New, Virtual Machine and name it Android 4.4.

New Virtual Machine Wizard

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.

New Virtual Machine Wizard - 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.

New Virtual Machine Wizard - Connect Virtual Hard Disk

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.

New Virtual Machine Wizard - Install Options

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.

Connect to Virtual Machine

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.

Boot to install

Select Create/Modify partitions,

Create partitions

Use the keyboard to highlight New and press Enter.

New Partition

 

Select Primary, then accept the size of the partition, then click on Bootable.

Bootable Partition

Now, highlight Write, press Enter and type in yes to create the partition. You can now Quit.

Write partition

You can now choose sda1 Linux Virtual Disk.

Choose partition

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.

ext3

Next you will be asked if you want to install GRUB. Say yes.

Grub

 

Also say yes to making /system read-write.

system

It will now install Android on your virtual disk.

Installing

 

2014-08-19 16_24_13-Android 4.4 on XPS15 - Virtual Machine Connection

 

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.


Welcome

 

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.

2014-08-19 16_32_03-

 

Skip Wi-Fi setup. Your Ethernet card will act like cell data.

WiFi

If you have a Google account and want to use it, click Yes, otherwise No.

Google

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.

Sleep

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.

Connect ADB

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.

netcfg

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.

Choose Device

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.

Read more

Gas Mileage Android App

Gas MilieageGas 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.

Features

  • 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

Get it on Google Play

Read more