SDK 2.3变化概要
API等级:9
对于开发者来说,Android 2.3 平台是一个可下载的SDK组件。这个下载平台包括一个Android库和系统镜像。也可以设置模拟器的皮肤等。
为了尝试Android 2.3,请使用Android SDKManager 来下载这个平台到你的SDK里。更多的信息可以关注Adding SDK Components。如果你是第一次使用Android,download the SDK Starter Package先。
关于更高级别的关于Android 2.3的介绍请参考Platform Highlights.

新增包
android.media.audiofx 混响音效(android.media.audiofx)
android.net.sip VOIP支持(android.net.sip)
android.nfc NFC支付支持(android.nfc)
android.os.storage 存储管理类(android.os.storage)

移除类
VMDebug
VMRuntime
VMStack
Zygote

更多改进
SIP-based VoIp
这个平台现在包含了一个SIP协议栈以及framework API使得开发者可以建立网络电话申请。
SIP的API在android.net.sip包里可以看到,其中关键类是SipManager,这个类用来建立和管理SIP的概况,然后初始化音频呼叫和接受音频呼叫。一旦一个音频呼叫被建立,应用程序可以静默这个呼叫并打开Speaker模式,发送DTMF以及其他。应用程序可以同时使用SipManager来建立一个SIP连接。
要使用SIP API,应用程序必须在相应的manifest做如下申明以获得许可
<uses-permission android:name="android.permission.INTERNET"> and <uses-permission android:name="android.permission.USE_SIP">

Sample : SIP Demo.

Near Field Communications (NFC)
Android 2.3包含了一个NFC(短距离通讯)协议栈和framework API。
平台提供了基本的NFC服务,包括:
1. 适用硬件发现标签进入某一固定距离
2. 在发现标签后,平台提醒应用广播一个intent,并添加这个标签的NDEF信息给这个Intent用作扩展,保存它们。
3. 之后进行数据处理。
(我感觉这个有点像RFID,比如手机上的射频卡之类的应用)
NFC API存在于android.nfc这个包中。其关键类是:
 NfcAdapter 表示设备上的NFC硬件 NdefMessage 表示一个NDEF数据消息。应用程序可以通过ACTION_TAG_DISCOVERED这个Intent来接收这个消息。
 NdefRecord 交付一个NdefRecord。其描述了数据类型,这个类型用于共享和搬运数据本身。
NFC通讯依赖于设备硬件的无线技术,以支持平台的NFC特征在特殊的设备上。为了支持NFC支持在相关的设备,应用程序可以调用isEnabled()去查询NfcAdapter。
为了使用NFC API,应用程序必须申请许可通过在manifest申明<uses-permission android:name="android.permission.NFC">。
To look at a sample application that uses the NFC API, see NFCDemo
Gyroscope and other sensors
Android 2.3添加了平台和API来支持一些新的传感器:螺旋仪,旋转矢量传感器,加速度传感器,重力传感器和气压传感器。
如果要使用这些传感器,需要在manifest中添加<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true">
详细说明可以参考Sensor。
Multiple cameras support(多路照相机)
应用程序现在可以支持任意多的Camera,只要他们存在与设备之上,他们既可以拍照也可以摄像。类Camera允许应用程序查询存在的Camera的数量以及各自的特点。
 新的Camera.CameraInfo类存储了一个camera的位置特点(前置或者后置以及方向)
 新的getNumberOfCameras(), getCameraInfo(), and getNumberOfCameras() 方法在类Camera中允许应用程序查询存在的Camera并打开他们需要的Camera。
 新的get()方法允许应用程序恢复一个CamcorderProfile给特定的Camera
 新的getJpegEncodingQualityParameter() 允许应用程序获得一个静止的图像质量等级给指定的Camera。
To look at sample code for accessing a front-facing camera, see CameraPreview.java in the ApiDemos sample application.
The Camera API also adds:
 新的Camera参数,包括对焦距离,对焦模式和预览最大/最小帧数。新的getFocusDistances(), getPreviewFpsRange(), and getSupportedPreviewFpsRange()用来获取Camera的参数,同样用setPreviewFpsRange()设置预览帧率。

Mixable audio effects(混合音效)
平坦的多媒体framework添加了对每首曲目或者全体音效的支持。包括强低音、耳机虚拟化,均衡和混响。
 新的android.media.audiofx包提供了API来存取音效。
 新的AudioEffect是控制音效的基础类由audio framwork支持。
 新的音频session ID允许应用程序联合AudioTrack or MediaPlayer实例来发起对音效的设置。
 新的AudioTrack类构造器使我们可以创建一个AudioTrack给制定的session ID。新的attachAuxEffect(), getAudioSessionId(), and setAuxEffectSendLevel()方法 新的attachAuxEffect(), getAudioSessionId(), setAudioSessionId(int), and setAuxEffectSendLevel()方法和支持的类型
