Do Not Let Your Nexus Device Fill Up the Disk

A few weeks ago my Nexus 7 tablet (the original release) started slowing down a bit. I had no idea why, but it was still mostly useful – until I stuffed heaps of video onto it for a trip overseas. After that it slowed to a crawl – almost completely unusable.

Some Googling indicated the problem was probably related to the storage being filled, and then finally I stumbled across this article which confirms many people have been suffering from this same issue.

The short version is that the original Nexus devices/Android operating systems don’t properly TRIM the SSD. This is the sort of techno-speak I would have reveled in learning all about when I was younger, but now all I care about it how to make this thing work again. Basically, it manifests itself in super-slow disk performance – you can see really high IOWAIT if you use something like ‘top’, or if you run a benchmark you’ll see really bad performance like this:

2013-12-02 19.05.10 - Copy

As of some recent Android release, it is supposed to automatically do this TRIM stuff once every 24 hours – but if it’s doing it on my device, it’s not making any difference.

It seems there are only two real options:

1) Factory reset.

2) Root the device and run the TRIM manually using something like LagFix.

Both of these options are pains in the ass to various levels, but the device is basically unusable in this state. I ended up doing the factory reset, thinking it would be less of a hassle.This seemed to fix it up and now I’m looking at the following speeds – note the increase in sequential write:

2013-12-03 18.16.02 - CopyHowever, if you can avoid it, it seems safest to not let your devices drop below ~3.5GB free (at least on a 16GB device).

Recovering Tracks from Broken App ‘My Tracks’ on Android

I was in Europe recently and recorded a bunch of walking tracks on my Android phone using the very handy application My Tracks from Google. Unfortunately there’s a known problem at the moment where the application won’t start if the phone crashes or loses power while recording – the current theory is that the SQLite database gets corrupted preventing it from loading properly. If you load My Tracks and it just sits there with a black screen and you eventually get the ‘force close’/’wait’/’report’ dialog, you’re probably experiencing this problem.

It is being actively discussed on the My Tracks development mailing list at the moment as several people have been bitten by this and are wondering how to get save their recorded tracks. You can fix the problem simply by deleting all your data, which might work if you don’t care about losing your tracks, but if you’re like me you probably want to hang on to it.

Fortunately a clever cookie by the name of Terry just figured out a workaround to this problem – it involves installing a new application called Locus Free which can (somehow) access your recorded My Tracks tracks, and then export them to KML or GPX.

Based on his instructions I was able to successfully recover all of my recorded tracks, which I’m pretty happy about. Here are the steps I used:

  1. Install Locus Free from Marketplace
  2. Go into Phone Settings->Applications and move Locus Free to SD card (I did this so it was easier to access the exported files; I wasn’t sure how else to get them easily)
  3. Load Locus Free
  4. Close the first dialog that pops up
  5. Click the second icon from the top right (cylinder with a floppy disk) to open Data Manager
  6. Click ‘Export data’ on the Data Manager screen
  7. Select ‘tracks’ from the small popup
  8. Change export type to your preferred option (KML for Google Maps/Earth, for example)
  9. Hit Export
  10. Access your SD card via your normal mechanism (I use ES Explorer) and browse to /Locus/export and you’ll find the files.

Update 2011-08-05: Gunnar from the MyTracks mailing list also points out the following way to retrieve your data:

However I found that an even quicker way to recover my recorded tracks, including the one that I was recording when the phone died,
was simply to install MyTracks v 1.1.4 over the current v 1.1.7. No uninstall, simply download 1.1.4 and save it to SD-card, then install it from there by double-clicking.

I haven’t found any limitations with 1.1.4 compared to 1.1.7 so I happily use 1.1.4 for recording my tracks, including the heart-rate from my Zephyr HxM.

The v1.1.4 version he mentions is available for download here.