
I was Tweeting with Michael Gartenberg last night about all the great Android games. After all, the Android Marketplace has so many great titles like Civilization Revolution, Canabalt, iShoot, and… oh… wait…
All kidding aside, the reason there is such a dearth of great games has to do with some programming choices in Android itself and it’s a problem that can – and should – be fixed before the Droid comes to market this November.
The real culprit behind the lack of Android apps isn’t lack of developer adoption or a difficult SDK – it’s the ludicrous 256MB limit on app storage for most current Android phones and Android 2.0 itself. The OS also does not support the installation of apps on removable storage like SD cards, further ruining chances for more effusive and expansive titles. Considering most apps are in the 10MB range we’re talking a max of 25 apps on a good day and about 5 on a bad one.
This limitation has existed since Android 1.0 and continues in Android 2.0. As this enlightening post notes, Myst for the iPhone runs 727MB, a little under a gigabyte. That’s right: Droid doesn’t even have enough space to allow you to render the well let alone let you into the rocket.
The Droid has 512MB of memory with half of that available to apps. More internal storage is definitely in order if Android can’t support external storage – an understandable move due to potential data corruption during an unexpected card removal – it definitely needs a bit more space under the hood in future models.

What makes this even more absurd is that this is coming from a company claiming that it is the future of computing…. What a joke…
I agree 100%.
WTF?
Google.
WTF?
Oh they are. It’s just that it’s not that important for v2.0 to have app storage access on Eclair yet.
In general most applications you use – unless they’re graphically intensive like some games (and who the hell still plays Myst?) – will take 1 or 2MB to install so it’s not going to be a massive issue for most people.
However, it’s still a weakness and one that’s bizarre – most of the other major mobile operating systems have been able to store apps in variable locations for years.
Even the most simple games are typically over 2MB. Sometimes keeping simple games under 10MB is even a challenge. Art and sound fx add up quick!
Average Android game is about four megs and higher than that if you just count the good ones like Jarcade and Jewellust.
Android are rubes for setting up their OS to constrain this way.
True, but I was under the impression Android could access data from the SD as long as the core program for the app was on the main memory.
Isn’t that how maps works?
Great post, John. Thanks for bringing attention to this topic – I feel that Android dev is not getting enough attention, especially specific problems preventing Android from becoming #1.
Keep nagging. They will listen.
What about piracy concerns?
The app could install just secure keys and header data to the device and the rest of the data to card- at least give the option for it. Jeesh.
Yeah I don’t really get why so every company who makes Android phones is skimping so horribly on the internal memory. At least give us 2GB, it’s really a disgrace.
However, most apps are actually very small. I have installed over 30 3rd party apps and not one of them is over 1MB. Most of them are just a couple hundred KB. So it’s not as big a deal as you may think for most things – but it definitely is a big deal for games.
Flash memory is so cheap – it would add like 5 cents to the cost of the phone to throw in 2GB of internal memory. I love the fact that you can expand the total memory to however big you want with the SD card, but it’s so lame that you can only use that for your own stuff (music, etc) – not apps.
The point is that in order to have apps over that limit, it has to be possible. That is many are developing on the iPhone, because the possibilities exist. Media and games require additional allocations.
It’s not that the OS can’t support it. If you root your phone, you’re more than welcome to run apps off your sd card. It’s weeelll worth the effort to install Cyanogen for that reason alone.
That aside, until that limitation is fixed for the official Android build, we won’t see any cool games, I suppose. A very disappointing weakness for a wonderful OS.
good point but i think the words “if you root your phone” don’t go over well with the casual user.
That was essentially my point for the second paragraph… till the general users are able to take advantage of the cooler games, we won’t see more ambitious games on Android.
Again, a plug to find a local propeller head to root your phone for you, the SNES emulator opens up a world of entertainment. :)
No different from the hordes of casual users jailbreaking their iPhones.
Only a small percent of iPhone users are jailbroken. It’s a significant amount, but only a small percent of total users.
iPhone jail breaking is FAR more stable and standardized to one device. Not to mention people have been bricking Cliqs trying to root and people will not risk it with a $700 phone like Droid.
Market will grow with great apps when a solution is part of the OS and SDK.
“If you root your phone…”
You mean even the mighty “free” and “open” Android has restrictions that can’t be solved without “jailbreaking” the phone? Huh.
And I suspect the limitation also has to do with at least some attempt to minimize piracy by preventing apps installed on SD cards from being passed around like popcorn.
That’s actually missing the point. You can install applications from anywhere. You can download an application package file from your browser on the phone then install it just like you were on a regular computer, without rooting your phone.
Rooting lets you get around some of the design decisions that the Android team made… such as not supporting running apps off your sd card, for one.
Like jailbreaking gets around some of the “design decisions” that Apple made with the iPhone.
No, that was my major point.
I think Josiah is saying that Google isn’t doing it to block certain apps from getting installed on the phone, unlike the situation with the iPhone and the jailbreaking scene. Blocking certain apps from phones would qualify as the most “closed” behavior.
The apps to SD is more of a technical limitation (again as pointed out, how do you handle the situation where users remove the SD card). Developers can work around the issue by downloading data (for example music, texture files) onto the SD card when loading an app. The app will still be installed on the phone, but all the other resources besides from the executable is on the SD card; this works around the removal issue because you only have data on the SD card and no important executable files. This is what Google officially recommends.
Of course it would be ideal for Google to provide better support for this. First is having free server space for developers to store app data files. Second is adding support for downloading of data files onto the SD card during installation and also handling error conditions, for example removal of the SD card.
As for a general comment on the piece, I think it was a conscious decision by Google to let app space be so small. Remember, Android is supposed to reach all types of phones. Not every phone will be a high spec phone where a couple GB of memory is no problem. Most phones will have only a couple hundred mb to keep costs/size down. In the end, I don’t think the issue is unsolvable without apps to SD; Google just needs better support for having app data on the SD card.
Good post. Thanks. Some of the iPhone cult members arent so tech savy.
Good article… BlackBerry has the same issue & barrier with how much internal memory they allow + not bringing the capability to install and run from a memory card.
RM
Follow me on twitter @wheelhousedigit
Wait– the Droid only has 512MB of memory?
Can you play music, movies, podcasts from the SD card? How do I sync unwatched episodes?
Calm down, John. I am sure you can use the external SD card for music and video :)
The internal memory is just for the OS and apps. The SD card is for everything else – music, etc. When you plugin your phone it shows up as a disk drive that you can just copy music or whatever onto. I’m not 100% sure the Droid supports “disk mode” but all the other phones do I’m pretty sure.
Not even 512. About 200 is left after 2.0 is installed.
Read the hole story here – with lot of comment , as here..
http://androidandme.com/2009/10/news/google-fails-to-address-app-storage-issue-with-droid-and-android-2-0/
Indeed it would be great to run apps off the SD, but the post here should really also mention that it is EASY for developers to put the assets on the SD and the main app doesn’t need to be nearly so big. (as noted in many comments in the linked blog post)
Frankly, it is an issue but not a huge one and not worthy of the ‘OMG’ type of rant in this post.
What’s funny is Berge below IS a developer and says it’s a hard problem.
On a ‘Root’ Android handset Apps2SD not only makes it possible to store you applications on the SD card, it makes the phone itself a whole lot faster and more responsive.
Working on an a game for Android myself, I must say it is hard. While not the only issue, this is one major one. I’ve seen most of the high-end apps use a client-server model (like Guitar Hero) to distribute a small app, but then download extra content to SD.
Hopefully the OHA will quickly (for 2.5) get a good apps->SD method (with security beyond the current model).
Maybe this is why the Droid’s card is hidden under the battery – so that a future OS upgrade can rely on the SD card not getting yanked out mid-operation.
what happened to the piracy?
think of it.
u can install appli….. from anywhere.
This is just too funny. Teeny tiny apps… Even the iFart apps are going to suck.
All that’s irrelevant. The truth is the VM isn’t up to it – the raw performance just isn’t there.
It’s OK for non game apps, but you’re looking at jumping through a lot of hoops just to get decent graphics going.
Wow droid only has 512MB? And it doesn’t offer expandable memory? Wow poor design choice, you gotta go one way or the other, lots of internal mem, or expandable memory. Neither seems like a lose-lose situation to me :/
Droid has up to 16gb expandable memory :/
It does have expandable memory; they’re just saying that you can’t run apps directly off of the SD card.
Another important class of apps that this hampers is the navigation category – it’s generally considered sub-optimal for a nav app to have to download map data for every trip rather than having the map data built into the app (which is inevitably space intensive). It’s wonderful that google includes a free nav app, but its not going to do any good if you can’t get a verizon signal…
Nav apps on Android already work around this by downloading map data onto the SD card on first load (at least from what I heard). 3D games can do this too. It definitely is more work for the developer but ultimately not impossible to work around.
Again Google can definitely help by at least giving some free server space so smaller developers who want to make large apps can use this method too.
so much for the iphone killer….
apple for life.
I’ve got some special kool aid that will knock your socks off along with one other thing, mr cult member.
Robo Defense is the best game ever…
this is a fatal flaw for Droid v.1. just like the hard click ruined the chances of Storm 1. despite the initial favorable reviews for both, people will hear about this very soon and hold off.
Why don’t you just code the solution into the Android codebase?
There is a simple workaround for this limitation. The main app gets installed in the onboard memory, and the media files get installed on the SD card. For example, Doom WAD files go on the SD card. Many games/apps do this.
Is there a reason this is a big deal? Doesn’t seem like a significant limitation to me. I’m nowhere near the app installation limit on my MyTouch.
It is not simple. That is much more difficult for develors (and users) to deal with than knowing that the storage is all internal and never have to worry about cards when installing, running, or removing SD cards.
Actually it is that simple. If there are no data files to access the core program just exits.
Yeah right 256MB is the limit for games with that in mind why not have all android phones installed with 1Gig, Tjeez since when does 256 be a limit as far that I know if the darn thing is programmed right 256 is doable, 512 would be great but will make lazy programmers sloppy so that it still not enough. :(
its not only that, its also the java plattform which is not exactly made for gaming. In fact there are very few game engines someone can use and writing your own is a huge task for an app market that is tiny compared to the iphone.
One solution is to just put a minimal version of the game without any artwork/sounds etc into the Android Market.
When the program starts it can download the additional data from its own server and store it on the SD card.
+1. Why would an app want to store 200MB of its data on the phone? If an app is big, install its core part from Market to the phone then download the rest to the SD card.
So this does not look like a limitation that blocks good games from coming to Android.
If it’s not a limitation, then where are the good games? Android has been out for a year already!
I don’t think it’s a technical limitation but a financial one. Games are expensive to produce, especially ones with 3D graphics and nice sound. Android doesn’t have the user base to guarantee a ROI so developers that want to break even or make a profit will probably wait until market share goes up a bit.
The 256MB limit is a bit restrictive but not without workarounds. It really isn’t difficult to store resources on the SD, just more work. With that said, this architectural approach seems draconian and backwards. There has to be a better way to protect paid apps.
I tried playing games on my iPod Touch. It wasn’t much fun. My hands soon got tired and too often the discomfort of playing a game like SimCity or Wolfenstien 3D overwhelmed any fun I was having. Games go best on a PC or console. When I bought my Android phone (to break free from the iTunes / Apple shackles)….games weren’t part of my decision. That’s just me…..but games on iPod Touch aren’t any more fun than they would be on an Android phone.
Judging by the success of games on the App Store, you’re by far in the minority in that experience. I would guess based on the games you named you weren’t downloading the type of game that excel on the iPhone anyway. I have some games on my iPhone that I actually prefer to play, even when sitting right next to my TV or computer.
Hi Scott: I have bought many of those games for my iPod Touch: Wolf 3D, Duke Nukem, SiMCity, Doom; Resurrection and several others.
Do I PLAY them?
I tried…..but I never last more than 15 minutes. It’s just too hard on the wee screen with the pinch/spread controls…….
Much easier to play the same games on PC..and more fun, too.
But I did buy them…and doesn’t the App Store look successful!
There certainly will be games that wrok well on the small format….but they will also tend to be smaller games, easier to play on the smaller format.
…hmm .. what’s a SD card ??
sdcard is the wee chip you can slide into a phone or digi camera that is removable.
iPhone / iPod Touch don’t have one. Apple doesn’t want any way for data to get in or out other than via iTunes.
Please note that the samsun i7500 has 1200mb for application storage, yes 1.2GB!!
Sadly it only has 192mb of ram
It also uas 6gb of ’storage’ for video/pics/music
We have a partial solution at this time to some of the Android storage woes. Remote file storage is available for the Android which emulates local storage for predominantly multimedia. We offer that service at Android Storage. We are working on technology and an app which will actually allow apps to be stored completely remote and then be “temped” to the phone via a stream and operated under a master app. That will be coming before spring. This changes the playing field and allows devices to fully take advantage of “virtually” unlimited app and storage memory with the improvements in 3G, 4G, and WIFI availability.
okie … sounds like this settles the matter – doesn’t it ??
Moving on …. what’s the next topic ?
Kevin, glad to see you saw this article…I thought of your service immediately! I had no idea what a problem this could be until reading the article above.
Sounds good- if you do not mind waiting for the delay for the app to work or do not have Edge or GSM only.
Sorry Kevin, the logical change is to allow virtual space to the SD card- just as many rooted G1’s have proven.
In your defense though, perhaps that is your non-partial fix for 2010. I hope so, because you know the partial fix will not work long-term and only highlight the constraint.
Sounds to me you have given evil Apple their next add campaign theme- iPhone has app space and Android doint’ (spelled on purpose)
Typically the manufacturers are screwing this up by skimping on internal storage. Do the right thing – large storage AND expansion slot.
Google – a 256 MB limit on apps?
The solution is not to have the app download assets after install. That just ruins the user experience.
Honest to god, this isn’t rocket science.
Thanks a lot. Was about buy Hero as iPhone 3GS has not yet been launched here.
Myst is only 534 MB. The developer trimmed the size with an update back in June. Still won’t fit, though!
Pretty sure I’m not buying this phone for games. 256mb is plenty of space for the applications I’ll need. Sure I think they should have put some gigs in there instead but I believe all this worrying is silly and this will be fixed with future firmware updates. I may want a block breaking game or something to pass the time so this is a non issue for me at least. Sorry to those of you who are upset but I really think you should remain calm.
Great points made here. Folks, companies are looking to shave costs anywhere they can and will continue to do so. If you have reviewed some of the top technical “think tank” predictions and have been tracking the large scale investment in datacenters, you will see computing is going “monolithic”. PC’s and devices will be dumbed down and software will be centralized. The end user will benefit from hardware costs initially and companies such as Oracle, Google, Apple, Amazon, Rackspace and more will monetize cloud computing and storage and on the back end. It’s not if, it is when. And while I agree it would be more convenient for the end user to have device memory resources, in the end it is big business and technology moving this in a strange new direction. And that’s an inevitable shift in cloud cloud services that’s currently a snowball rolling down the snow covered mountain. That’s the future…now.
Well, this sounds all fine and dandy. And in reality it may be fine for your office apps on your desktop computer where you have a 10Mbps connection or faster. But on a cell phone with at best a 500-600 kbps connect, who the heck wants to have to “stream” an app to a phone to run it? That is NOT the solution. The solution is more onboard ROM for storing apps. Look at the BB Storm 2. It comes with 256MB Ram, 256MB Rom, AND 2GB internal memory for app storage, AND a 16GB micro SD card for media storage. Now thats what I call forward thinking. Moto Droid, a so called top of the line Google Experience phone only having one 512MB ROM chip for OS and apps, is a big fat joke, and the joke’s on anybody who buys this phone or thinks that Android stands a chance at taking on iPhone and their wonderful OS and UI. Android = Fail.
This will fail beyond your wildest dreams. Infrastructure is not in place. Perhaps five years from now, but you have to get there first.
This big brother stuff is starting to get annoying.
People, it does NOT have even 512 megs, after 2.0 is installed, there is less than 200 megs of free space for apps. Not 256 or 512.
The apps that come with the OS take up the install app space too. Nav, Browser, etc.
I saw this somewhere:
Google built a shopping mall (Android market) with no parking (app space).
LOL, good one Moondog.
Here’s one for you…
Apple built a 4 lane highway(600MHZ CPU) but only allows 1 car to drive on it at a time (one program running)
I don’t know about you but that sounds like fun! No traffic = faster lag free user experience!
;-)
@ngrava:
Yeah, you keep telling yourself that. Meanwhile, I’ll be listening to Pandora while I update some apps and simultaneously browse the morning’s email.
Face it, iPhone fans: If Apple said all Macs were changing to a ’singletask’ OS – sure, you have to restart all 3rd-party apps whenever you switch between them, but hey…no latency, kids! – you’d march on Cupertino with pitchforks & pine-tar torches.
Thats not necessarily true. I use F-Stream on my iphone all the time. It streams live radio over the cellular connection to the phone. It can run in the background while I’m in email app or safari surfing the web, etc.
But, seriously, how many apps do you want to run at one time on a phone? The screen is so small you can only see on app at a time anyways. So I have my email open and want to view a webpage, so I hit the home button then hit the safari icon. I then surf the web. I find an article I want to email to someone so I then cut and paste it out then hit the home button and then hit the email icon, I’m now in my email app so I then paste the article into a new email and send it. How is that process any better on a “multitasking” android phone?
Thats not true, ipod can run in background full time, so can streaming radio programs.
But who cares about multitasking on a google phone, theres not enough storage space to save multiple apps, you have to uninstall an old app to load a new one!
Thank you very much, but I’ll stick with my 16GB of app storage space.
Streaming music or video is really only possible where data usage isn’t limited or you have so much money you don’t care.
unlimited data may be the case in the US (for now)…but it isn’t the norm worldwide. People writing apps assuming unlimited data are immediately limiting their market.
Most mobile phones (except the iPhone) have between 256MiB to 512 MiB of internal memory. It would make sense to put a limit on app storage in this case since storage on external memory for apps is not allowed.
Is the author proposing that Android allow apps to be stored on external memory cards? Not at all, the author in fact supports this as “an understandable move due to potential data corruption during an unexpected card removal”
From his statement “more internal storage is definitely in order if Android can’t support external storage” he proposes that an increase in internal memory is well in order. However, this would be a phone manufacturer’s issue, not Android’s. The more storage they put into their phones the more storage Android has to store their apps on.
Why is the author’s appeal on Android’s part then?
As a game developer I think the issue first for me would be worrying about how to get enough performance out of the phone. As far as I was aware all apps run on a Java virtual machine. This means that the code get’s translated into byte code and then into machine code while the app is running. You may not notice it when the app in question is Facebook, Stocks or Twitter but if we’re talking about any kind of real-time 3D or even 2D graphics intensive game, it’s going to be an uphill battle for game developers. It’s not so much the 3D data (those are usually calculated on the GPU anyway) as it is everything else that take up CPU cycles like AI, mesh deformations, animation interpolation and sound.
If you’ve ever played a 3D game on an iPhone/iPodTouch, you know that they are already pushing the envelope of what a Mobile phone can deal with in the first place. Take that in force it to run inside of the virtual machine… Does that really seem like a good idea?
I really think Google needs to put more thought into this as far as games are concerned.
I think I what they are thinking though: Running apps in Java gives them an extra layer of security and safety. And eventually, they want everything to be server side anyway so apps as we currently think of them will eventually be going away.
But, this isn’t a very workable plan for games. I really like Android a lot. I really want to be able to make games for it but Java games have never been very good and Java games running on a mobile… I just don’t know guys. I can write an app that is the game engine with an “Installer” part that stores the game assets on the SD card. That’s not a problem. And, I don’t think poping out the SD card is an issue either as most of the newest phones need to have the back cover removed just to get at the thing. What is a problem is getting that data to run a speeds that would allow a 3D game to be considered fun to play.
@ngrava:
> I think I [know] what they are thinking though: Running apps in Java
> gives them an extra layer of security and safety. And eventually,
> they want everything to be server side anyway so apps as we
> currently think of them will eventually be going away.
Exactly, tho I sympathize with anyone who wants to provide snappy game-performance on a typical Android handset.
I think the bigger picture is this: We’re still looking at an OS in its infancy, running on handsets from makers which are both new to that OS and – until very recently – more than a little antsy about throwing big R&D bucks at it. The homely G1 is the living embodiment of this shaky partnership. But, once a million of ‘em were sold, attitudes shifted…on both sides. Now, we’re on the cusp of a period where Android phones are like city buses. If you don’t like the current ‘hot’ model, just wait a few minutes for the next one.
Much the same thing is true of Android, itself, with a remarkable _three_, significant updates in the first year, alone. My money says Google and their corporate partners are already re-thinking the internal storage vs SD storage issues. I just hope they can all agree that its time to bust a move – aggressive improvements, with an eye toward anticipating the market’s future needs and leaping ahead of the competition – rather than remaining cautious and being satisfied with something like keeping pace.
@KevinDill
Just give us a bunch of nes roms and we’re good to go!
@jon
Great idea! How about we create a MAME (Multiple Arcade Machine Emulator) app which references your roms from remote storage. You could have over 5,000 coin op arcade, sega and NES games at your disposal. If we ever catch up on to-do’s, we will do that for you Jon.
Anyway I think that 256 MB is well enough even for several good
Android games. There is another reason actually. You will hardly
get your money back in the nearest future.