备注:之前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. 欢迎来怼-Alpha周(2017年10月19)贡献分配规则和分配结果

    .从alpha周(2017年10月19日开始的2周)开始,提高贡献分比重. 贡献分 : 团队分 = 1 : 5 教师会在核算每位同学总分时按比例乘以系数. 每位同学带入团队贡献分10分,如果团队一共7 ...

  2. 欢迎来怼--第七次Scrum会议

    一.小组信息 队名:欢迎来怼 小组成员: 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/19 17:05~17:17,总计12min. 地 ...

  3. Notes of the scrum meeting(12.12)

    meeting time:19:30~20:30p.m.,December 12th,2013 meeting place:3号公寓一层 attendees: 顾育豪                  ...

  4. 【IdentityServer4文档】- 打包和构建

    打包和构建 IdentityServer 由多个 nuget 软件包组成的. IdentityServer4 nuget | github 包含 IdentityServer 核心对象模型,服务和中间 ...

  5. 从零讲JAVA ,给你一条 清晰地学习道路!该学什么就学什么!!

    1.计算机基础: 1.1数据机构基础: 主要学习:1.向量,链表,栈,队列和堆,词典.熟悉2.树,二叉搜索树.熟悉3.图,有向图,无向图,基本概念4.二叉搜索A,B,C类熟练,9大排序熟悉.5.树的前 ...

  6. <T extends Comparable<? super T>>

    在看Collections源代码中,看到如下代码: public static <T extends Comparable<? super T>> void sort(List ...

  7. 如何彻底解决adb 5037端口被占用

    在进行安卓开发的时候是不是经常碰到adb端口被占用的情况? 解决这个问题的方法很简单,只需要设置一个系统环境变量就可以搞定. 设置方法: 增加系统环境变量变量名称:ADNROID_ADB_SERVER ...

  8. Java 多线程 三种实现方式

    Java多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...

  9. 2.StringBuffer:线程安全的可变字符串序列

    一.String.StringBuffer和StringBuilder的区别 1.String是内容不可变的,而StringBuffer和StringBuilder都是内容可变的. 2.StringB ...

  10. P1807 最长路_NOI导刊2010提高(07)

    题目描述 设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j.设w(i,j)为边的长度,请设计算法,计算图G中<1,n>间的最长路径. 输入输出 ...