Android 4.2沿用了Jelly Bean开发代号,版本名为:Jelly Bean MR2。相对于Android 4.1,4.2进一步的提高了系统性能,更新了系统UI,并加入了其它一些新特性。
Android 4.2继承了4.1已经加入性能优化— 全面垂直同步, 三倍缓冲,触摸延迟消除和CPU 随输入调整。 并加入了新的改善:
硬件加速2D 渲染 的调优使得一些诸如卷动和滑动等动画变得更顺滑。更加入了针对图层处理,和某些图形(圆角矩形、圆和椭圆)的绘制优化。
WebView 渲染优化进行了大量修整,页面卷动更加平滑。
Android的 渲染脚本( Renderscript )计算 是首次移植的计算平台,直接运行于 移动设备 GPU 上。它会自动启用 GPU 计算 资源,动态的为图形和图像处理进行性能优化。所有采用了渲染脚本技术的应用都可以在不 重新编译 的情况下, 在支持的设备上 ,由此GPU 混合获得性能提升。
Android 4.2重新定义了Jelly Bean的用户体验,并将诸如状态条、系统栏通知窗口等我们熟知的Android UI元素全面覆盖到平板上。
所有的屏幕尺寸都将在顶部显示 状态条,以及 通知新加入的 快速设置下拉菜单。我们熟悉的系统栏位于屏幕下部,同时适合左右手使用。 应用栏也将在所有的屏幕尺寸上启用。
现在,多个用户可以 共享同一个Android 平板,每个用户都有自己 独立的用户空间。用户可以在锁屏界面进行用户切换。
在多用户设备上,Android给每个用户分配了独立的环境,包括用户特定的虚拟SD卡存储。每个用户都有他们自己的主屏、widget、账户、设置、文件和应用,而系统负责将他们分隔开。所有的用户共享核心的系统服务,但系统会确保每个用户的应用数据是分开的。其最终效果就好像每个用户都拥有他们自己的Android 设备。
用户可以在他们自己的使用环境中随时安装/删除应用。为了节省存储空间,仅在设备中没有任何一个用户安装过的情况下,Google Play才会去下载应用APK。如果应用曾经安装过,Google Play
会跟平时一样记录下新用户的安装,但不会重新下载应用。多个用户可以使用同一个APK,但用户数据保存在各自的空间里。
对开发者而言, 多用户支持是透明的 — 你毋须为多用户环境做更多考虑。也毋须对发布的APK做任何改变( 但由于存储的改变,任何原先在程序中写死的 /mnt/sdcard 这样的存储位置都将出现问题)。系统会针对每个用户的空间管理应用,好像它运行在单用户环境中一样。
Android 4.2中,用户可以将应用widget放置于锁屏界面上,在不解锁的情况下,即可访问他们的应用。用户可以由安装的应用提供的widget中选择多至5个锁屏widget。锁屏界面将它们显示在独立的面板上,用户可以通过左右滑动面板来进行切换。
与所有应用widget类似,锁屏widget可以显示 任何种类的内容,并与用户进行直接交互。比如用于控制音乐播放的widget或者它们可以使用户在进行必要的解锁操作后,直接跳转到应用中的Activity。
对开发者来说,锁屏widget提供了一个吸引用户的崭新方式。它们可以帮你将应用内容放置于用户最常看到的位置,从而拥有更多用户使用你应用的机会。
你可以新建一个应用widget或扩展你目前的主屏widget来获得这个新功能。如果你的应用中已经有了主屏widget,你只需做非常少的修改,就可以令其支持锁屏widget。为了提供更好的体验,你可以更新你的widget以使用全部的锁屏界面。或在小屏幕上提供尺寸修改版本。你也可以在widget上添加新功能,以使其更适合锁屏界面使用。
白日梦是一种 互动屏保模式。当用户的设备置于底座或充电时启用。启用时,系统加载一个白日梦作为屏保。它其实是由安装的应用提供的远程内容服务。用户可以在设置应用中启用白日梦,然后选择一个应用用以显示。
白日梦接合了动态壁纸和主屏widget的优势,但更加有力。它们在全新的使用模式中帮你为用户提供各种内容。并响应用户交互,比如翻阅图片,播放音频/视频,或一触之下,跳转至你的应用。
因为白日梦会在充电或者放入底座的时候自动启动,所以这给了你的应用程序提供新型用户体验的机会,比如后靠模式、展示模式、演示模式、全屏浏览模式和吸引模式。所有这些都不需要特殊的硬件支持。
白日梦跟Activity很类似,可以执行所有Activity的操作:从渲染UI树(毋须使用RemoteViews)到直接用Canvas、OpenGL、SurfaceTexture等绘图。但是,白日梦并不是Activity,所以它们不会存在于返回堆栈当中,也不会在近期使用的列表中出现,也无法由你的应用中直接启动。
白日梦的实现是比较简明的,你可以直接使用你应用中其它部分的现成的UI组件和资源。你可以在一个应用中提供多个白日梦,而且可以为它们提供不同的内容和设置项。
Android 4.2为平台引入了 扩展显示支持。这种支持并不只是在不同的屏幕上显示相同的内容。应用可以针对不同的显示输出,显示不同的内容。应用可以借此来为用户提供新形态互动和娱乐体验。
应用通过一个新的显示管理器系统服务来与显示系统互动。您的应用可以枚举当前所有的显示设备,并获得它们的相关参数,比如尺寸、密度、显示名称、ID、对安全视频的支持等。当显示设备接入或拔除时,或当它们的参数变化时,您的应用也会收到回调通知,由此可以更好的管理您在扩展显示上的内容。
为了更方便的显示扩展显示上的内容,框架提供了一个新的叫做 展示( Presentation)的UI对象。您的应用只需提供一个将要使用的显示器、一个窗口主题以及显示内容。 展示将负责处理资源引用,并依据您目标显示的特性来渲染您的显示内容。
您可以用 展示来对两个或多个显示设备进行全面控制。
展示可以使你的应用控制远程窗口和它所显示的内容。并让你基于用户的输入事件比如点按、触摸手势、移动事件等对其进行管理。您可以使用平时所用的所有工具在展示中创建UI、渲染内容,不论是用 SurfaceView和SurfaceTexture直接创建视图层次,还是将流内容和相机预览直接绘制到窗口中。
当存在多个外部显示设备时,您可以创建任意多的展示,每个都在特定的显示器上显示不同的内容。在很多情况下,您可能只希望您的内容显示于某个特定的外部显示器上——最适合展示内容的那个。在这一点上,系统可以帮助您的应用选择最佳设备。
您的应用可以向显示管理器查询系统 默认展示显示设备,并在此设备改变时收到回调。或者,您可以使用Android 4.2中扩展的媒体路由服务,来在系统视频路由改变时接收通知。您的应用可以在默认的主Activity中进行内容显示,而在适当的展示设备接入时切换过去。您的应用也可以使用媒体路由的MediaRouteActionProvider和MediaRouteButton提供标准的显示输出选择UI。
对处理保护/加密内容的应用来说,显示API会上报连接显示器的 安全视频能力。您可以在应用中查询一个显示器是否支持安全视频输出或支持图像缓冲保护,并由此来选择合适的内容流或解码以保证内容可以正常显示。SurfaceView 对象加入了新的安全机制,您的应用可以设置安全标志位,来标记其中的内容不会出现于 截屏结果或不提供安全显示输出的显示器上。
由Android 4.2用户可以经由wifi,使用 Miracast 来连接外部显示器。这是一个由 Wi-Fi 联盟 定义的点对点无线显示标准。当无线显示器连接时,用户可以将包括图片、游戏、地图等任意内容以流的形式传输到大屏幕上。
应用可以在 无线显示器中获得一切外部显示功能的支持,而无须额外处理。系统会管理网络连接并将您的展示或其它应用内容以流的形式输出到无线显示器上。
Android 4.2引入了 由右到左文字的全面本地支持布局。在本地RTL支持下,您可以为所有用户带来完美的应用体验,不论他们的文字书写方向是由左至右还是由右至左。
当用户切换系统语言到由右至左书写方式时,系统提供自动的应用UI布局和所有可视组件的镜像,包括文字元素的显示和输入。
您的应用仅需极少改变即可支持 RTL 布局镜像。如果您的应用支持这一特性,只要在您应用的manifest文件中将所有的”left/right”布局属性改变为对应的”start/end”即可。系统就会根据需要处理您UI了。
为精确控制您的应用UI,Android 4.2包括了新的API帮您管理View组件中的布局方向,文字方向,文字对齐,布局分配和语言方向。您甚至可以使用由右至左的书写方向时,创建布局/绘图和其它资源的定制版本来进行显示。
为帮助您定制由右至左布局,HierarchyViewer工具中可以看到层次结构中所有的View的start/end,布局方向、文字方向和文字对齐属性
Android 4.2为国际用户提供了大量的 字体和字符优化:
默认的Android键盘也包括了多套更新的字典:
为更好的控制您的UI组件,使它们更模块化,Android 4.2中可以将一个 Fragment 嵌入另外一个 Fragment 中。新的Fragment管理器可以帮你把一个Fragment作为子结点植入到另外一个Fragment的视图层次中。
您可以在很多情景下使用嵌套Fragment,但最有用的地方是在一个动态可重用的UI组件内实现另外一个动态可重用UI组件。比如说如果您使用ViewPager创建了一个支持左右滑动的fragment,您现在可以在其中的每个Fragemnt中再嵌入其它的Fragment了。
为帮助您在应用中由嵌套Fragment获益更多,这个特性已经加入了最新的 Android 支持库。
Android 4.2引入了 新的相机硬件接口和流水线以改善性能。 在设备支持的情况下,应用可以使用新的 HDR 摄像情景模式来使用高动态范围技术拍摄。
此外,框架层提供了API,供应用 设置是否在拍摄时启用快门音。应用可以给用户选择来禁用声音,或选择其它的声音来替换标准快门音。
Android 4.2系统包括了大量的新开发者选项,以使构建兼顾外观和性能的应用更加容易。为在设备和模拟器上进行 调试和调优曝露了更多特性。
在运行Android 4.2的设备上,开发者选项默认隐藏。您可以在Android设备上找到设 置 > 关于手机 > 版本号,并连续点击 7 次来打开此选项。
Android 4.2中的新开发者选项包括:
Android 4.2包括了大量新的和 增强的平台技术以支持借助广泛硬件设备实现交流创新的用例。大部分情况下,新平台技术和增强不会直接影响您的应用,所以,您可以在不做任何修改的情况下享用其成果。
每个版本的Android发布均包括了大量的安全增强以保护用户。以下是一些Android 4.2中的安全增强:
Android 4.2引入了为Android设备进行过优化的新蓝牙栈。新蓝牙栈为Google和Broadcom共同开发,以取代BlueZ,它提供了改进的兼容性和可靠性。
Android 4.2改善了低延迟音频回放的支持,由Android 4.1发布起,就用 OpenSL ES,Soundpool和音频发生器API来改善音频输出延迟。这些改善 需要硬件支持:拥有低延迟音频特性的设备可以经由硬件特性常量来通知应用。新的AudioManager在支持此特性的设备上提供了查询本地音频采样率和缓冲大小的API。
Android 4.2引入了新的相机栈实现。相机子系统包括了相机流水线中的组件实现,诸如具有过程控制的连拍系统。
Android 4.2引入了基于来自NFC论坛的NCI标准的控制器支持。NCI提供了NFC控制器(NFCC)和设备Host之间的标准对话协议。Google和博通共同开发的新NFC栈对其提供了支持。
Dalvik运行时在架构范围内增强了性能和安全: