盘点最受开发者喜爱的Android 5.0 Lollipop API
英文原文:12 great Lollipop APIs every Android 5.0 developer will love
作为 Android 系统的一次重大升级,Android 5.0 Lollipop 突出采用全新的 Material Design 设计语言,不但在视觉和操作上更胜一筹,还包含扩展 UI 工具包供开发者使用,为应用添加 3D 实时阴影,可缩放矢量“drawbles”以及流畅的动画效果。本文着重介绍了其中值得开发者深爱的 12 款 API,赶紧一睹为快吧!
- 3D 视图和实时阴影
Android 5.0 的 elevation 属性能为应用添加了妙不可言的 3D 视图效果。开发者只需对应用的图像对象重新设定 elevation,图像下的实时阴影就会自动显现,打造出一种漂浮在屏幕之上的奇妙画面。此外,还可以用 setTranslationZ 函数来设定 elevation,例如 view.setTranslationZ (120)。或用 ViewPropertyAnimator.z () 和 ViewPropertyAnimator.translationZ ()函数来使 elevation 灵动起来,从而让应用脱颖而出。
- Activity Transitions
这个名为 Activity Transitions 的 API 让 Lollipop 应用有了更好的切换体验。开发者可通过寻找视图 ID 以及创建 Intent 和 Bundle 来定义不同 Activity 之间的动画切换,再启动 Activity(startActivity ()函数)就大功告成了。
- Heads-up
Android 5.0 通知中心的亮点在于名为 “Heads-up”的创新通知模式及其卡片式的清新风格,用户不必退出当前的全屏界面,即可启动或关闭漂浮在屏幕上方的提醒。比如通过设置 Heads-up 将来电提醒显示在文字屏幕(《爱丽丝梦游仙境》节选)的顶部。
在 Android 5.0 Lollipop 的锁屏上,用户无需下拉通知栏就能够查看新消息并进一步操作,还能将个别信息标记为隐私等等,功能强大。
- Leanback UI 和 Android TV 输入框架
Android 5.0 创新引入了 Android TV 的 Leanback UI,大大满足了开发 Android TV 应用的需求。
上面的代码显示的是如何在 Android 5.0 的应用清单中添加 LEANBACK_LAUNCHER 意图过滤器,让应用的 Leanback UI 跟 Android TV 严丝合缝。Android 5.0 自带 Leanback 等程序库,Android TV 输入框架和 aka TIF(帮助 TV 应用处理来自 HDMI 输入、电视调谐器和 IPTV 接收器的视频流)框架,在精简代码的同时,让应用 UI 与 Android 设备完美融合。
- Overview
Android 5.0 棒棒糖的“Overview(概览)”是传统多任务视窗的升级版,全新的 UI 呈现卡片重叠的即视感,清新又简洁。用户不仅可以在不同应用之间移动自如,还能在用一个应用的不同任务之间流畅切换,好不惬意。
虽然不能决定 Overview 界面的整体效果,但通过编写 Intent,开发者能自行定义应用向 Overview 添加或从中删除时的视觉体验。
- 低功耗蓝牙
Android 5.0 新开放的 API 可以让应用与低功耗蓝牙(BLE,Bluetooth Low Energy)的扫描(中心模式)和广告(外围模式)实现并行操作。低功耗蓝牙在保证应用性能和功能的同时降低了电量消耗,近些年来越来越受到健 康&健身类应用的青睐。
- OpenGL ES 3.1 和 Android 扩展包
OpenGL ES 3.1 和 Android 扩展包为 Android 5.0 开发者们提供高性能的 2D 和 3D 图像 API,包括计算着色器、模板纹理、加速视觉效果、高级纹理渲染、棋盘花纹着色器、几何着色器、ASTC 纹理压缩、样本缺失值插补和着色等强大功能,能够适用于不同品牌的图形处理器。
- MediaBrowser 和 MediaSession
android.media.browse API 能让 Android 5.0 应用在运行过程中浏览其他应用的媒体内容库。MediaBrowserService 代码能使内容显示在原应用上。总而言之,此 API 旨在实现不同应用间更好的融合——在视觉上呈现同样的用户界面,在操作上免除重复的麻烦。
除此之外,上图所示的 MediaSession 代替已被弃用的 RemoteControlClient,提供一组传输控制和 Media Button 的回调函数。
- 低延迟音频输入
Android 多媒体框架支持多种多样常规音频格式的捕捉和编码,让音频和应用轻而易举合二为一。若设备硬件支持的话,可以用 Media-Recorder API 来记录音频。在读取数据后,全新的音频捕捉设计就能流畅地完成任务了。高速客户端采用本地取样频率、通道数和位深度;普通客户端具备重新采样、上/下行通 道混合以及上/下位深度的特点。
- 兼容 RAW 图像格式的 New Camera API
RAW 格式以更高动态范围,更少人工痕迹,更多后期制作选择的优势略胜 JPEG 格式一筹,深受专业摄影师的青睐。如今迎来了 Android 5.0 棒棒糖时代,Android 相机也能拍出 RAW 格式的图片了。
上面的代码段主要是如何捕捉 Android 相机的 JPEG 格式图片。CameraDevice 的前身,即新的 Camera2 能兼容 RAW_SENSOR 图片格式,还能编写 Adobe DNG(数字底片)格式的 RAW 像素数据。
- 管理配置过程
传统上 Android 的安全性显然不及黑莓和 iOS,而如今 Android 终于扭转乾坤。开发者可借助 Android 5.0 全新的管理配置过程在设备上创建安全的工作文件夹,而应用开始运行时会有一个“Work”标记,IT 管理员负会责管理 Work 应用以及工作文件夹中的数据。
此外,在配置之前,开发者还可用编程应用的 NFC 数据传送进一步部署和激活一个 Device Owner。Device Owner 应用可借助 DevicePolicyManager 中的函数来实现管理设备中格局,安全以及应用的粒度控制。
- 截屏和分享
在 Android 5.0 Lollipop 之前,似乎没有哪个版本能够实现便利截图,我们曾试图借助 SDK 和调试器来截图,但由于必要的设备驱动程序难以定位,往往会产生更多的问题。另外一个方法是安装第三方截图应用,但必须要 root 设备。
现在大多数 Android 设备的 UI 支持至少不止一种截图功能。比如在 Moto X 上,同时按下电源开关和下切换键就可以截屏了。现在,Android 5.0 应用可以自行捕捉屏幕,首先用参数 MEDIA_-PROJECTION_SERVICE 调用 Context.getSystemService (),得到 MediaProjectionManager 类别实例;其次,调用 createScreenCaptureIntent ()得到一个 Intent;再次,使用 startActivityForResult ()启动屏幕捕捉;最后,将结果返回到 getMediaProjection ()上,获取捕捉数据。