To look at sample code for audio effects, see AudioFxDemo.java in the ApiDemos sample application。
 新支持EXIF中的元数据altitude tag给JPEG字段。新的getAltitude()方法可以获取EXIF altitude tag的值。
 新的setOrientationHint()方法允许应用程序通过video capture显示目标的MediaRecorder。

Download manager
平台包含一个新的DownloadManager系统服务用来处理long-running HTTP downloads。应用程序可以请求一个URI用于下载一个指定的目标文件。DownloadManager将下载放入后台运行,用于照顾HTTP交互和失败后重新尝试。
 应用程序可以获得一个实例DownloadManager通过调用getSystemService(String)并且通过DOWNLOAD_SERVICE。请求下载的应用程序通过这个API可以登记一个光被接听器给ACTION_NOTIFICATION_CLICKED。
 DownloadManager.Request类允许一个应用程序提供所有必要信息去请求一个新的下载,例如请求URI和下载目标。而请求URI使唯一要求的参数。setDestinationUri(Uri)
 DownloadManager.Query类提供方法让应用程序查询一个下载。
StrictMode
为了帮助开发者监听和改善他们的应用程序,平台提供了一个新的系统设备叫StrictMode。当执行一个应用程序,StrictMode捕获并通知开发者额外的磁盘或者网络activity会降低应用程序的执行。

UI Framework
 支持滚动
1. 在Views 和Widgets中新增支持了滚动。在Views中,应用程序可以使能/禁止滚动对于给定的view来说,设置滚动模式,控制滚动距离并处理滚动的结果。
2. 在Widgets中,应用程序可以控制滚动特征。SEEandroid.view.View and android.widget.OverScroller
3. ViewConfiguration提供方法getScaledOverflingDistance() and getScaledOverscrollDistance().
4. 新的overScrollMode, overScrollFooter, and overScrollHeader参数给< ListView >元素,用以控制滚动行为 支持touch filtering
See View class documentation.
Sample SecureView.java
 改善了时间管理
1. 新的基本类给输入时间,InputEvent。这个类提供了方法让应用程序决定时间的意义,例如从事件组中查询输入设备。KeyEvent and MotionEvent是InputEvent子集。
2. 新的基础类给输入设备,InputDevice。
 改善的手势事件MotionEvent
 文本选择控制
1. 新的setComposingRegion方法让一个应用程序标示一个文本区域用作撰写文字。getSelectedText方法返回一个选择文本给应用程序该方法存在于BaseInputConnection, InputConnection, and InputConnectionWrapper当中。
2. 新的textSelectHandle, textSelectHandleLeft, textSelectHandleRight, and textSelectHandleWindowStyle参数给<TextView>。
 Activity 控制
1. ActivityInfo添加了新的constants:
SCREEN_ORIENTATION_FULL_SENSOR, SCREEN_ORIENTATION_REVERSE_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_PORTRAIT, SCREEN_ORIENTATION_SENSOR_LANDSCAPE, and SCREEN_ORIENTATION_SENSOR_PORTRAIT
2. new constantIMPORTANCE_PERCEPTIBLE for the importance字段在ActivityManager.RunningAppProcessInfo中。
3. setPersistent(boolean)方法标示一个Acticity。
 通知文档和图形系统
1. TextAppearance.StatusBar.EventContent, TextAppearance.StatusBar.EventContent.Title, TextAppearance.StatusBar.Icon, and TextAppearance.StatusBar.Title给管理通知系统。
 WebView
1. 新的setUseWebViewBackgroundForOverscrollBackground()方法让一个WebView制定是否使用后台。
Extra Large Screens
平台支持额外的大屏幕尺寸,开发者可以让应用程序被设计成支持额外大屏幕尺寸通过添加<supports screens ... android:xlargeScreens="true">在manifest files。
应用程序可以使用一个新的large screens,xlarge来标示资源。详细资料见Supporting Multiple Screens.


Graphics
添加了OpenGL ES 2.0方法glDrawElements() and glVertexAttribPointer()在android.opengl.GLES20类中。
添加了YV12格式,一个平面的4:2:0 YCrCb format。

Content Providers
新的AlarmClock provider类用于设置提醒或处理一个提醒。这个provider包含一个ACTION_SET_ALARM Intent action。应用程序要接收SET_ALARM Intent 需要创建一个activity,这个activity要求这个SET_ALARM允许。应用程序要创建一个新的alarm需要使用Context.startActivity(),所以由选择那个alarm clock应用程被使用。
MediaStore同样增加了MEDIA_IGNORE_FILENAME flag ,这个flag告诉多媒体扫描去忽略这个目录以及其子目录包含的媒体。
Settings Provider 添加了一个新的Activity行为APPLICATION_DETAILS_SETTINGS和MANAGE_ALL_APPLICATIONS_SETTINGS。他们让一个应用程序显示屏幕的细节给一个指定的AP。
ContactsContract provider添加ContactsContract.CommonDataKinds.SipAddress数据类型,为了存储联系人的SIP地址。

