Since we released Icenium a couple weeks ago, a few folks have asked me if it could be used to build apps for the new Kindle Fire HD. The simple answer is “Yes.” The Fire HD is an Android Ice Cream Sandwich (v4.0.x) device, and Android (v2.2 and greater) is a supported operating system for Icenium projects.
In order for Icenium to communicate with devices over USB, and deploy and update apps, the device drives for those devices have to be installed and configured on the PC. For Apple iOS devices, the device drivers are included in iTunes. For Samsung devices, most of these are in Samsung Kies. For HTC devices, these are in HTC SyncManager. You get it.
But what about Amazon? They don’t have a utility like this.
Setting up the Kindle Fire (1st Generation) to work with Icenium LiveSync was pretty straight forward – download the USB driver, update an INI file and wham-o, it works. Then Amazon released the Kindle Fire HD, which included an updated operating system (the original Kindle was based on Android Gingerbread – v2.3.4) and it was proclaimed to be unhackable. This meant that for developers it was going to be a challenge to work with it as a development device in any way not prescribed by Amazon. Of course the official guidance is to use the Android SDK, platform tools and Eclipse as your development environment. Yuck.
When you plug in a Fire HD, it installs a driver that enables you to copy media files to and from the device, but it doesn’t enable the Android Debug Bridge (ADB) to access the device to install apps. Icenium LiveSync uses ADB for the communication to Android devices to enable deployment and updates on devices (don’t worry, you don’t need the Android SDK for this, ADB is installed in C:\Users\<usernmae>\AppData\Local\Temp\ when Icenium Graphite is installed).
I bought a Kindle Fire HD 7” and began following the unofficial steps to connect to it as a development device. Turns out it was very troublesome, especially if I refused to download the Android SDK. I found a few blog posts that all pointed back to a forum post on how to root the Fire HD, so I gave it a shot. Unfortunately for me when I followed the steps it didn’t work. No matter what I tried, the correct driver would get installed, and the Fire HD wouldn’t show up in the ADB device list.
Rather than get discouraged, I experimented and got it to work. The steps in the forum post may work for you, but they didn’t work for me right away. The only ADB driver that I could get to install was the Android ADB Interface (not the Android Composite ADB Interface driver as outlined in the forum post). I had to manually install a different driver (a generic USB Composite Device driver), and then the Kindle Fire HD was recognized by ADB.
After that, I connected the Kindle Fire (1st Gen) that I previously had working, and the Android Composite ADB Interface driver magically appeared. I disconnected both Kindle devices and reconnected them and both of updated to the Android Composite ADB Interface driver.
Now both the Kindle Fire 1st Gen and the Kindle Fire HD were visible to ADB…
…which meant that both devices are ready to by used by Icenium LiveSync.
Now when I click on “Run on Device” the app is compiled in the cloud for Android using the Icenium Compiler Service and pushed through Icenium Graphite and over ADB to the devices.
That’s it. Now you can test your Icenium project on either a Kindle Fire or Kindle Fire HD. As soon as the Fire HD 8.9” arrives, I’ll give that a test.
And stay tuned for a video series on Icenium LiveSync called “Getting to 50’ where I will add various devices to see if we can successfully support simultaneous LiveSync to 50 devices.