一直忙于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 phonesres/layout-sw600dp/main_activity.xml   # For 7” tabletsres/layout-sw720dp/main_activity.xml   # For 10” tabletsres/layout-w600dp/main_activity.xml   # Multi-pane when enough widthres/layout-sw600dp-w720dp/main_activity.xml   # For large width
在Android 3.2之前的版本中,将忽略上述质量资格。为了让应用程序在任何设备上看起来都非常出色,可以对上述的质量资格进行混合使用,示例如下:

res/layout/main_activity.xml   # For phonesres/layout-xlarge/main_activity.xml   # For pre-3.2 tabletsres/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets
为了支持前面提到的“兼容性缩放”模式,Android 3.2中增加了一些新的manifest属性,目的是便于应用程序能够支持不同尺寸的屏幕,尤其可以指定应用能够支持的最大和最小屏幕尺寸。新的屏幕支持属性有以下几个:

1)、android:compatibleWidthLimitDp="numDp":指定smallestWidth的最大值,应用程序在该值指定的屏幕范围内,无须打开“兼容性缩放”模式,也可正常显示。若屏幕尺寸超过该值,则程序按正常模式显示。
2)、android:largestWidthLimitDp="numDp":指定smallestWidth的最大值,应用程序的显示只能在该值指定范围内,即使屏幕尺寸大于该值,系统也会强制让应用进入“兼容性缩放”模式,以保证最好的显示效果。
3)、android:smallestWidthLimitDp="numDp":指定smallestWidth的最小值,应用程序在大于该值指定的范围内运行。若屏幕尺寸小于该值,系统会认为该应用与设备不兼容,但不会阻止应用的安装和运行。
系统默认是将“兼容性缩放”模式关闭的,需要用户根据应用需求手动打开。但是考虑到并非所有的应用都适合使用该模式,因此,平台允许开发者在manifest属性中禁止程序使用该模式。一旦应用中禁止该模式,则系统将不再向用户提供“兼容性缩放”模式的开关选项。

为了让应用能方便的在分辨率高大720p的电视及分辨率与之相近的设备上运行,Android 3.2中引入了一种新的密度描述方式:tvdpi,大约为213dpi(每英寸213个像素点)。应用程序使用该密度表述方式来标记用于电视显示的资源,示例如下:
res/drawable-tvdpi/my_icon.png   # Bitmap for tv density
一般情况下,应用不会使用如此高的像素密度。对于那些需要输出720p的屏幕,UI会自动进行缩放。

2、其他API
1)、UI Framework:包括Fragments;在ActivityInfo和ApplicationInfo中添加了对屏幕大小进行管理的相关信息;为WindowManager添加了获取屏幕原始尺寸的方法;不在使用LocalActivityManager,ActivityGroup和LocalActivityManager。
2)、Media Framework:应用程序可以直接读取SD卡上的数据,而且可以通过MTP API与SD卡进行文件交互。
3)、Graphics:在Point和PointF中包含了Parcelable接口工具。
4)、IMF Framework:新增了getModifiers()方法,用来获取修改键(modifier keys)的当前状态。
5)、USB Framework:新增了getRawDescriptors()方法,用来获取设备上原始的USB描述符,使用该方法可以访问那些不被上层API直接支持的描述符。
6)、Network:在ConnectivityManager中新增了TYPE_ETHERNET和TYPE_BLUETOOTH两个网络类型常量
7)、Telephony:新增了NETWORK_TYPE_HSPAP网络类型常量
8)、Core utilities:包括为Parcelable接口工具新增了一些接口和方法;为Binder和IBinder新增了一些方法和协议传输方式。
9)、添加了一些特性常量,包括和硬件相关的特性常量以及和模拟多点触摸输入相关的常量

更为详细的API修改信息可以参考连接: 点击打开链接

三、博主观点

通过分析上面所列举的Android 3.2提供的新特性,本人有以下几点观点,一家之言,不一定对,我姑且写之,你权且看之:
1)、Android3.2已经极大扩展了Android系统的生态圈。3.0之前的重点无疑是smart phone(智能手机),那么3.0之后到现在,绝不是3.0当初发布时高调宣称的平板了,已经演变为涵盖智能机,平板,智能电视以及一切需要高分辨率和大屏幕的设备。
2)、新系统重点在于解决大屏幕设备的显示以及提高应用程序的兼容性。
3)、Google终于让很多开发者松了口气,解决了SD卡的交互问题,亡羊补牢,犹未晚也。
4)、对USB通信端口功能的强化,估计也是那些能够拿到Android 3.0之后源码的大公司给出的意见,这样很好,等下一版系统放出来后,减轻国内XDJM们的负担。
5)、通过新增以太网、蓝牙、HSPAP等网络类型,强化了网络连接,使得网络连接途径更为多元化,由此,可见智能化时代的到来,网络扮演的角色越来越重要。




更多相关文章

  1. Android软件开发之盘点自定义View界面大合集(二)
  2. Translation002—Package Index(Android包索引)
  3. 【译】在JitPack发布自己的Android库
  4. android studio 怎么做屏幕适配?
  5. Android应用程序启动过程——Launcher源码分析
  6. Android系统上实现应用程序的静默安装
  7. android adb push 与 adb install 区别(两种安装APK的方法)
  8. Android画图之Bitmap(二)
  9. 深入探讨 Android(安卓)传感器随处监控您的环境

随机推荐

  1. 18.备忘录模式
  2. 8.工厂方法
  3. 17.适配器模式
  4. 7.代理模式
  5. 16.状态模式
  6. 15.抽象工厂模式
  7. 14.观察者模式
  8. 【OGG】OGG基础知识整理
  9. 6.装饰模式
  10. 13.建造者模式