I've been a holdout on upgrading to a smart phone, in part because I haven't paid over $100 for a mobile phone since they were the size of a brick. But after finding that I could get a Droid 2 Global on Verizon for $20 via Amazon Wireless a couple of months ago, I made the leap.
My initial experience was negative--Amazon sent me a phone with instructions to go to Verizon's web site to activate. Verizon's website wanted me to enter a code from a Verizon invoice. No such invoice was included, and none of the numbers from the Amazon invoice worked. So I had to talk get through to a human being, at which point activation was fairly simple. But one more hurdle arose when I had to login to a Google account, which was an obstacle of my own creation--I use very long randomly generated passwords with special characters, and have independent Google accounts for different services, so I had to choose which one to use with the phone before I knew what all the implications would be. (I chose my GMail account, which has worked out OK.)
I wanted to set the phone up to use my own email servers, and to connect over VPN to gain access. This proved to be an obstacle that took a few days to resolve, due to inadequacies and bugs in Droid applications. The default VPN client doesn't support OpenVPN, so I had to gain root access to install an OpenVPN client. This turned out to be the only reason I needed root access on the phone, and I managed to get that working without much difficulty.
The Email application, however, refused to send outbound mail through my mail server, which allows outbound port 25 client connections from internal hosts with no authentication but requiring TLS. This combination simply doesn't work--I ended up setting up port 587 (submission port) with username/password authentication via Dovecot. Though I would have preferred using client certificate authentication, I couldn't get it to work. I still run into periodic problems with Email refusing to send outbound messages for no apparent reason--and the server shows no attempts being made. There doesn't seem to be a way to select an individual message in the outbox for an attempt to re-send.
I managed to get contact and calendar synchronization working with my Mac, but I ended up exporting my iCal calendars to Google Calendar and using them as my primary calendars. Most of the correlation of contacts in the phone from multiple sources (e.g., Facebook, LinkedIn, and my Address Book) worked fairly well, but some contacts are duplicated due to name variations. Synchronization with LinkedIn is somewhat buggy, with first and last names showing up in contacts as "null null." The Calendar app is even more buggy--I've created events on the phone that disappear, I've seen error messages in Portuguese and events with names that appear to be leftover debugging messages. I was also surprised to see that spelling correction was performed, without any prompts, on events I imported into the Calendar app from GMail (it incorrectly turned an acronym, "JAD," into the word "HAD").
I've received an SMS text message from one person which was identified as being from another person--looking at the specific contact information showed that the telephone number of the sender was associated with the correct contact, yet the name and photo displayed on the phone was of a different contact that had no association with that telephone number.
The phone's camera capability is pretty good, but when I connect the phone to my Mac, it launches iPhoto but doesn't find any photographs. I have to import them manually by pointing iPhoto to the correct location on the SD card.
I've seen the phone crash repeatedly, especially when using location services (Google Navigation, Maps, and Yelp have been repeat offenders). There also seems to be some caching of location information that gets out of sync with other location information. For example, I saw Yelp correctly show me nearby restaurants, but refuse to allow me to check in to the one I was sitting in because I was "too far away"--and Maps showed my location being somewhere else I had been earlier. In one case, thousands of miles away--an attempted Yelp check-in after returning from a vacation in Hawaii showed my location on the map as still being in Hawaii. In at least one case, I was unable to get my location to update for Yelp until I rebooted the phone.
I've had issues doing things as simple as copying and pasting a URL from Firefox to Facebook or Twitter. I copy the URL, verify that it's in the clipboard correctly, but when I go into Facebook or Twitter to paste it, it is truncated.
The number of bugs I run into seems awfully high for very basic applications. The problem is no doubt in part due to the way development occurs between Google, Motorola, and Verizon, and Linux development, which also seems to be an obstacle to fixing security vulnerabilities. The May 2011 issue of CSO magazine reports that Coverity has done two scans of Android source code for the HTC Incredible, finding 359 defects (88 critical) on the first scan last November and 149 defects (106 unfixed from the previous scan) on a more recent scan. Accountability for the code is distributed across the aforementioned groups. (Also see
this CNet story, or
the Coverity report itself.)
I wonder if I would run into problems like this with an iPhone.
UPDATE (May 19, 2011): And now there's
a security vulnerability identified in version 2.3.3 of Android and earlier (I'm on 2.2, and can't update until Verizon pushes an update), which potentially exposes contacts, calendar events, pictures, and other items stored in Google-hosted services, if users access those services via unencrypted WiFi. Although the connections to those services are over SSL-encrypted HTTP, there is a returned authToken that can be intercepted and used for subsequent logins to those services. I've never used my Droid on unencrypted WiFi networks, but I'll now take extra care to make sure that I don't. Version 2.3.4 fixes the problem for contacts and calendars but not for Picasa photos.
UPDATE (November 16, 2011): It's still been a horrible experience, and I still see regular crashes, particularly when using map and location-related applications. A new discovery today while traveling is that the World Clock widget does not know when Daylight Saving Time occurs--the option labeled "Daylight Savings[sic] Time: Adjust displayed time for Daylight Savings" appears to just set the clock forward one hour, not display the correct current time taking into account the date and whether Daylight Saving Time is in effect in the given location. I traveled to the east coast and saw that my World Clock widget time for New York was one hour ahead of the actual time in New York. It's utterly ridiculous that this widget requires the user to check and uncheck this option manually when Daylight Saving Time is in effect or not--that's exactly sort of simple task that computers are equipped to do on our behalf.