Android2.2平台API变化概述

时间:2022-12-04 09:25:45

Android 2.2API变化概述

原文出处:http://androidappdocs.appspot.com/sdk/android-2.2.html

                                                 

从原文的Framework API开始翻译的,前面的部分很简单不需要翻译。 不是很清楚的地方保留了原文。

虽然只是小版本号的改变,这个版本还是有了不少变化的:


API 变化概述

应用在外部存储介质的安装

Android平台现在支持应用主动要求安装在外部存储设备(如SD卡),以取代将其安装在设备的内部存储区。

 

应用开发者可以通过manifest文件里一个新的<menifest>属性来说明更希望将应用安装在哪里,即android:installLocation。这个属性支持三个值:”internalOnly”,”preferExternal”,

”auto”。可能的话在安装时,系统会检查android:installLocation的值,根据倾向的位置安装应用的.apk。如果应用要求安装在外部,系统会将其安装在外部存储介质的一个私有加密的分区上。一旦应用的.apk被安装在外部,系统会通过用户设定里的应用管理(Manage Applications)来使用户可以在需要的时候将其移动到内部存储区域,反之也是一样。

 

默认情况下,系统将所有应用安装在设备的内部存储区,那些明确要求安装在外部的除外。这意味着系统总是将先前的应用安装在内部存储区,因为它们没有android:installLocation属性。不过必要的时候,仍然可以通过编译和配置来控制先前的应用,针对旧版本的平台将其安装在内部,针对Android2.2及以后的版本将其安装在外部。

 

更多的关于设置应用的安装位置的信息,包括什么类型的应用应当安装在外部,什么类型应用应当安装在内部,请参考App Install Location 文档。

 

备份管理(BackupManager)

平台现在提供一个通用的备份服务,应用可以用来备份和恢复用户数据,使得用户可以在更换设备或者重新安装应用时保留他们的数据。Backup Manager负责应用的数据在云端备份存储区域的传输。Backup Manager可以存储任何类型的数据,从二进制数据到文件,并且备份和恢复的操作是以原子操作的方式进行的。更多信息请参考Data Backup

 

图像(Graphics)

新增加OpenGL ES2.0 API android.opengl.GLES20

新增加ETC1ETC1UtilETC1Util.ETC1Texture类,增加了一些ETC1纹理压缩使用的设备方法。

新增加ImageFormat类。

新增加YUV图像格式API,支持从YUVJPEG的压缩,以及相关YUV数据的操作。

 

媒体(Media)

新增了一些android.media.AudioManager里的接口,用来管理audio focus,传输控制,音频focus的瞬间丢失和闪烁。

新增音频和SCO的通信用的广播intent—ACTION_SCO_AUDIO_STATE_CHANGED及额外的新指示状态。

新增了一些SoundPool里的接口,用来检测声音加载是否完成。

新增了一些SoundPool里的接口,用来暂停和恢复音频。

新增了一些MediaRecorder里的接口,用来指定音频设置,包括:channel数,编解码率,取样率。

新增了针对媒体数据库添加文件的接口,这样这些文件可以自动被扫描到。参考:MediaScannerConnection.scanFileMediaScannerConnection.OnScanCompletedListener

 

语音识别和第三方识别引擎

平台提供了新的语音识别接口,允许应用可以和可用的语音识别器进行更丰富的交互。例如,新接口可以将语音识别深度整合进一个输入法编辑器(IME)

平台还提供了一个RecognitionService基类允许第三方开发者创建识别引擎插件。

RecognitionListener接口,用来接收相关回调。

新的RecognizerIntent extras用来使请求应用指定如倾向语言,最小长度(毫秒单位)等细节。

 

照相和录像

修改了照相取景接口,提高取景流程的性能。

新增了照相显示方向,照相机现在可以工作在竖直方向了。

新增了一些android.hardware.Camera的接口用来管理缩放级别。

新增了一些android.hardware.Camera.Parameters的接口,用来查询和设定照相机设备设置,如焦距,曝光,缩放级别,取景角度等。

新增了视频和图像的缩略图工具。

新增CameraProfileCamcorderProfile类使应用可以检测硬件照相设备的能力。

android.media.ExifInterface里新增加了对检索GPS和焦距的支持。

 

设备策略管理(Devicepolicy manager

新的设备策略管理接口允许开发者编写“设备管理者”应用,可以控制设备的安全特性,如最短密码长度,数据清除等。用户可以选择他们设备上可以使用的管理者。更多信息可以看android.app.admin类或者DeviceAdminSample.java里的应用示例。

 

UI平台(UI Framework

新增UI模式“汽车模式”(car mode)和“夜间模式”(night mode),新增UiModeManager使应用可以针对指定的用户模式调整UI

新增ScaleGestureDetector允许Views可以通过提供的MotionEvents检测和处理包括多点触摸在内的手势变化信息。

改进了MotionEvent对象报告多点触摸事件的方式。

布局属性fill_parent重命名为match_parent,这个改动影响到了XMLJava代码(ViewGroup.LayoutParams)。注意,平台针对旧应用仍然保留对fill_parent的支持。

新增布局属性tabStripEnabledtabStripRighttabStripLeft,开发者可以用来定制TabWidget的底部strip

更好的支持Activity使用的受控对话框。

 

帐户和同步(Accountsand Sync)

新的方法AddPeriodicSync(),可以使用特定的账户,鉴权和指定的频率设置一个周期性的同步调度操作。

 

新的清单元素和属性(Newmenifest elements and attributes)

指定应用的安装倾向:

<manifest>里新增android:installLocation属性,指定应用默认的安装位置。

管理用户数据备份:

<application>里新增android:backupAgent属性,指定应用用来处理backup/restore操作的BackupAgent子类的组件名。

<application>里新增android:restoreAnyVersion属性,Boolean值,用来表明应用是否准备尝试恢复所有的备份数据,甚至备份是很明显来自一个比当前设备上还要新的版本。

管理平台的JIT编译:

<application>里新增android:vmSafeMode属性,Boolean值,指定是否在允许该应用时禁止JIT编译优化。

 

 

许可(Permissions)

android.permission.BIND_DEVICE_ADMIN – 任何设备管理广播接收者必须要求这个permission,以确保只有系统可以和它交互。

android.permission.KILL_BACKGROUND_PROCESSES– 允许应用调用killBackgroundProcesses(String)

android.permission.BIND_WALLPAPER – 所有的WallpaperService必须要求这个permission,保证只有系统可以和它交互。

android.permission.SET_TIME – 允许应用设定系统时间。