Basically, there are two places that an Android device can store data: The micro-SD card, and the internal storage. Internal-storage space is usually at something of a premium.
What Moves · Typically, when you get a new phone, you’re going to move the micro-SD over to it. This means that your music and photos and videos will all be right where they used to be.
It turns out that quite a few things are in internal storage, including your contacts and calendars. Those won’t be there on the new phone when you start it up, but because of the fact that Android syncs with Google, they’ll all show up in a while, depending on how much you have and how fast your network is.
What Doesn’t Move · Your call logs and SMS conversations and so on just aren’t coming over. I found that kind of irritating; in particular, partly for sentimental reasons, I miss all those SMS conversations with friends and family.
Applications · You’ll have to re-install all your applications. This might actually be a plus if you realize that there are a few you don’t use any more and needn’t reload.
Where it gets sticky is application data, and now I’m going to speak from
the developer’s point of view. My own app has three different kinds of
storage: Preference settings, the cookie-crumb trail of where you’ve been, and
any audio you’ve recorded at one of the waypoints. The preferences are
internal storage and didn’t make the trip. The audio was on the SD card
(because in my code, I explicitly put it in a file whose pathname started with
/sdcard/) and so it came across. The cookie crumbs were in an
SQLite database, and it turns out that those live (by default, at least) in
internal storage; so I didn’t get them. Now, it turns out that the app is
supposed to persist them to an AtomPub server in the cloud, but I
hadn’t got that quite debugged, so I lost them.
Anyhow, if you’re an Android developer, you can count on it that your users will upgrade phones regularly, so you have to have figured out how you’re going to make sure the app’s data gets upgraded too. Silently and automatically persisting everything into cloud-space seems to me like the obvious right answer, but then I’m prejudiced.