备注:之前Android入门学习的书籍使用的是杨丰盛的《Android应用开发揭秘》,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增加了很多的新组件,一直没有系统的学习过。现在开始这个“完善Android学习”系列,将2.2以后的新知识做一个概览。概览来自:http://developer.android.com/about/versions/android-3.1.html

Android3.1平台(HONEYCOMB_MR1)。

API Overview

Animation framework

1)New ViewPorpertyAnimator class

新的ViewPropertyAnimatior类为开发者提供了一为View选中属性施加动画的方便途径,这个类自动化并且优化了属性的动画并且使得在一个View上同时发生的动画更加容易管理。使用该类是非常直接的,为了给一个View的属性施加动画,需要调用animate()方法为该View构造一个ViewPropertyAnimatior实例,使用它提供的方法指明需要对哪一个属性进行动画以及如何动画,举个例子,将View变成透明,就使用alpha(0),该对象负责配置底层的Animator类并且启动渲染动画;

2)Animation bacjground color:新的getBackgroundColor()和新setBackgroundColor(int)方法使得开发者可以获取动画的背景颜色,这只有在window动画中有作用,目前背景颜色必须为黑色,可以有任何的alpha数值;

3)Getting animated fraction from ViewAnimator

新方法getAnimateFraction()可以让你获取当前的动画片段——刚刚过去的动画帧;

UI Framework

1)Forced rendering of a layer:新方法buildLayer()让应用强制要求一个View的layer被创建,然后View立刻渲染到layer上,举个例子,一个应用可以在开始动画之前使用这个方法来强制将一个View渲染到layer上,这样就可以避免丢帧;

2)Getting a calendar view from a DatePicker:新的方法getCalendarView()让开发者可以从DatePicker实例中获取一个CalendarView;

3)Getting callbacks when views are detached:新的监听器View.OnAttachStateChangeListener让开发者在View添加或者移除的时候可以收到一个回调,可以使用addOnAttachStateChanegListener()来添加一个监听器。

4)Fragment breadcrumb listener,new onInflate() signature:onInflate(attrs, savedInstanceState)方法被废弃,使用新方法onInflate(activity,attrs, savedInstanceState)

5)Display search result in new tab:ACTION_WEB_SEARCH的EXTRA_NEW_SEARCH数据关键字可以让你在新的浏览器tab中打开一个搜索,而不是在本tab中;

6)Drawable text cursor:你现在可以使用新的资源属性textCursorDrawable指定一个图片资源文件作为文本光标;

Graphics

1)Helpers for managing bitmaps

    setHasAlpha(boolean):用来指示是不是一个Bitmap中的所有的像素都有一个透明度值,诸如(RGB_565)的设置,这个调用是被忽略的,因为它不支持像素的alpha值,这是一个绘制提示,因为在一些情况中一个不透明的bitmap可以获得一个更快的绘制速度;

    getByteCount():获得Bitmap的大小,单位:bytes

    getGenerateId():让一个应用查看一个Bitmap是不是进行了改动;

    sameAs(android.graphics.Bitmap):查看一个bitmap是不是和当前的bitmap在维度,配置以及像素数据上一样。

2)Setting camera location and rotation:Camera添加了两个新的方法rotate()和setLocation()来控制相机的位置。

Download Manager

1)Handling of completed downloads:a)应用现在可以初始化一个下载,只有当完成的时候才会提醒用户,为了使用这种类型的下载,应用需要传递一个VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION给请求对象的方法setNotifcationVisibility();b)新方法addCompleteDownload()让应用可以添加一个文件到下载数据库,以便于被下载应用管理;

2)Show downloads sorted by size:应用可以打开下载应用,按照下载文件的大小排序的模式查看,只要添加一个新的extra:INTENT_EXTRAS_SORT_BY_SIZE到一个ACTION_VIEW_DOWNLOADS intent;

Media

新的音频格式:媒体框架添加了对raw ADTs AAC的内建支持;

Launch controls on stopped applications

从Android3.1开始,系统的应用管理器开始追踪处于停止状态的应用并且提供方法给后台进程和其余应用启动它们。

注意到应用的停止状态和Activity的停止状态不一样,系统分开处理这两种情况。平台定义了两种新的Intent flags来让intent发送者指明该Intent是否要激活处于停止状态的应用的组件:

1)FLAG_INCLUDE_STOPPED_PACKAGES——将处于停止状态的应用的intent filter包含进来;

2)FLAG_EXCLUDE_STOPPED_PACKAGES——将处于停止状态的应用的intent filter不包含进来(从潜在的目标列表中移除那些停止的应用)

当没有或者两中FLAG都在一个intent中定义的时候,默认行为就是包括。

注意到系统给所有的广播都添加了FLAG_EXCLUDE_STOPPED_PACKAGES标签,它这样做来避免来自后台服务的广播无意间或者非必要的打开停止应用的组件。一个后台服务或者程序可以覆写该行为,加入FLAG_INCLUDE_STOPPED_PACKAGES。

应用在首次安装并且没有被打开的时候或者被用户手动停止的时候处于停止状态。

