备注:之前Android入门学习的书籍使用的是杨丰盛的《Android应用开发揭秘》,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增加了很多的新组件,一直没有系统的学习过。现在开始这个“完善Android学习”系列,将2.2以后的新知识做一个概览。概览来自:
http://developer.android.com/about/versions/android-4.0.3.html
Android4.0.3(ICE_CREAM_SANDWICH_MR1)是Android4.0的一个增发版本,这一版增加了一些新的特性以及修复了一些BUGS。
API OverView
Social stream API in Contacts Provider
使用社交流数据作为状态更细和检查的应用现在已经允许使用用户的联系人进行数据同步了,并且为每一个联系人提供照片和相关的数据项。
包含联系人的社交流的数据库表室友ContactsContract.StreamItems定义的。每个社交流表都包含了关于每个流项的元数据的列,比如一个图标,一个标签,原始的文字内容,以及评论等等。有关流的照片会存储在由ContractsContract.StreamItemPhotos定义的另外一张表中,可以由ContactsContract.StreamItems Uri的子目录得到。
为了从一个联系人中读写社交流项,应用必须要求权限:
<uses-permission android:name="android.permission.READ_SOCIAL_STREAM">
和
<uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM">
Calendar Provicer
1)添加了CalendarContract.Colors来表示Calendar Provider中的一个颜色表。这个类为每一个账户的可访问的颜色提供了属性。颜色由账户的名字/类型的唯一的COLOR_KEY引用得到,这些值只能被同步适配器更新。(不是很明白)
2)为交互/同步支持提供ALLOWED_AVAILABLITY和ALLOWED_AATENDEE_TYPES;
3)Adds
TYPE_RESOURCE
(such as conference rooms) for attendees and
AVAILABILITY_TENTATIVE
, as well as
EVENT_COLOR_KEY
for events.
Home screen widgets
从Android4.0开始,home screen上的widget不能再有自己的padding,系统会依据当前屏幕的特征自动为每一个widget添加padding。这可以使得在一个grid中展示的widget更加统一一致。为了协助拥有home screen widget的应用,平台提供了一个新的方法叫做getDefaultPaddingForWidget()。应用可以调用这个方法获取系统定义的padding,然后用于计算每如何防止cell。
UItoolkit
新的方法setUserVisibleHint()和getUserVisibleHint()允许fragment设置一个fragment当前是否可见的提示。系统延迟用户不可见的fragments的启动知道可见的fragment的加载器运行起来,可见的提示默认为"true"。
Graphics
1)SurfaceTexture新的方法setDefaultBufferSize(int, int)可以设置图片缓存的默认大小,这个方法在Canvas上或者OpenGL ES上生产图片的时候,可以用来设置图片的尺寸。
2)为OpenGL ES 扩展
GL_OES_EGL_image_external添加了更多的枚举值定义:GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES, GL_SAMPLER_EXTERNAL_OES, GL_TEXTURE_BINDING_EXTERNAL_OES, and GL_TEXTURE_EXTERNAL_OES;
Database
1)新的类CrossProcessCursorWrapper让content provider查询从一个cross-process的查询中获取结果更加高效。这个类是cursor的有效封装,可以被发送到远程的进程中去,它也可以将一个普通的cursor对象透明的转化成CrossProcessorCursor对象;
2)CursorWindow构造器现在需要一个name字符串作为输入,系统不再区分本地和远程的cursor windows,所以CursorWindow(boolean)现在被废弃了。
Intents
增添了针对设备上基础应用访问的类别,比如deferCATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS等。
Camera
1)MediaMetadataRetriever增添了新的常量METADATA_KEY_LOCATION来让应用获得照片或者视频的位置信息;
2)CamcorderProfile添加了QVGA(320*240)分辨率,质量等级表示为QUALITY_QVGA和QUALITY_TIME_LAPSE_QVGA常量。
3)新的方法 setVideoStabilization(), setVideoStabilization(), and isVideoStabilizationSupported()当开发者可以检测个管理Camear的稳定性;
Permissions
两个新的权限:
READ_SOCIAL_STREAM和WRITE_SOCIAL_STREAM