### **面向开发者的Android 7.1**
Android 7.1更新为用户和开发人员引入了各种新特性和功能。本文档重点介绍了开发人员的新功能。
#### **应用快捷方式**
您可以使用新的快捷键功能将用户从启动程序直接导入应用程序中的关键操作。用户只需长按应用程序的启动器图标即可显示应用程序的快捷方式,然后点按快捷方式以跳转到关联的操作。这些快捷方式是吸引用户的好方法,甚至可以在用户启动应用程序之前让用户展示应用程序的功能。
每个快捷方式都引用一个意图,每个意向都会启动一个特定的操作或任务,您可以为任何可以表达为意图的操作创建一个快捷方式。例如,您可以创建发送新短信,进行预约,播放视频,继续游戏,加载地图位置等的意图。
您可以通过将应用程序添加到APK中的资源文件来静态创建快捷方式,也可以在运行时动态添加它们。静态快捷键是常用操作的理想选择,动态快捷键可让您根据用户的偏好,行为,位置等突出显示操作。您可以在每个应用程序中最多提供五个快捷键。但是请注意,某些启动器应用程序不会显示您为应用程序注册的每个快捷方式。
在您的应用添加快捷方式之后,它们可以在任何支持它的启动器上使用,例如Pixel启动器(Pixel设备上的默认启动器),Now启动器(Nexus设备上的默认启动器)以及提供支持的其他启动器。
任何应用程序都可以创建快捷方式,任何启动器应用程序都可以添加对快捷方式的支持。Android 7.1为应用程序提供了一个API来注册快捷方式和启动器来读取已注册的快捷方式。有关详细信息,请参阅应用快捷方式开发者文档。
![Nexus 6P上的图像键盘支持](https://box.kancloud.cn/e593ebcbb18afc379225534f6e8338cf_281x569.png)
图像键盘支持:让用户直接从键盘输入图像和其他内容。
![Nexus 6P上的应用程序快捷方式](https://box.kancloud.cn/bb22651e6185ddaa06fe398792fbd2b6_278x568.png)
应用快捷方式:表面按键操作,让用户即刻深入您的应用。
#### **图像键盘支持**
用户经常想要与emojis,贴纸以及其他丰富内容进行交流。在以前的Android版本中,软键盘(也称为 输入法编辑器或IME)只能将unicode emojis发送到应用程序。对于丰富的内容,应用程序必须构建无法在其他应用程序中使用的特定于应用程序的emojis,或者使用变通方法(例如通过Easy Share Action或剪贴板发送图像)。
现在,在Android 7.1中,Android SDK包含提交内容API,为IME提供了一种通用的方式,可以将图像和其他丰富的内容直接发送到应用中的文本编辑器。v13 Support Library自修订版25.0.0开始提供API。
借助此API,您可以构建可从任何键盘接受丰富内容的通讯应用程序,以及可将丰富内容发送到任何应用程序的键盘。有关详细信息,请参阅[图像键盘支持开发者文档](https://developer.android.com/preview/image-keyboard.html)。
#### **新的专业表情符号**
使用Android 7.1,我们添加了新的表情符号,代表了女性和男性更广泛的职业。新的表情符号使我们现有的男性表情符号和女性表情符号之间保持平衡,并且有各种各样的肤色。
如果您是键盘或消息传递应用程序开发人员,则应该将这些表情符号合并到您的应用程序中。您可以通过调用动态检查新的表情符号字符Paint.hasGlyph()。
![](https://box.kancloud.cn/deb7888828eee42c0b259e162832b029_666x410.png)
#### **增强的动态壁纸元数据**
现在,您可以向显示墙纸预览的任何组件提供有关您的动态墙纸的元数据,例如墙纸选取器应用程序。您可以显示现有的元数据属性,如标签,说明和作者,以及上下文URL和标题的新属性,以将用户链接到关于墙纸的更多信息。
有关更多信息,请参阅 [Android开发人员博客](https://android-developers.blogspot.com/2016/10/android-71-developer-preview.html)。
#### **圆形图标资源**
![](https://box.kancloud.cn/eb8669693a58c480e281b89b6707d640_360x568.png)
您可以使用图像资源工具快速创建圆形图标资产。
应用程序现在可以定义在支持它们的设备上使用的圆形启动器图标。当启动程序请求应用程序图标时,框架将返回android:icon或者android:roundIcon,取决于设备构建配置。因此,应用程序应该确保 在响应启动器意图时定义两者android:icon和android:roundIcon资源。您可以使用Image Asset Studio来设计圆形图标。
您应该确保在支持新的圆形图标的设备上测试您的应用程序,以查看您的圆形应用程序图标的外观以及显示方式。测试资源的一种方法是运行Android模拟器,并使用针对API级别25的Google API仿真器系统。您还可以通过在Google Pixel设备上安装您的应用来测试您的图标。
有关设计应用程序启动器图标的更多信息,请参阅材料设计指南。
#### **存储管理器的意图**
应用程序现在可以激发一个ACTION_MANAGE_STORAGE意图,将用户带到系统的可用空间屏幕。例如,如果应用程序需要比当前可用空间更多的空间,则可以使用此意图让用户删除不需要的应用程序和内容以释放足够的空间。
#### **改进的VR线程调度**
Android 7.1提供了改进VR线程调度的新功能。这很有用,因为虚拟现实应用程序对延迟非常敏感。
应用程序现在可以将一个线程指定为VR线程。当应用程序处于[ VR模式时](https://developer.android.com/about/versions/nougat/android-7.0.html#vr),系统将更积极地调度该线程以最小化延迟。一个进程一次只能有一个VR线程,并且系统可能会使该线程限制它可以运行的时间。当应用程序不处于VR模式时,该设置无效。
要将线程指定为VR线程,请调用新 ActivityManager.setVrThread()方法。
#### **演示用户提示**
应用程序现在可以检查设备是否以演示用户的身份运行。
应用可以调用新UserManager.isDemoUser()方法来查看应用是否在演示用户沙箱中运行。这使得应用程序可以为潜在客户定制开始的体验。例如,作为演示用户运行时,应用程序可能会向用户提供更多的帮助,或者更详细地解释其功能。
#### **运营商和呼叫应用程序的API**
该系统现在为运营商和电话应用程序提供新的电话功能,其中包括:
* 多端点呼叫
* CDMA语音隐私属性
* Visual Voicemail的源类型支持
* 用于管理视频电话的运营商配置选项
#### **磨损装置的新屏幕密度**
Android现在支持Wear设备的几种新的屏幕密度,它们与一些设备的物理规格更接近。这样,您可以根据需要,将Wear应用程序中的图形微调到显示的屏幕上。
新的器件密度是:
* DENSITY_260
* DENSITY_300
* DENSITY_340
- 前言
- Google官网对Android API各版本的介绍
- jelly Bean(果冻豆)Android 4.1、4.2、4.3
- Android 4.1
- Android 4.2
- Android 4.3
- KitKat(Android 4.4.*)巧克力
- Android 4.4 APIS
- Lollipop(棒棒糖)Android 5.*
- Android 5.0 APIs
- Android 5.0 Changes(变更)
- Android 5.1APIs
- Marshmallow(棉花糖)Android 6.0
- Android 6.0 APIs
- Android 6.0 Changes(变更)
- Android 6.0 Samples
- Android 6.0 Testing
- Nougat(牛扎塘)Android 7.*
- Android 7.0
- API
- 行为变更
- 示例
- Android 7.1
- 开发者API
- 示例Sample
- Oreo(奥利奥)8.*
- Android 8.0
- 功能和 API
- Android 8.0 行为变更
- 向 Android 8.0 迁移应用
- Android 8.0 示例
- Android 8.1
- 后台执行限制
- 后台位置限制
- API指南
- Android 简介
- 应用基础知识
- 设备兼容性
- 系统权限
- 请求权限
- 定义权限
- 平台架构
- Java8 概览
- 在ART上验证应用行为
- 应用组件
- Intent 和 Intent 过滤器(Google官网介绍)
- 通用intent
- Activity
- 任务和返回栈(官网译文)
- 概览屏幕
- 活动简介
- 活动生命周期
- 活动状态更改
- 进程和应用程序生命周期
- 包裹和捆绑
- 最近的屏幕
- 片段
- 加载器
- 服务Service
- 绑定服务
- AIDL
- 内容提供程序
- 内容提供程序基础知识
- 创建内容提供程序
- 日历提供程序
- 联系人提供程序
- 存储访问框架
- 使用存储访问框架打开文件
- 创建自定义文档提供程序
- 应用小部件
- 应用小部件主机
- 进程和线程
- 应用资源
- 概览
- 提供资源
- 访问资源
- 处理运行时变更
- 本地化
- ICU4J Android框架API
- Android上的国际化
- 语言和语言区域
- 复杂的XML资源
- 资源类型
- 动画
- 颜色状态列表
- 可绘制对象
- 布局
- 菜单
- 字符串
- 样式
- 其他类型
- 应用清单
- <action>
- <activity>
- <activity-alias>
- <application>
- <category>
- <compatiable-screens>
- <data>
- <grant-uri-permission>
- <intent-filter>
- <manifest>
- <meta-data>
- <path-permission>
- <permission>
- <permission-group>
- <permission-tree>
- <provider>
- <receiver>
- <service>
- <supporte-gl-texture>
- <supports-screens>
- <uses-configuration>
- <uses-feature>
- <uses-library>
- <uses-permission>
- <uses-permission-sdk-23>
- <uses-sdk>
- 用户界面
- 界面概览
- 界面布局
- 线性布局
- 相对布局
- 列表视图
- 网格视图
- 回收站视图
- 外观和感觉
- 可下载的字体
- XML中的字体
- 表情符号兼容性
- 自动调整TextView
- 样式和主题-
- 输入控件
- 按钮
- 文本字段
- 复选框
- 单选按钮
- 切换按钮
- 微调框
- 选取器
- 输入事件
- 菜单Menu
- 设置
- 对话框
- 通知
- Toast
- 自适应图标
- 应用快捷方式
- 搜索
- 创建搜索界面
- 添加近期查询建议
- 添加自定义建议
- 可搜索配置
- 多窗口支持
- 拖放
- 无障碍功能
- 为应用设置无障碍功能
- 无障碍功能开发者检查单
- 构建无障碍服务
- 让应用更容易访问
- 使用节点树调试
- 构建可访问自定义视图
- 样式和主题
- 自定义组件
- 动画和图形
- 概览介绍
- 属性动画
- 视图动画
- 可绘制动画
- 画布和可绘制对象
- 基于物理的动画
- Spring Animation
- Fling Animation
- OpenGL ES
- 硬件加速
- 计算
- RenderScript
- 高级RenderScript
- Runtime API Reference(参考)
- Numerical Types(数字类型)
- Object Types(对象类型)
- Conversion Functions(转换函数)
- Mathematical Constants and Functions(数学常量和函数)
- Vector Math Functions(矢量数学函数)
- Matrix Functions(矩阵函数)
- Quaternion Functions(四元数函数)
- Atomic Update Functions(原子更新函数)
- Time Functions and Types(时间函数和类型)
- Allocation Data Access Functions(分配数据访问函数)
- Object Characteristics Functions(对象特性函数)
- Kernel Invocation Functions and Types(内核调用函数和类型)
- Input/Output Functions(输入输出函数)
- Debugging Functions(调试函数)
- Graphics Functions and Types(图形函数和类型)
- Index(索引)
- Media Apps(媒体应用)
- Media Apps Overview(媒体应用程序概述)
- Working with a Media Session(使用媒体会话)
- Building an Audio App(建立一个音频应用)
- Building a Media Browser Service(构建媒体浏览器服务)
- Building a Media Browser Client(构建媒体浏览器客户端)
- Media Session Callbacks(媒体会话回调)
- Building a Video App(建立一个视频应用)
- Building a Video Player Activity(建立一个视频播放器Activity)
- Media Session Callbacks-(媒体会话回调)
- Responding to Media Buttons(响应媒体按钮)
- Handling Changes in Audio Output(处理音频输出的变化)
- Managing Audio Focus(管理音频焦点)
- The Google Assistant and Media Apps(Google智能助理和媒体应用)
- 媒体和相机
- Supported Media Formats(支持的媒体格式)
- MediaPlayer(媒体播放器)
- MediaRecorder
- ExoPlayer
- Controller Amplitude with VolumeShaper(VolumeShaper控制器振幅)
- Media Routing(媒体路由)
- MediaRouter API
- MediaRouteProvider API
- Camera API(相机API)
- 位置和传感器
- Location and Maps(位置和地图)
- Location Strategies(位置策略)
- Sensors Overview(传感器概览)
- Motion Sensors(运动传感器)
- Position Sensors(位置传感器)
- Environment Sensors(环境传感器)
- Raw GNSS Measurements(原始的GNSS测量)
- 连接
- Bluetooth
- Bluetooth Low Energy(蓝牙低功耗)
- NFC
- NFC Basics(NFC基础知识)
- Advanced NFC(高级NFC)
- Host-based Card Emulation(基于主机的卡模拟)
- Telecom(电信)
- Self-Managed ConnectionServices(自我管理的连接服务)
- Wi-Fi P2P
- Wi-Fi Aware
- Companion Device Pairing
- USB
- Accessory(配件)
- Host(主机)
- SIP
- 文本和输入
- Autofill Framework(自动填充框架)
- Test your app with autofill(使用自动填充测试你的应用)
- Building autofill services(构建自动填充服务)
- Copy and Paste(复制和粘贴)
- Creating an IME(创建IME)
- Image Keyboard(图像键盘)
- Spelling Checker(拼写检查程序)
- 数据存储
- Storage Options(存储选项)
- Data Backup(数据备份)
- Account Transfer API(账户转移API)
- Auto Backup(自动备份)
- Key/Value Backup(键值备份)
- Testing Backup and Restore(测试备份和还原)
- App Install Location(应用安装位置)
- 库
- 支持库
- 功能
- 修订历史记录
- 库设置
- 数据绑定库
- 测试支持库
- 管理
- 设备策略
- 网络应用
- Supporting Different Screens in Web Apps(在网络应用中支持不同屏幕)
- Building Web Apps in WebView(在WebView中构建网络应用)
- Managing WebViews
- Migrating to WebView in Android 4.4(迁移到Android4.4中的WebView)
- Debugging Web Apps(调试网络应用)
- Best Practices for Web Apps(网络应用最佳做法)
- 最佳实践
- Supporting Multiple Screens(支持多种屏幕)
- Distributing to Specific Screens(分配到特定屏幕)
- Screen Compatibility Mode(屏幕兼容性模式)
- Designing for Seamlessness
- Supporting Tablets and Handsets
- 培训