Notification of application first launch and upgrade

这个平台为第一次打开应用可应用升级提供了优化的通知提醒:

1)ACTION_PACKAGE_FIRST_LAUNCH:当一个应用第一次被启动的时候,发送给它,数据中包含包的名字;

2)ACTION_MY_PACKAGE_REPLACED:在一个新的版本被安装以后,通知一个应用它被更新了。这只有在应用被替代的时候才会收到,它没有包含任何的额外数据,为了收到它,为此声明一个intent filter。只有在应用不在停止状态的时候更新,intent才会被直接发送给该application;

Core utilities

1)LRU cache:新的LruCache类:让你的应用受益于高效的缓存,应用程序可以使用这个类减少计算或者从网上下载数据的时间。LruCache是一个维护者有限数目的值得强引用的缓存。每次一个值被访问,它就被移到队列切面,当缓存满了,队列最后的那个值就会被移除,然后可能被当做垃圾回收;

2)File descriptor as int:现在可以使用新方法getFd()或者detachFd()从一个ParcelFileDescriptor来获得一个文件描述符整数;

WebKit

1)File scheme cookies:

The CookieManager now supports cookies that use the file: URI scheme. You can usesetAcceptFileSchemeCookies() to enable/disable support for file scheme cookies, before constructing an instance of WebView or CookieManager. In a CookieManager instance, you can check whether file scheme cookies is enabled by calling allowFileSchemeCookies().

2)Notification of login request:

To support the browser autologin features introduced in Android 3.0, the new method onReceivedLoginRequest()notifies the host application that an autologin request for the user was processed.

Browser

浏览器增加了以下新特征来支持web应用:

1)支持视频播放,需要硬件加速支持;

2)Layer support for fixed position elements for all sites (mobile and desktop).

New Feature constants

这个版本添加了两个新的硬件特征约束:

1)android.hardware.usb.acessory:应用使用USB API和外围硬件设备互联,作为HOST出现;

2)android.hardware.usb.host:应用使用USB API和外围硬件设备互联,作为ACCESSORY出现;

【Android】完善Android学习(四:API 3.1)的更多相关文章

  1. 【Android】完善Android学习(三:API 3.0)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  2. 【Android】完善Android学习(一:API 2.3.3)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  3. Android JNI学习(四)——JNI的常用方法的中文API

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  4. 【Android】完善Android学习(七:API 4.0.3)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  5. 【Android】完善Android学习(六:API 4.0)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  6. 【Android】完善Android学习(五:API 3.2)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  7. 【Android】完善Android学习(二:API 2.3.4)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  8. android移动开发学习笔记(二)神奇的Web API

    本次分两个大方向去讲解Web Api,1.如何实现Web Api?2.如何Android端如何调用Web Api?对于Web Api是什么?有什么优缺点?为什么用WebApi而不用Webservice ...

  9. android学习四(Activity的生命周期)

    要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...

随机推荐

  1. Java程序员自我介绍

    有关Java程序员的面试自我介绍范文(一) 我叫XXX,今年21岁,毕业于XX解放军信息工程大学计算机科学与技术专业,拥有扎实的Core Java基础,良好的编程风格;熟悉JSP+Servlet+Ja ...

  2. C#通过gridview导出excel

    [CustomAuthorize]        public FileResult ExportQuestionCenterExcel(SearchBaseQuestion search)      ...

  3. POJ 3525/UVA 1396 Most Distant Point from the Sea(二分+半平面交)

    Description The main land of Japan called Honshu is an island surrounded by the sea. In such an isla ...

  4. week1 技术随笔

    类别c 内容c 开始时间s 结束时间e 被打断时间I 总计(min) 9.5 随笔 构建之法福后感 22:00 24:00 7 113 9.6 分析 需求分析 9:00 9:30 2 28 编码 词频 ...

  5. 【Linux】- Ubuntu 配置mysql远程访问

    ubuntu上安装mysql非常简单只需要几条命令就可以完成. sudo apt-get install mysql-server   安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后 ...

  6. 在intelllij中debug的时候使用log4j输出

    一般在本地调试的时候,在控制台打印输出都会使用system.out.print,但是在线上运行的时候一般都是使用log4j进行日志输出. 那么在编写代码的时候,又不想写两份,直接写LOG是常规动作. ...

  7. div、span绑定内容改变事件

    内容改变事件onchange只适用于form表单标签(input.select.textarea) 当需要对div.span标签进行内容改变监听则无法适用,查阅了一些资料发现jquery有针对的方法, ...

  8. perf record -c

    如果perf record -c -c后面接的是sample_period,也就是说你让这个事件没 我的loop进程一直在执行,我的CPU的频率是2.6G hz,也就是说每一秒会有2,600,000, ...

  9. MATLAB中的randi函数

    randi Pseudorandom integers from a uniform discrete distribution.来自一个均匀离散分布的伪随机整数 R = randi(IMAX,N) ...

  10. 【bzoj3524】[Poi2014]Couriers 主席树

    题目描述 给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. 输入 第一行 ...