In the first three months of 2012, Android continued its relentless march towards domination of the global mobile market, accounting for some 56% of world smartphone shipments (Source: Gartner). Its latest major OS version (Ice Cream Sandwich or simply V4.0) is gaining fast market traction with over 21% share, most of which happened in the last 3 months where it practically tripled its total share. While Android is everywhere, it would appear that not all Androids are created equal. From a testing perspective, it is important to note the very broad distribution of the screen sizes and associated resolutions (see table).
What do these trends mean for mobile testing on Android?
- Obviously, Android is still very fragmented. ICS is picking up steam fast, but V2.2 and V2.3 are still dominating the market. This is in stark contrast to iOS where about 80% of the users have the latest versions.
- When you test your application on Android, assume that most of your users are still using older versions. At the same time, the market continues to evolve - in three months time, it is likely that ICS will reach about 25%-35% of the market.
- In terms of Android devices, the Samsung "Galaxy" brand is probably a good place to start. The S1(4%), S2(9.5%) and S3(5.3%) models are currently the most popular devices on the market and provide nice coverage of the OS versions (Source: AppBrain). After Samsung, HTC and Motorola are the most relevant brands to test.
- In terms of OS versions, it is recommended to use at least three reference devices for automated testing (V2.2, V2.3 and V4.x). It is also important to use at least two different vendors (one being Samsung) to accommodate for the differences between the manufacturers.
- Screen sizes are a crucial factor in UX testing (see image below). The ~4" screens dominate the market with over an 85% share, but they come with a wide variety of resolutions (dpi), which mandate additional testing. It is recommended to use at least three different resolutions for the testing. Note that portrait and landscape completely change the resolutions of your application if you support them.