【Android】完善Android学习(四:API 3.1)
备注:之前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)的更多相关文章
- 【Android】完善Android学习(三:API 3.0)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- 【Android】完善Android学习(一:API 2.3.3)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- Android JNI学习(四)——JNI的常用方法的中文API
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- 【Android】完善Android学习(七:API 4.0.3)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- 【Android】完善Android学习(六:API 4.0)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- 【Android】完善Android学习(五:API 3.2)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- 【Android】完善Android学习(二:API 2.3.4)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- android移动开发学习笔记(二)神奇的Web API
本次分两个大方向去讲解Web Api,1.如何实现Web Api?2.如何Android端如何调用Web Api?对于Web Api是什么?有什么优缺点?为什么用WebApi而不用Webservice ...
- android学习四(Activity的生命周期)
要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...
随机推荐
- [C++] in-class initializer
C++11 introduced serveral contructor-related enhancements including: Class member initializers Deleg ...
- Python中的list
list的创建 1 字面量 >>>L = [1, 2, 3] [1, 2, 3] 2 通过iterable可迭代对象,比如str对象,range对象,map对象 >>&g ...
- Gym - 100851F Froggy Ford kruskal
题目链接: http://acm.hust.edu.cn/vjudge/problem/307216 Froggy Ford Time Limit: 3000MS 题意 青蛙过河,河中有若干个石头,现 ...
- js中斜杠转义
js中“/”不需要转义. if(myPath.indexOf("/Upload/EmailFile/")!=-1){ alert("有附件!")}
- android入门 — ListView的优化
ListView的运行效率是比较低的,因为在getView()中每次都会将整个布局重新加载一遍,当ListView快速滚动的时候就会成为性能瓶颈. 调用View中的findViewById()方法获取 ...
- Swift-重写(Override)
子类可以为继承来的实例方法(instance method),类方法(class method),实例属性(instance property),或附属脚本(subscript)提供自己定制的实现(i ...
- TCP系列18—重传—8、FACK及SACK reneging下的重传
一.介绍 FACK的全称是forward acknowledgement,FACK通过记录SACK块中系列号最大(forward-most)的SACK块来推测丢包信息,在linux中使用fackets ...
- 【linux】- nohup 和 &
&的意思是在后台运行, 什么意思呢? 意思是说,当你在执行 ./a.out & 的时候,即使你用ctrl C,那么a.out照样运行(因为对SIGINT信号免疫).但是要注意,如果你直 ...
- 浅述Try {} Catch{} 作用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test ...
- Thread.Sleep(0)
理解Thread.Sleep函数 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢? 思考下面这两个问题: 1.假设现在是 2008-4- ...