Android Storage

The new DROID phone only offers 256 MB for app storage, as Taylor Wimberly points out:

The Motorola Droid will be the most powerful Android phone to date when it launches on November 6, 2009. However, the device still features the same shortcomings of all other Android phones. The Droid ships with a 512 MB ROM which contains only 256 MB available for app storage.

Fair enough. From this starting point, the article quickly devolves into speculation and FUD:

Google does not support installing apps to the SD card (and likely never will), so developers are limited in what they can create.

I question the “and likely never will” claim. Google knows about the issue and I believe they will eventually resolve it. It’s been discussed in public Google forums, and I think people on the outside are assuming the worst. I think it is far more plausible that the Android team has limited resources and this is a very hard problem to solve correctly.

Limited In What We Can Create?

I also question the “…so developers are limited in what they can create.” portion of the above claim. He goes on:

Have you seen all the awesome iPhone and iPod Touch games? Hardly any of them would fit on an Android phone. It is not uncommon for popular titles to easily exceed 100 MB. For example, the game Myst takes up a whopping 727MB.

The solution is easy. Make your app small and download textures and graphics separately to the SD card.

In Summary…

  1. We all want the ability to download apps to the SD card
  2. Google knows about the issue and understands its importance
  3. Google has not officially committed to fixing the issue, or declared a timeline
  4. Without an official Google statement, many members of the Android community assume the worst

Eric Burke Says:

I’ll comment on my own post first. The Cyanogen Mod does allow app installation to an SD card. The procedure requires formatting and some ability to follow (sometimes cryptic) instructions, but it is technically possible. The instructions I read included all sorts of warnings about data loss, damaging your SD card, or even bricking the phone. If Google were to support this some day, their solution would have to be far easier and more robust.

Dennis Says:

“The solution is easy. Make your app small and download textures and graphics separately to the SD card.”

Doesn’t this mean that now you are potentially distributing 2 required parts of your app through different sources (Marketplace and some web server)? Seems less than ideal – now you have two things that could break, you have to worry about the user modifying/moving/removing your content off the SD card, the possibility of the SD card either not being there or full, and keeping things in sync for multiple versions potentially.

Contrast to the App Store model on the iPhone where everything is distributed together and stored in a single file when stored in iTunes.

Google definitely needs to address this. I’m sure that things like the card being removed and insuring app integrity are just a few of the issues that they need to figure out how to do correctly. But until then, the handset makers need to be putting at least a GB of app space on these devices. Ideally more.

Only 256MB of room for apps is a major showstopper.
The onscreen keyboard is almost as bad as the physical.
Multimedia is awful on the Droid.

Kevin Dill Says:

Before the Android came out we saw this would be a major issue. A powerful multimedia computer in the hand with no reasonable storage space. That’s why we created Android Storage. I think the bottom line is companies are cutting costs vs. considering what the consumer wants, which is more storage on the phone. It makes no sense that there is such limited storage on these smartphones when the masses will/are eventually using them more than the PC. That’s why Dell and HP are getting into the smartphone business.
If they don’t improve the storage space on the phone, we hope to develop even better technologies for remote storage married to mobile apps. With 4G coming, it will be an even better option to realize that.

Cooper Says:

I think one thing that gets overlooked in this discussion is the only option for data storage on the iPhone is *inside the app space*. Android apps have a whole SD card they can place assets on that are outside the 256MB. People mention Myst on the iPhone is 800MB. Sure, but I doubt there is 800MB of *code* there. It is maybe a few hundred K of code and a TON of video, audio and image assets, and there is not reason those assets can’t be installed on the SD card of a current android phone.

Dennis Says:

@Cooper -

Sure you can work around this on Android, but think about it from a usabilty standpoint. The memory card can be removed at any time. Now your app has to worry about if it’s assets are actually available. iPhone developers never worry about that generally. If the app is installed on the phone, so are the assets.

Sure, android could say if the memory card with the app assets isn’t available, then you can’t run the app. But then that leaves the issue of what happens when a user pops the memory card in the PC, sees 800MB of files, and then removes some of them? Now the app has to deal with a partial installation. Other phones treat the application as a single unit as far as the user is concerned – even if the app is made up of hundreds of files internally. But by placing assets on the SD card and the app on the phone memory, there is no longer a single entity for the app.

I’m pretty sure this is part of the reason Apple hasn’t added any memory card slot to the iPhone. There are others as well, but UX in this area is easy to screw up. A lot of what ifs that can easily go away if you just put a ton of memory in the device and call it done.

I think those phones cost too much anyways. Droid is now the poster boy for Android, and it’s sales are being regarded as a volley in the Android vs. iphone war.

architek mobile development Says:

I agree with Dennis. The success of the iPhone is not just about the brilliant hardware its all about the user experience.

Downloading the data for a large app separately opens up a huge can of worms.Not only is there the extra development overhead, and complexity of protecting against the kind of errors mentioned by Dennis, bu but there is the complexity of doing this on a variety of hardware platforms which may have different capabilities and performance characteristics for the storage functionality.

I’m currently working on an android app that uses embedded video clips, the 200Mb limit (remember this is for ALL programs not just mine) is a serious problem and may call the whole idea into question.

This is a massive can of worms. The app needs to be used offline. So it looks difficult to build on Android at this point.