<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ukstokes.com &#187; Android</title>
	<atom:link href="http://ukstokes.com/blog/category/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://ukstokes.com/blog</link>
	<description>tech stuff from a tech bloke</description>
	<lastBuildDate>Sun, 29 Apr 2012 19:13:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>HTC, you fail.</title>
		<link>http://ukstokes.com/blog/2011/06/15/htc-you-fail/</link>
		<comments>http://ukstokes.com/blog/2011/06/15/htc-you-fail/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 06:21:38 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[desire]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://ukstokes.com/blog/?p=835</guid>
		<description><![CDATA[I'm the owner of a popular Android phone from yesteryear, the HTC Desire. It's been out for almost exactly one year from today and originally shipped with Eclair (Android 2.1), and was later updated to Froyo (2.2). HTC just announced via facebook that they will not be updating the HTC Desire any longer. Apparently it [...]]]></description>
			<content:encoded><![CDATA[<p>I'm the owner of a popular Android phone from yesteryear, the HTC Desire. It's been out for almost exactly one year from today and originally shipped with Eclair (Android 2.1), and was later updated to Froyo (2.2).</p>
<div id="attachment_841" class="wp-caption aligncenter" style="width: 281px"><a href="http://ukstokes.com/blog/wp-content/uploads/2011/06/desire.jpg"><img class="size-full wp-image-841" title="desire" src="http://ukstokes.com/blog/wp-content/uploads/2011/06/desire.jpg" alt="" width="271" height="224" /></a><p class="wp-caption-text">HTC Desire</p></div>
<p>HTC <a href="http://www.engadget.com/2011/06/14/htc-desire-tries-to-catch-gingerbread-cant-keep-up/">just announced via facebook</a> that they will not be updating the HTC Desire any longer. Apparently it doesn't have enough storage space for Android 2.3 (Gingerbread) + HTC Sense 3.0. There are a few angry ways that users could react to this.</p>
<p>First of all, there is the argument that HTC are only refusing to upgrade the Desire because they want users to upgrade to new handsets. Extending the lifetime of their old phones doesn't make them any money. This is at the cost of customer satisfaction though, and it's sad because most users will have 2 year contracts, and like me, had hoped that updates would at least carry on for the length of your contract since this was one of HTC's flagship phones. I've owned my phone for a whole year already, but I would be pretty pissed off if I had bought it recently to then discover HTC had abandoned it. What version of Android will be out one year from now, and what will the resale value of your Desire be if the Android version is 18 months out of date?</p>
<p>Secondly, the Nexus One, which is basically a Desire in a different shell with a trackball, is quite capable of running Android 2.3. Google pushed it out a few months ago.  So it seems to be clear that the problem is HTC Sense, it has become too bloated and no longer fits on the small storage of the Desire. In an ideal world they should give us the upgrade option of Android 2.3 without Sense.</p>
<p>Thirdly, there are TONS of Android 2.3 roms that include HTC Sense on <a href="http://forum.xda-developers.com/forumdisplay.php?f=628">XDA</a>. The fact that these exist and work perfectly well as a daily rom helps to argue the point that HTC's reasons for abandoning the Desire are a load of crap. Whether you root or not, <a href="http://www.youtube.com/watch?v=mIh5JJp_5J0">you can see that this phone is capable of running Gingerbread</a>.</p>
<p>Finally, there are the <em>rooters</em>. They don't care; they have been running Android 2.3 on the Desire for 6 months already. But it's been a tough journey - HTC went out of their way to lock the bootloader and the nand (storage), to make flashing custom roms difficult. Without groups like <a href="http://alpharev.nl/">AlphaRev</a> we would not have freedom to install whatever we like on our Desires and we would be chained to Froyo for the lifetime of our phones. It's sad because shouldn't have to be this way. Normal users will not hack their phones to run <a href="http://www.cyanogenmod.com/">CyanogenMod</a>. They will be stuck on Froyo for the remaining lifetime of their phones. They won't get any of the new features of Android, bug fixes, or <a href="http://crave.cnet.co.uk/mobiles/google-calendar-bug-plagues-android-phone-users-50004068/">security updates</a>, and to me that just seems wrong.</p>
<p><strong>Update:</strong> Apparently <a href="https://www.facebook.com/htcuk/posts/225857300777092">HTC will bring Gingerbread to the Desire</a> after all. We'll see.</p>
]]></content:encoded>
			<wfw:commentRss>http://ukstokes.com/blog/2011/06/15/htc-you-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cycle London, with Android</title>
		<link>http://ukstokes.com/blog/2011/02/18/cycle-london-with-android/</link>
		<comments>http://ukstokes.com/blog/2011/02/18/cycle-london-with-android/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 17:22:29 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cycling]]></category>
		<category><![CDATA[Fitness]]></category>
		<category><![CDATA[London]]></category>

		<guid isPermaLink="false">http://ukstokes.com/blog/?p=778</guid>
		<description><![CDATA[A few weeks ago I started using the London cycle hire scheme, aka 'Boris Bikes'. My journey to work previously included a 15 minute journey underground from Victoria to Embankment, but now I do it overground on a bike which is considerably more enjoyable (provided you don't mind cycling in heavy traffic) as well as [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Skating Android" src="http://ukstokes.com/android/images/skate1.gif" alt="" width="60" height="69" />A few weeks ago I started using the London cycle hire scheme, aka 'Boris Bikes'. My journey to work previously included a 15 minute journey underground from Victoria to Embankment, but now I do it overground on a bike which is considerably more enjoyable (provided you don't mind cycling in heavy traffic) as well as having some health benefits. The bikes are freaking heavy and only have 3 gears so you can't exactly go supersonic, but it's a cheap and more convenient alternative than bringing in a folding bike on the train. At the time of writing this, there are 4 location aware apps in the Market that can help you find nearby bike hire locations and see how many bikes and docks are available. Clearly this can save some wasted trips to docks with no bikes, or no slots to park your bike. I've been test driving these apps and here is my take on them.</p>
<p>1. Cycle Hire Widget - <a title="Market Link" href="https://market.android.com/details?id=com.littlefluffytoys.cyclehire">Market Link</a></p>
<p>This is quite a cool little app, despite the name there is more to it than just a widget. The widget hides under a homescreen icon of an Android riding a bike. When tapped, it reveals the directions of the 3 nearest docks, colour coded, the colours showing whether you can get a bike or a slot at the locations. This is very handy if you know your way around and can know which 3 docks it's pointing to.</p>
<p style="text-align: center;"><a href="http://ukstokes.com/android/images/widget1.png"><img title="Widget1.png" src="http://ukstokes.com/android/images/widget1.png" alt="View of home screen widget" width="120" height="200" /></a> <a href="http://ukstokes.com/android/images/widget2.png"><img title="Widget2.png" src="http://ukstokes.com/android/images/widget2.png" alt="Map view" width="120" height="200" /></a><a href="http://ukstokes.com/android/images/widget2.png"> </a><a href="http://ukstokes.com/android/images/widget3.png"><img title="Widget3.png" src="http://ukstokes.com/android/images/widget3.png" alt="List view" width="120" height="200" /></a><a href="http://ukstokes.com/android/images/widget3.png"><br />
</a><em>Home screen widget, map view, and list view</em></p>
<p>You can also view the docks in a list view, which is a relief as waiting for a) the map to build and b) the location/gps lock can be a bit tedious. I also discovered you can add docks to a list of favorites, if you pay for the premium version. I will probably do this as I am quite a fan. In terms of looks and usability, it rates quite high. The interface is obvious and easy to use. The dock data also seems to be accurate and up to date.</p>
<p>2. SpotCycle - <a title="Market Link" href="https://market.android.com/details?id=com.eightd.android.spotcycle">Market Link</a></p>
<p>I quite like SpotCycle, this is the one I've ended up using the most over the last few weeks, mostly because of the favorite docks lists. I guess most people in the cycle scheme are like me and visit the same docks every day. I've found going to a list of these is always going to be quicker than opening a map view, waiting for the map data to load, waiting for location and GPS lock, etc. I have to admit though, I had to spend some time to figure out how to create the groups for storing favorites. Those options are hidden away in a place where you don't expect.</p>
<p style="text-align: center;"><a href="http://ukstokes.com/android/images/spotcycle1.png"><img title="spotcycle1.png" src="http://ukstokes.com/android/images/spotcycle1.png" alt="Favorites" width="120" height="200" /></a> <a href="http://ukstokes.com/android/images/spotcycle2.png"><img title="spotcycle2.png" src="http://ukstokes.com/android/images/spotcycle2.png" alt="Map view" width="120" height="200" /></a><a href="http://ukstokes.com/android/images/spotcycle2.png"><br />
</a><em>SpotCycle: Favorites and Map views</em></p>
<p>The map view is pretty decent, it shows you circles of varying sizes and shades of red, to denote availability of bikes or docks. The data has always been up to date with this app, I've never turned up and been completely surprised at how wrong it was. A few criticisms: sometimes it stays on the splash screen for an unacceptable long time. Not sure what it's busy doing, maybe getting location data or refreshing the lists, but it's quite annoying. It also frequently says "Can't get cities list, make sure you are connected to the Internet" - well, it's a smartphone, I am always connected to the Internet! Another annoyance is it throws errors into the notification area when it can't update the dock data, to be honest I don't really want to see those. I would prefer it if could just try again later and keep quiet about it.  Over all I like it though, it's very configurable and despite annoyances it's reliable, and offers a lot of features. Being able to keep lists of favorites is a big win.</p>
<p>3. London Cycle Hire Live - <a title="Market Link" href="https://market.android.com/details?id=com.mobspot.cycle">Market Link</a></p>
<p>Your mileage may vary, but I didn't really have success with this app. It only has 2 stars in the Market which I guess is a fairly accurate measure of it's quality. It worked sometimes, but usually crashed with the error in the screenshot below. I have had apps Force Close on me before, but never seen anything like this.</p>
<p style="text-align: center;"><a href="http://ukstokes.com/android/images/london_cycle_hire.png"><img title="london_cycle_hire.png" src="http://ukstokes.com/android/images/london_cycle_hire.png" alt="Aw .. snap!" width="120" height="200" /></a><br />
<em>Holy crap.</em></p>
<p>This may be worth coming back to if the dev is still working on it, I didn't spend much more time checking it out though.</p>
<p>4. Boris Bikes Live - <a title="Market Link" href="https://market.android.com/details?id=com.errayane.android.bcs">Market Link</a></p>
<p>I like the eye-catching icon of our beloved Mayor of London riding the bike, but sadly you don't get a good first impression when you open this app. The landing screen is ugly as hell, the icons are lousy. Putting its initial appearance to one side though, the functionality should be pretty good. It basically offers a map, a list of docks ordered by proximity, list of favorites, and a timer (which is not yet implemented) so you can keep an eye on your journey times (because journeys that take less than 30 minutes are free). The presentation in the rest of the app is fine, and from the list views you can select a dock and get directions to it.</p>
<p style="text-align: center;"><a href="http://ukstokes.com/android/images/boris1.png"><img title="boris1.png" src="http://ukstokes.com/android/images/boris1.png" alt="List view" width="120" height="200" /></a> <a href="http://ukstokes.com/android/images/boris2.png"><img title="boris2.png" src="http://ukstokes.com/android/images/boris2.png" alt="Map view" width="120" height="200" /></a><a href="http://ukstokes.com/android/images/boris2.png"><br />
</a><em>Boris Bikes Live. It's got a nice icon.</em></p>
<p>With those functions it should really tick the boxes, but I seem to have issues with the bike data being out of date. The last thing you need to to turn up to dock your bike and unexpectedly find all the slots are taken. The update interval is not configurable so I don't think there's much that can be done about it. For that reason and because of the lack of aesthetics, I kept falling back to SpotCycle.</p>
<p>5. London Cycle Hire - <a title="Market Link" href="https://market.android.com/details?id=info.ifuller1.cycleHire">Market Link</a></p>
<p><a title="Market Link" href="https://market.android.com/details?id=info.ifuller1.cycleHire"></a> This is a paid for app. It's only £1.50 but to be honest is not really worth it. Although it's quite well presented, it really just consists of a map with the docks overlayed over the top, but they aren't colour coded or anything like that so at a glance you really can't see any helpful data apart from the location. Clicking on the dock locations then shows you the live data and a button which plots a route there from your current location.</p>
<p style="text-align: center;"><a href="http://ukstokes.com/android/images/cycle-london.png"><img title="cycle-london.png" src="http://ukstokes.com/android/images/cycle-london.png" alt="Another app" width="120" height="200" /></a><br />
<em>More of the same, but more expensive.</em></p>
<p>I emailed the dev and they said they are actively working on this app and they intend to release an updated version which has user maintained lists. Until then I guess I will use something else.</p>
<p><span style="text-decoration: underline;">Conclusion</span></p>
<p>My testing is by no means exhaustive, but so far I reckon SpotCycle and Cycle Hire Widget are the best. Cycle Hire Widget probably has an easier to use interface, but once you have SpotCycle set up with your favorite groups, you will rarely need to use anything else.</p>
]]></content:encoded>
			<wfw:commentRss>http://ukstokes.com/blog/2011/02/18/cycle-london-with-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compile your own droid &#8211; Part 1a</title>
		<link>http://ukstokes.com/blog/2010/01/15/compile-your-own-droid-part-1a/</link>
		<comments>http://ukstokes.com/blog/2010/01/15/compile-your-own-droid-part-1a/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 21:48:42 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ukstokes.com/blog/?p=570</guid>
		<description><![CDATA[Here's a confession. My inner geek woke me up the next morning at 3:00 wondering whether my android build had completed. In the end sanity took hold again, and I went back to sleep. Quite lucky really as when I checked in the morning, the java compiler had crashed with a meaningless error. After trying [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-565" title="android-logo" src="http://ukstokes.com/blog/wp-content/uploads/2010/01/android-logo.jpg" alt="android-logo" width="72" height="80" />Here's a confession. My inner geek woke me up the next morning at 3:00 wondering whether my android build had completed. In the end sanity took hold again, and I went back to sleep. Quite lucky really as when I checked in the morning, the java compiler had crashed with a meaningless error.</p>
<pre class="brush: bash; title: ; notranslate">An exception has occurred in the compiler (1.5.0). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport)  after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report.  Thank you.

java.lang.AssertionError: writePool E

at com.sun.tools.javac.jvm.ClassWriter.writePool(ClassWriter.java:513)
at com.sun.tools.javac.jvm.ClassWriter.writeClassFile(ClassWriter.java:1333)
at com.sun.tools.javac.jvm.ClassWriter.writeClass(ClassWriter.java:1211)
at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:325)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:474)
at com.sun.tools.javac.main.Main.compile(Main.java:592)
at com.sun.tools.javac.main.Main.compile(Main.java:544)
at com.sun.tools.javac.Main.compile(Main.java:58)
at com.sun.tools.javac.Main.main(Main.java:48)
make: *** [out/target/common/obj/APPS/VpnServices_intermediates/classes-full-debug.jar] Error 41
make: *** Waiting for unfinished jobs....</pre>
<p>After trying the most recent update of Java 1.5 I made a cry for help in the XDA forums. The answer seemed simple enough, try JDK1.6. I installed it and modified /home/ben/mydroid/build/core/main.mk, commenting out the lines that checked for Java 1.5. Then after a "make clean", and another "make -j2" (-j4 made my laptop burn up ...) it was building again, and this time finished!</p>
<p>I make a nandroid backup and wiped to factory settings (using Amon_RA's recovery image) flashed the resulting boot.img and system.img to my phone using fastboot:</p>
<pre class="brush: bash; title: ; notranslate">fastboot flash boot boot.img
fastboot flash system system.img
fastboot reboot</pre>
<p>Rebooted my device, and it worked! A very basic system though, no Market or Google Apps.</p>
<p>Next steps ... getting root, creating an update.zip, making my own kernel with compcache ... the list is actually endless, it's nice just to get this far.</p>
<p>In fact next step could be building from Cyanogen's Eclair sources. Will give it a go and post if it works...</p>
]]></content:encoded>
			<wfw:commentRss>http://ukstokes.com/blog/2010/01/15/compile-your-own-droid-part-1a/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Compile your own droid (for HTC Sapphire) &#8211; Part 1</title>
		<link>http://ukstokes.com/blog/2010/01/13/compile-your-own-droid-for-htc-sapphire-part-1/</link>
		<comments>http://ukstokes.com/blog/2010/01/13/compile-your-own-droid-for-htc-sapphire-part-1/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 23:07:37 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ukstokes.com/blog/?p=555</guid>
		<description><![CDATA[I thought I'd have a go at building Android 2.0.1 from source for the HTC Magic (AKA MyTouch 3G and HTC Sapphire). Mine is the 32B board from UK Vodafone - Google branded. Current most recent firmware from HTC for the device is Android 1.6, although Android 2.0.1 source code is available from Google. Android [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-565" title="android-logo" src="http://ukstokes.com/blog/wp-content/uploads/2010/01/android-logo.jpg" alt="android-logo" width="72" height="80" />I thought I'd have a go at building Android 2.0.1 from source for the HTC Magic (AKA MyTouch 3G and HTC Sapphire). Mine is the 32B board from UK Vodafone - Google branded. Current most recent firmware from HTC for the device is Android 1.6, although Android 2.0.1 source code is available from Google. Android 2.0 roms are already available from xda-developers.com, but I wanted to see how hard it was to do it myself. Also if I'm successful this will be a place where all information will be in one place.</p>
<p>This is not rocket science by the way - this is my experience in following the guides from Google and HTC on Ubuntu 9.10. All of this information is already out there, just not necessarily all in one place in this format or adapted for this environment.</p>
<p>Building on Windows is not supported. I'm using Ubuntu 9.10 (32bit) on my laptop. Java JDK 1.5 is required, using 1.6 is supported but you have to make additional steps changing instances of "1.5" to "1.6" in makefiles. 64bit Ubuntu users may want to follow a different guide, not sure if any differences here could cause a build to fail.</p>
<p><strong>Setting up your environment ready for development</strong>, install the following packages (<a href="http://source.android.com/download">reference</a>):</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zipcurl libncurses5-dev zlib1g-dev valgrind</pre>
<p>In Ubuntu 9.10 you can't get Java 1.5 using apt any more. I downloaded it from java.com and installed it in /usr/local/java/jdk1.5.0. Then:</p>
<pre class="brush: bash; title: ; notranslate">ln -s /usr/local/java/jdk1.5.0/bin/java /usr/local/bin/java</pre>
<p>If you try "java -version" it should tell you "Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)". Finally, edit your ~/.bashrc using vim and add the following to the end of the file:</p>
<pre class="brush: bash; title: ; notranslate">export JAVA_HOME=/usr/local/java/jdk1.5.0/
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$PATH:/home/ben/bin:$JAVA_HOME/bin</pre>
<p>Reload your .bashrc file using ". ~./bashrc".</p>
<p><strong>Setting up repo</strong> - a Google tool to manage your Android source code repository:</p>
<pre class="brush: bash; title: ; notranslate">cd ~
mkdir bin
curl http://android.git.kernel.org/repo &gt;~/bin/repo
chmod a+x ~/bin/repo
mkdir mydroid
cd mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair</pre>
<p>Answer the questions where prompted and then fetch the source code using:</p>
<pre class="brush: bash; title: ; notranslate">repo sync</pre>
<p>This bit takes a while ... when finished:</p>
<pre class="brush: bash; title: ; notranslate">gpg --import</pre>
<p>Paste in the GPG key at the bottom of <a href="http://source.android.com/download">this page</a> and then press ctrl+D. Now we need the HTC binaries and kernel source to build specifically for the Sapphire.</p>
<pre class="brush: bash; title: ; notranslate">wget --referer=http://developer.htc.com/google-io-device.html http://member.america.htc.com/download/RomCode/ADP/signed-google_ion-ota-14721.zip?

# line commented -- wget --referer=http://developer.htc.com/ http://member.america.htc.com/download/RomCode/Source_and_Binaries/sapphire.hep-357975db.tar.bz2</pre>
<p><strong>Now to do the final bit of setup</strong> and start the build (<a href="http://source.android.com/documentation/building-for-dream">reference here</a>):</p>
<pre class="brush: bash; title: ; notranslate">cd ~/mydroid/vendor/htc/sapphire-open
./unzip-files.sh
cd ~/mydroid
. build/envsetup.sh
lunch aosp_sapphire_us-eng</pre>
<p>Yes that is supposed to say "lunch", not "launch". Now the build can be started! One final thing is required to stop the build from crashing (<a href="http://www.mail-archive.com/android-porting@googlegroups.com/msg08157.html">reference</a>):</p>
<pre class="brush: bash; title: ; notranslate">cd ~/mydroid/external/webkit
git cherry-pick 18342a41ab72e2c21931afaaab6f1b9bdbedb9fa</pre>
<p>Now we can start the build:</p>
<pre class="brush: bash; title: ; notranslate">cd ~/mydroid
make -j4</pre>
<p>Bah, I've got an error: "Your version is: /bin/bash: javac: command not found.". There's a problem with my path (which I have corrected above already).</p>
<pre class="brush: bash; title: ; notranslate">export PATH=$PATH:$JAVA_HOME/bin</pre>
<p><strong>Now it's building</strong>. The HTC website advises this is now a good time to make a cup of tea, or take a nap. I'll revisit this tomorrow I think!</p>
]]></content:encoded>
			<wfw:commentRss>http://ukstokes.com/blog/2010/01/13/compile-your-own-droid-for-htc-sapphire-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

