1、Android碎片化
1.1、android系统版本
Android更新较大的版本如下:

上面只有当前可用版本,Android L作为开发者版本没有出现其中,未来会有更多的版本。下图给出Android各个版本的占有率,这个是googleplay统计的近期数据。googleplay只支持2.2以上的手机,所以统计中缺少2.2以下版本。

1.2、Android中不同尺寸、不同分辨率市场占有情况

3、Android不同机型
这是OpenSignal在2013年的调查调查结果,Android系统设备覆盖了11,868不同机型,现在肯定会更多。

2、基本概念
Android“碎片化”如此严重,那么我们怎么解决Android应用适配问题呢。Android官方文档给出了解决方案,这篇文章也是参考总结的官方文档。
解决Android“碎片化”化问题,我们需要了解一些基础概念。
屏幕大小
根据屏幕对角线实际测量的物理大小(android已经根据屏幕大小分为四类small, normal, large, extra large),具体怎么划分的下面会提到。
屏幕密度
屏幕物理区域一个单位(一般用英寸)的像素数量,一般简称dpi(dots per inch,每英寸上的点数,记住DPI这个概念很重要)屏幕密度也分为四类 low, medium, high, extra high,他们的比例关系是 0.75:1:1.5:2,具体的值为120:160:240:320。
屏幕方向
屏幕方向分为横屏和竖屏。
分辨率
一个物理屏幕上像素点的总数。一般我们的App不会直接使用分辨率,而是使用密度和屏幕大小。
独立像素单位(Density-independent pixel (dp))
一个虚拟的单位,用来决定UI布局的。用来表述布局的尺寸或者位置。
dp是一个与屏幕密度有关系的单位,dp与像素的换算关系为 px = dp * (dpi / 160)。例如在240密度(dpi)的屏幕上一个dp等于1.5个像素。以后我们应该尽量使用dp单位布局,不要使用像素单位。这样会使你的app屏幕兼容性更好
Android1.6开始就支持多屏幕和密度了,这都是为了更好的用户体验,为了简化我们多屏幕的开发,当然这要声明或者大于4。android提供了一组范围让我们使用,见下图:

3、Android中资源配置
Android工程中经常看到下图的资源文件配置,一般会包含animator、anim、color、drawable、layout、menu、raw、value、xml等。
命名规则是-。
:资源文件名
:特定条件下可以使用这种资源

config_qualifier可以使用多种: