1. Android 4.0新特性
Android 4.0 |
API等级:14 |
改变的类或功能 |
详细描述 |
Social APIs in Contacts Provider |
User Profile:用于管理机主的个人档案以及联系人的资料 |
Invite Intent:用于邀请一个联系人进入某个社交网络 | |
Large photos:支持高分辨率的联系人照片 | |
Contact Usage Feedback:用于追踪记录用户使用特定的方法联系其他人的频度 | |
Calendar (日历) Provider |
允许我们读、增加、编辑和删除存储在Calendar Provider的日历、事件与会者,提醒和警示;同步适配器能够通过Calendar Provider同步其他日历服务的用户的日历 |
Event intent:用 Events.CONTENT_URI定义一个ACTION_INSERT的intent对象,可实现在日历中添加事件 | |
Voicemail Provider |
可集合呈现来自不同应用的语音邮件 |
Multimedia(多媒体) |
Media Effects:可调整各种图像和视频的视觉效果 |
Remote control client:新的RemoteControlClient允许媒体播放器能够被远程控制 | |
Media player:加入网络权限就可以使媒体播放器播放网络上的音乐;可自定义播放习惯 | |
Media types:增加了一下媒体种类: 1. HTTP / HTTPS的实时流媒体协议第3版 2. ADTS的原料AAC音频编码 3. WEBP图像 4. Matroska的视频 | |
Camera类 |
face detection 人脸检测 |
Camera.Area类:控制焦距和感光的白平衡以及自动曝光 | |
调用autoFocus()方法可实现摄像头自动对焦 | |
摄像头的其他功能:录制视频时,可以调用takePicture()方法保存照片,同时不中断视频的拍摄;使用setAutoExposureLock()和setAutoWhiteBalanceLock()方法可以锁定自动曝光和白平衡来防止用户更改这些属性;相机拍摄运行时,可以调用setDisplayOrientation()方法 | |
相机广播意图:Camera.ACTION_NEW_PICTURE和Camera.ACTION_NEW_VIDEO | |
Android Beam (NDEF Push with NFC) |
Android Beam是一个新的NFC功能,可实现Android设备之间的近场通信 |
Wi-Fi Direct |
支持与其他支持WiFi的设备直接点对点(P2P)连接,如Android系统的供电设备和其他类型的设备,用于迅速连接和数据传输,距离远大于蓝牙 |
Bluetooth Health Devices |
可创建使用蓝牙医疗设备 |
Accessibility |
Explore-by-touch mode:为有视觉障碍的人群提供屏幕阅读器的功能 |
Accessibility for views:sendAccessibilityEvent()方法有一些改变 | |
Accessibility services | |
AccessibilityManager新增的API | |
拼写检查服务 |
需实现SpellCheckerService类和SpellCheckerService.Session类的服务 |
语音朗读引擎(TTS) |
使用TTS引擎:setEngineByPackageName()被弃用,getEngines()方法实现查询 |
建立TTS引擎:使用TextToSpeechService | |
网络使用 |
能够让用户精确地看到他们的应用程序正在使用多少网络数据,允许用户管理并设置网络数据的使用权,甚至禁止某个应用使用后台数据 |
企业 |
VPNService:允许应用程序构建他们自己的VPN,作为一个Service运行 |
设备管理:应用程序管理设备的限制条件,如setCameraDisabled()方法和USES_POLICY_DISABLE_CAMERA属性可以禁止相机使用。 | |
证书管理:新的KeyChain类 | |
设备传感器 |
TYPE_AMBIENT_TEMPERATURE:一个提供环境(室)温度(摄氏度)的温度传感器 |
TYPE_RELATIVE_HUMIDITY:以百分比的相对环境(室内)湿度:湿度传感器 | |
重力感应器(TYPE_GRAVITY)、旋转矢量传感器(TYPE_ROTATION_VECTOR)、线性加速度传感器(TYPE_LINEAR_ACCELERATION)的性能得到改善,改进的传感器依靠陀螺仪传感器,以提高它们的输出 | |
Action Bar 工具栏更新以适应小尺寸屏幕 |
Split action bar:分裂工具栏 |
Action bar styles:setStackedBackgroundDrawable() and setSplitBackgroundDrawable()等可实现新的功能样式 | |
Action provider:用于特殊功能的Item | |
Collapsible action views:使用collapseActionView() and expandActionView()方法可显示或隐藏菜单的ActionView | |
其他APIs:setHomeButtonEnabled()、setLogo、setIcon、Fragment.setMenuVisibility()、FragmentManager.invalidateOptionsMenu() | |
User Interface and Views |
GridLayout网格布局 |
TextureView:用于播放视频等的View控件 | |
Switch widget:新的开关控件 | |
Popup menus弹出菜单 | |
Preferences:新的类SwitchPreference | |
System themes系统主题:Theme.DeviceDefault和Theme.Holo | |
Options menu button:屏幕上的菜单按钮取代硬件的按钮 | |
用户界面:在status bar的基础上新增加了navigation bar | |
输入框架 |
增加了对光标悬停事件(View.OnHoverListener)、手写笔、鼠标按钮事件的支持 |
Properties |
Property类提供了一个快速,高效和简单的方式来设置对象的各个成员变量 |
Hardware Acceleration硬件加速 |
硬件加速使用户体验到动画更流畅,滚动时更流畅,也会提高程序的整体的性能 |
JNI的变化 |
Java本地接口的引用由直接引用改成了间接引用 |
WebKit浏览器引擎 |
1、WebKit更新到534.30版本 2、在WebView和内置的浏览器中支持印度的字体(梵文,孟加拉语,泰米尔语,需要通过复杂的字形来组合的字符) 3、在WebView和内置的浏览器中支持埃塞俄比亚语,格鲁吉亚语,亚美尼亚语的字体。 4、支持WebDriver,通过它可以使得利用WebView来测试程序更加的容易 |
Permissions权限 |
新添加的权限: 1. ADD_VOICEMAIL:允许语音信箱服务来添加一个语音邮件到设备 2. BIND_TEXT_SERVICE:实现了SpellCheckerService 服务的服务必须添加这个权限 3. BIND_VPN_SERVICE:实现了VpnService 服务的服务必须添加这个权限 4. READ_PROFILE: 提供一个读权限给 ContactsContract.Profile提供器 5. WRITE_PROFILE: 提供一个写权限给 ContactsContract.Profile提供器 |
Device Features
|
新添加FEATURE_WIFI_DIRECT: 声明应用程序可使用WIFI进行点对点通信 |
| |
包括Android 3.0的组件 | |
Fragment |
一个框架组件,允许你将activity中不同的元素分离到自包含的模块中,每个模块定义自己的UI和生命周期 |
Action Bar |
|
Loader |
一个框架组件,方便在组合的UI中异步加载数据,可以动态获取数据而不用担心阻塞主线程 |
System clipboard |
应用可以使用系统的剪贴板拷贝和粘贴数据(不仅仅是文本内容)。可以剪贴的数据包括:普通文本,一个URL,或者是一个intent |
Drag and drop |
在view中内置了一个API集合,可以方便的进行拖拽的开发 |
Property Animation 全新的灵活的动画框架 |
可以让任何对象(例如:view,drawable,fragment,object等等)的任何属性动起来,并且定义动画的各种属性,例如:持续时间,补间内容,如何重复等等 |
RenderScript graphics and compute engine |
RenderScript提供高性能的3D图片呈现,和高性能的本地级别的计算API,你可以用C(标准C99)来写,提供了你希望的从本地环境执行的性能,同时可以跨越各种CPU和GPU |
Hardware accelerated 2D graphics |
可以为你的应用开启OpenGL呈现功能,通过在你的manifest文件的<application>元素中设置{android:hardwareAccelerated=”true”},也可以为每个activity单独设置。可以使得动画更加平滑,滚动更加平滑,提高整体性能和用户的交互响应 |
| |
包括Android3.1组件 | |
USB APIs |
通过强大的API,可以在应用中整合已经连接的外围设备 |
MTP/PTP APIs |
应用可以和直接连接的照相机或者是其他PTP设备交互,在设备附加和移除的时候收到通知,管理这些设备的文件和存储,进行文件和元数据的交换。MTP APIs实现了PTP(图片传输协议),PTP是MTP(媒体传输协议)的子集 |
RTP APIs |
Android开放了内置的RTP(实时传输协议)的API,在应用中可以用来管理实时和交互数据流。尤其是,在提供VOIP的应用,视频通话,视频会议,可以用API初始化音频流的会话,在网络上传输和接受数据流 |
支持操纵杆和普通的手势输入 |
|
| |
Android4.0内置的应用 | |
• API的演示 • Browser浏览器 • Calculator计算器 • Calendar日历 • Camera相机 • Clock时钟 • Custom Locale自定义区域 • Dev Tools开发工具 • Downloads下载 • Email电子邮件 • Gallery画廊 • Gestures Builder手势生成器 • Messaging消息 • Music音乐 • People人民 • Phone电话 • Search搜索 • Settings设置 • Speech Recorder语音记录器 • Speech Recorder语音记录器 • Widget Preview |
2. Android5.0新特性
Android5.0 |
API等级:21 |
| |
用户体验 | |
支持64位ART虚拟机 |
放弃了之前一直使用的Dalvik虚拟机,改用了ART模式,实现了真正的跨平台编译,在ARM、X86、MIPS等。ART虚拟机编译器在内存占用及应用程序加载时间上进行了大幅提升,谷歌承诺所有性能都会比原来提升一倍。 |
全新Material Design设计风格 |
三位视图,Activity之间的无缝转换,RenderThread能够保证流畅的动画效果。 |
支持多种设备 |
智能手机、平板电脑、笔记本电脑、智能电视、汽车、智能手表甚至是各种家用电子产品 |
全新的通知中心设计 |
优先显示对用户来说比较重要的信息,而将不太紧急的内容隐藏起来;锁屏界面也可以直接查看通知消息 |
全新的“最近应用程序” |
最近应用界面借鉴了Chrome浏览器的理念,采用单独的标签展示方式 |
改进的安全性 |
默认开启了系统数据加密功能,并且通过SELinux执行应用程序;个人识别解锁通过识别用户的声音、人脸或特定的智能设备解锁 |
不同数据独立保存 |
工作和生活中的数据分开保存 |
改进搜索 |
根据用户的位置信息或是搜索历史等进行自动过滤 |
蓝牙4.1 |
|
USB Audio |
外接音响 |
多人分享 |
可以在用户手机丢失的情况下,使用其它Lollipop设备登录账户,从云端下载联系人、日历等资料 |
Tap & Go |
通过NFC配对两部Lollipop系统手机,旧手机可以将需要备份的全部内容,通过蓝牙传输给新手机 |
新增访客模式 |
设备管理员可以控制不同配置下帐号的通讯功能:比如访客模式限制通话功能,普通用户模式限制通话和短信功能 |
| |
New APIs | |
User Interface |
Material design support:包括材料主题、视图阴影、RecyclerView控件、材料设计动画和界面过渡效果、基于视图状态的动画视图、可定制的UI小部件和带有调色板的应用程序工具栏、基于XML矢量图的动态或非动态的图形 |
Concurrent documents and activities in the recents screen:能够支持同时显示多个Activity | |
WebView updates:更新到Chromium M37,安全性和稳定性都有所提高 | |
Screen capturing and sharing:createVirtualDisplay()方法获取主屏幕的截屏,生成一个Surface对象 | |
Notifications |
Lock screen notifications:使用setVisibility()设置通知内容显示的级别以保护隐私数据 |
Notifications metadata:调用Notification.Builder中的方法设置通知的类别、优先级等 | |
Graphics |
Support for OpenGL ES 3.1:计算着色器、单独着色器、间接绘画命令、多重采样和模板、着色语言的改进、先进混合模式的扩展和调试、向后兼容OpenGL ES 2.0 and 3.0 |
Android Extension Pack:支持片段着色器、棋盘花纹和集合着色器、图片压缩格式、每个样本的插入和阴影、为缓冲器中的颜色附件提供混合模式 | |
Media |
Camera API for advanced camera capabilities:引入android.hardware.camera2实现拍照和图像处理 |
Audio playback:对AudioTrack做了一些更改 | |
Media playback control: MediaSession 取代了RemoteControlClient;新增MediaController类 | |
Media browsing:可使用android.media.browse接口浏览其他APP的多媒体数据 | |
Storage |
Directory selection:扩展了存储访问框架 |
Wireless and Connectivity |
Multiple network connections:动态搜索特定的有效地网络 |
Bluetooth Low Energy:不仅可以作为蓝牙连接的主设备,还可以作为从设备 | |
NFC enhancements:分享菜单中可使用Android Beam;使用invokeBeam()方法可调用其他设备上的android Bean实现数据共享;能够使用createTextRecord()方法创建含有文本的NDEF格式的记录;付款应用中可用registerAidsForService()动态注册ID | |
Project Volta |
Scheduling jobs:JobInfo.Builder类可定义任务运行的时间或者具体情形,以节省电量 |
Developer tools for battery usage:dumpsys batterystats命令生成电量使用的统计信息 | |
Android in the Workplace and in Education |
Managed provisioning:配置管理 |
Device owner:配置设备所有者 | |
Screen pinning:锁住屏幕,防止其他消息或Activity打开,打断正在运行的程序 | |
Printing Framework |
Render PDF as bitmap:使用PdfRenderer类将PDF文档转成bmp格式的图像 |
System |
App usage statistics:使用android.app.usage接口可统计各个APP被使用的情况 |
Testing & Accessibility |
Testing and accessibility improvements:对测试和易用性提供更多的支持 |
IME |
Easier switching between input languages:更轻松的转换输入法 |
Manifest Declarations |
Declarable required features:<uses-feature>元素中新增加了一些值 |
User permissions:新增BIND_DREAM_SERVICE | |
| |
New behaviors | |
虚拟机(ART Runtime) |
预编译、改进的垃圾回收机制、改进的调试 |
通知(Notifications) |
Material design style:正确设置通知图标的配色 |
Sound and vibration :Notification.Builder 方法为通知添加振动和声音;用STREAM_RING 和STREAM_NOTIFICATION来控制音量 | |
Lock screen visibility:默认情况下,所有的通知都是在锁屏时可见,可通过setPublicVersion()方法设置修订含有个人信息的通知 | |
Media Playback:使用Notification.MediaStyle对象生成显示媒体播放状态的通知 | |
Heads-up notification:当设备处于活动状态(如全屏播放)时,系统通知以浮动窗口的形式弹出,不会影响当前运行的APP | |
媒体控制(Media Controls) |
MediaSession取代RemoteControlClient类实现媒体控制 |
getRecentTasks() |
getAppTasks()取代ActivityManager.getRecentTasks()方法获得自己的任务 |
64-bit Android NDK |
Android 5.0引入了支持64位系统,引入了新的原生媒体NDK API,以及本地OpenGL ES(gl)3.1的支持 |
绑定Service(Binding to a Service) |
Context.bindService()方法需要显式的Intent,否则就会抛出异常,不需要为Service定义intent filter |
WebView |
系统默认是阻止混合内容和第三方Cookie的,如果要允许,需要用setMixedContentMode() 和setAcceptThirdPartyCookies()方法进行设置;能够智能地选择显示部分HTML文件 |
唯一性限制自定义权限 |
防止不同的APP发生自定义权限的冲突 |
TLS / SSL默认配置更改 |
更改了应用于APP中HTTPS 和 TLS/SSL通信中的TLS / SSL的默认设置 |
Support for Managed profiles |
Handling intents |
Sharing files across profiles |