Location
LocationManager可以跟踪程序请求wake locks 或wifi locks 的结果通过WorkSource类,让系统管理指定的程序。
Storage
* Android 2.3 新增StorageManager 类支持OBB (Opaque Binary Blob) 文件在Android 2.3上开发恐惧创建和管理OBB文件将在2011年早期无法使用。
* 加入一些判断虚拟SD分区,Android123提示大家,类似三星i9000可能存在虚拟的SD路径,所以isExternalStorageRemovable()可以知道是否是一个物理的SD卡.
Package Manager
* New constants for declaring hardware and software features. See the list in the New Feature Constants section, below
* PackageInfo 新增firstInstallTime and lastUpdateTime 可以查看一个软件的安装和上次更新时间,这比直接获取APK路径查看文件时间更可靠,对于付费的私有路径未root的机型无权限获取的。
* 新增getProviderInfo()方法获取content provider类相关信息.
Telephony
* TelephonyManager 增加了对NETWORK_TYPE_EVDO_B网络类型的定义NETWORK_TYPE_EVDO_B.
* 新的getPsc()返回私有混合码从UMTS网络.
Native access to Activity lifecycle, windows
Android 2.3 可以让AP本地访问声明周期和窗口

NativeActivity 是一个新的Activity类整个声明周期的方法可以通过本地C/C++代码直接访问,使用Android NDK r5或更高版本即可支持。
* 新增InputQueue类提供本地管理事件队列的回调接口
* 新增SurfaceHolder.Callback2 接口可以让C/C++代码管理SurfaceHolder .
* 新增takeInputQueue 和takeSurface() 方法在Window 让本地代码管理一个窗口事件.
Dalvik Runtime
3.1 * dalvik.system 移除了很多类,在上一版本这些类已经标记为将放弃使用包含以下
* Dalvik 核心库:
o 新增collections: ArrayDeque, NavigableMap, ConcurrentSkipListMap, LinkedBlockingDeque 数据类型
o 新增Arrays 辅助方法: binarySearch(), copyOf(), copyOfRange(), and others.
o 新增CookieManager 针对HttpURLConnection .
o 更完整的网络API支持比如InterfaceAddress NetworkInterface 和IDN
o File 读写控制
o String.isEmpty()
o Normalizer and Normalizer.Form
o 改进了javax.net.ssl server sockets.
New manifest elements and attributes
* 新增xlargeScreens 属性针对<supports-screens> 元素,可以支持更大设备比如说Android平板的定义。看Supporting Multiple Screens.
* 新的屏幕方向属性android:screenOrientation 在<activity> 中
New Permissions
* com.android.permission.SET_ALARM —设置一个提醒权限. SET_ALARM
* android.permission.USE_SIP — 使用SIP接收一个VOIP. SIP API
* android.permission.NFC — 允许程序使用NFC支持NFC API
New Feature Constants(新硬件特征)
这个平台增加了一些新的硬件特征。
3.1.1 android.hardware.audio.low_latency
——允许使用low-latency 音频管道在设备和可以提供敏感的延迟在声音输出输出上。(android.hardware.audio.low_latency)
3.20.2 android.hardware.camera.front
——前置摄像头控制类.(android.hardware.camera.front)

3.20.3 android.hardware.nfc
——NFC近距无线设备管理。(android.hardware.nfc)

3.20.4 android.hardware.sensor.barometer
——气压计感应器支持类The application uses the device's barometer
(android.hardware.sensor.barometer)

android.hardware.sensor.gyroscope
——陀螺仪感应器支持类The application uses the device's gyroscope sensor.
(android.hardware.sensor.gyroscope)
android.software.sip
——SIP VoIP类.(android.software.sip)

3.20.7 android.software.sip.voip
——使用基于SIP的VoIP 服务.(android.software.sip.voip)


3.20.8 android.hardware.touchscreen.multitouch.jazzh
and
——增强的多点触控类,可以实现跟踪5个或更多的点.
(android.hardware.touchscreen.multitouch.jazzhand)

更多相关文章

  1. Android中控制软键盘的方法总结
  2. [置顶] android Activity和service深入介绍
  3. 10、Android数据存储
  4. 【Android(安卓)SDK 开发】安卓开发常用工具和第三方库汇总
  5. Android(安卓)热修复对比选择
  6. EditText自动弹出软键盘的原因及解决方法
  7. 【 Android(安卓)10 四大组件 】系列 -- Service 的 “ 启动流程
  8. android的TextView的TextWatcher使用
  9. flutter 持久化存储-----数据库sqflite

随机推荐

  1. Android调试错误-No resource identifier
  2. Android(安卓)监听外部U盘插入
  3. Android 属性动画 源码解析 深入了解其内
  4. Android动画(一)Interpolator
  5. cvc-complex-type.2.4.d: 发现了以元素 '
  6. android中http访问总结
  7. 状态栏透明
  8. 2019-11-07 Android谷歌支付SDK集成问题
  9. Android自动化测试初探(二): Hierarchyview
  10. android 检查能否上网