一直忙于Android 2.3上的开发,有段日子没有关注Android的更新了。今天打开Android developer主页,发现小蜜蜂Honeycomb已经更新到了3.2,对应的API级别是13,SDK Tools(adb,dmtracedump,dexdump, aidl等)版本为r12。
一、平台亮点
1、新的用户特性
1)、针对平板进行了优化:主要是对大屏(7’’,10’’)显示的支持,以保证用户的良好体验;
2)、用于显示界面分辨率固定的缩放功能,以保证应用程序的兼容性:Android 3.2引入了这种称之为“兼容性缩放(compatibility zoom)”的模式,为用户在大屏幕设备上显示分辨率固定的应用程序界面提供了一种新的途径。这种新模式为标准的UI拉伸方式(用于设计小屏幕设备的应用)提供了一种选择,该模式采用的是像素伸缩,所料不错的话,应该是采用插值的方式进行拉伸。我想,经此种模式拉伸后的图像效果恐怕不会太理想,当然还得看拉伸前后的分辨率差距有多大。有条件的XDJM可以做个实验,给个回复。
3)、SD卡上的媒体同步:应用可以直接加载SD卡上的媒体文件。
2、新的开发特性
1)、用于屏幕管理的API扩展:Android 3.2对平台的屏幕支持API进行了扩展,为开发者提供了一种额外的方式管理应用程序的UI。这些API包括新的质量资格和manifest属性,这使得开发者能更精确控制应用在不同尺寸屏幕上的显示。
二、API
1、屏幕支持API
是Android 3.2值得重点关注的内容。google在此专门对平板的屏幕支持进行了扩展。另外,增加对高分辨率电视显示的支持。由此,可以看出,未来的Android除了布局智能机和平板外,同时看好智能电视以及相关的大屏幕显示设备。为了支持大屏幕和高分辨率,Android 3.2引入了质量资格,我将其理解为为了更好的在目标屏幕上进行界面布局,而引入的用来指定显示空间门槛。进而引出另外两个概念:smallestWidth(swNNNdp)、屏幕的width(wNNNdp)和height(hNNNdp)。前者指的是屏幕可绘制区域的宽度和高度中最小的那个,是屏幕的固定属性,与显示方向无关。后者指的就是屏幕的可绘制区域,二者随着屏幕的显示方向不同,进行相应的切换。Android 3.2中可用的新的质量资格使用示例:
res/layout/main_activity.xml # For phones res/layout-sw600dp/main_activity.xml # For 7” tablets res/layout-sw720dp/main_activity.xml # For 10” tablets res/layout-w600dp/main_activity.xml # Multi-pane when enough width res/layout-sw600dp-w720dp/main_activity.xml # For large width在Android 3.2之前的版本中,将忽略上述质量资格。为了让应用程序在任何设备上看起来都非常出色,可以对上述的质量资格进行混合使用,示例如下:
res/layout/main_activity.xml # For phones res/layout-xlarge/main_activity.xml # For pre-3.2 tablets res/layout-sw600dp/main_activity.xml # For 3.2 and up tablets为了支持前面提到的“兼容性缩放”模式,Android 3.2中增加了一些新的manifest属性,目的是便于应用程序能够支持不同尺寸的屏幕,尤其可以指定应用能够支持的最大和最小屏幕尺寸。新的屏幕支持属性有以下几个:
res/drawable-tvdpi/my_icon.png # Bitmap for tv density一般情况下,应用不会使用如此高的像素密度。对于那些需要输出720p的屏幕,UI会自动进行缩放。