Android 6.x
Marshmallow(棉花糖):2015年9月30日
(1)新增运行时权限概念
Android6.0或以上版本,用户可以完全控制应用权限。当用户安装一个app时,系统默认给app授权部分基础权限,其他敏感权限,需要开发者自己注意,当涉及敏感权限时,开发者需要手动请求系统授予权限,系统这时会弹框给用户,倘若用户拒绝,如果没有保护,app将直接崩溃,倘若有保护,app也无法使用相关功能。
(2)新增瞌睡模式和待机模式
瞌睡模式:当不碰手机,手机自动关闭屏幕后,过一会,手机将进入瞌睡模式。在瞌睡模式下,设备只会定期的唤醒,然后继续执行等待中的任务接着又进入瞌睡;
待机模式:假如用户一段时间不触碰手机,设备将进入待机模式。在这个模式下,系统会认为所有app是闲置的,这时系统会关闭网络,并且暂停app之前正在执行的任务。
(3)选择文本时,会在文本附近弹出悬浮框,悬浮框中会有类似“剪切”、“复制”、“粘贴”的选项
Android 7.x
一、新的Notification
Android N 添加了很多新的notifications API,进行了又一次的设计,引入了新的风格。
- 模板更新: 开发人员将能够充分利用新模板,仅仅需进行少量的代码调整。
- 消息样式自己定义: 新增自己定义样式、消息回复、消息分组等更加灵活。
- 捆绑通知: 系统能够将消息组合在一起(比如,按消息主题)并显示组。用户能够适当地进行 Dismiss 或 Archive 等操作。
- 直接回复: 对于实时通信应用。Android 系统支持内联回复,以便用户能够直接在通知界面中高速回复短信。
- 自己定义视图: 两个新的 API ,在通知中使用自己定义视图时能够充分利用系统装饰元素,如通知标题和操作。
二、多窗体支持(分屏模式)
- 手机和平板: 用户能够并排运行两个应用,或者处于分屏模式时一个应用位于还有一个应用之上。用户能够通过拖动两个应用之间的分隔线来调整应用。
- Android TV: 应用能够将自身置于画中画模式。从而让它们能够在用户浏览或与其它应用交互时继续显示内容。
三、Quick Settings Tile API
高速设置”通经常使用于直接从通知栏显示关键设置和操作。非常easy。在 Android N中。已扩展“高速设置”的范围,使其更加实用更方便。为额外的“高速设置”图块加入了很多其它空间,用户能够通过向左或向右滑动跨分页的显示区域訪问它们。
还让用户能够控制显示哪些“高速设置”图块以及显示的位置 — 用户能够通过拖放图块来加入或移动图块。
对于开发人员,Android N 还加入了一个新的 API。从而能够定义自己的“高速设置”图块,使用户能够轻松訪问应用中的关键控件和操作。
四、高速的应用安装路径
Android 运行组件的 JIT 编译器最实际的优点之中的一个是应用安装和系统更新的速度。
即使在Android 6.0 中须要几分钟进行优化和安装的大型应用,如今仅仅需几秒钟就能够完毕安装。系统更新也变得更快,由于省去了优化步骤。
五、随时随地低电耗模式
在 Android N 中。低电耗模式又前进了一步,随时随地能够省电。
仅仅要屏幕关闭了一段时间。且设备未插入电源,低电耗模式就会相应用使用熟悉的 CPU 和网络限制。这意味着用户即使将设备放入口袋里也能够省电。
六、Project Svelte:后台优化
Project Svelte在持续改善,以最大程度降低生态系统中一系列 Android 设备中系统和应用使用的 RAM。在 Android N 中,Project Svelte 注重优化在后台中运行应用的方式。
后台处理是大多数应用的一个重要部分。
处理得当,可实现非常棒的用户体验—即时、高速和情境感知。假设处理不得当,后台处理会毫无必要地消耗 RAM和电池,同一时候影响其它应用的系统性能。
Android N 删除了三项隐式广播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO)
。以帮助优化内存使用和电量消耗。
此项变更非常有必要,由于隐式广播会在后台频繁启动已注冊侦听这些广播的应用,删除这些广播能够显著提升设备性能和用户体验。
移动设备会经历频繁的连接变更,比如在 Wi-Fi 和移动数据之间切换时。眼下,能够通过在应用清单文件里注冊一个接收器来侦听隐式 CONNECTIVITY_ACTION广播,让应用能够监控这些变更。由于非常多应用会注冊接收此广播,因此单次网络切换即会导致全部应用被唤醒并同一时候处理此广播。同理,应用能够注冊接收来自其它应用(比如相机)的隐式ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO 广播。当用户使用相机应用拍摄照片时。这些应用即会被唤醒处理广播。
为减缓这些问题。Android N应用了下面优化措施:
1、面向 Android N 开发的应用不会收到 CONNECTIVITY_ACTION 广播,即使它们已有清单条目来请求接受这些事件的通知。在前台运行的应用假设使用BroadcastReceiver请求接收通知,则仍能够在主线程中侦听CONNECTIVITY_CHANGE。
2、 应用无法发送或接收 ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO广播。此项优化会影响全部应用,而不仅仅是面向 Android N 的应用。
未来的 Android 版本号还可能会弃用其它隐式广播以及未绑定的后台服务。有鉴于此。应避免依赖在清单文件里声明的接收器来侦听隐式广播或删除此依赖关系,以及避免或删除对后台服务的依赖关系。
Android 框架提供多种解决方式来降低这些隐式广播或后台服务的必要性。比如,JobScheduler API 提供了一个稳健可靠的机制来安排满足指定条件(比如连入不按流量计费的网络)时所运行的网络操作。甚至能够使用JobScheduler来响应内容提供程序所发生的变更。
七、Data Saver
在移动设备的整个生命周期。蜂窝数据计划的成本一般会超出设备本身的成本。对于很多用户而言。蜂窝数据是他们想要节省的昂贵资源。
Android N推出了Data Saver模式,这是一项新的系统服务,有助于降低应用使用的蜂窝数据,不管是在漫游,账单周期即将结束。还是使用少量的预付费数据包。
Data Saver让用户能够控制应用使用蜂窝数据的方式。同一时候让开发人员打开Data Saver时能够提供很多其它有效的服务。
八、Data Saver
Android N 将一项新的 3D 渲染 API Vulkan™ 集成到平台中。就像 OpenGL™ ES 一样,Vulkan是 3D 图形和渲染的一项开放标准。由Khronos Group 维护。
Vulkan是全然从零開始设计,以最小化驱动器中的 CPU 开销,并能让应用更直接地控制 GPU 操作。Vulkan还同意多个线程同一时候运行工作。如命令缓冲区构建。以获得更好的并行化。
Vulkan开发工具和库都已卷入Android NDK。
它们包含:
● 头
● 验证层(调试库)
● SPIR-V 着色程序编译器
● SPIR-V 运行时着色器编译库
● Vulkan仅适用于已启用Vulkan硬件的设备上的应用。如 Nexus 5X、Nexus 6P 和Nexus Player。
九、号码屏蔽
Android N 如今支持在平台中进行号码屏蔽。提供框架 API,让服务提供商能够维护屏蔽的号码列表。
默认短信应用、默认手机应用和提供商应用能够对屏蔽的号码列表进行读取和写入操作。其它应用则无法訪问此列表。
十、来电过滤
Android N 同意默认的手机应用过滤来电。手机应用运行此操作的方式是实现新的CallScreeningService。该方法同意手机应用基于来电的Call.Details运行大量操作,比如:
● 拒绝来电
● 不同意来电到达通话记录
● 不向用户显示来电通知
十一、多区域设置支持、多语言
Android N 如今同意用户在设置中选择多个区域设置,以更好地支持双语用例。
应用能够使用新的 API 获取用户选择的区域设置,然后为多区域设置用户提供更成熟的用户体验,如以多个语言显示搜索结果,而且不会以用户了解的语言翻译网页。
除多区域设置支持外,Android N 还扩展了用户可用的语言范围。它针对经常使用语言提供超过 25种的变体,如英语、西班牙语、法语和阿拉伯语。它还针对 100 多种新语言加入了部分支持。
应用能够通过调用 LocaleList.GetDefault() 获取用户设置的区域设置列表。
为支持扩展的区域设置数量。Android N 正在改变其解析资源的方式。
十二、新增的表情符号
Android N引入很多其它表情符号和表情符号相关功能,包含肤色表情符号和支持变量选择符。假设应用支持表情符号,请遵循下面准则,以便能充分利用这些表情符号相关功能优势。
- 在插入之前,检查设备是否包含表情符号。 若要检查系统字体中有哪些表情符号。使用hasGlyph(String) 方法。
- 检查表情符号是否支持变量选择符。 变量选择符能够呈现一些彩色或黑白的表情符号。在移动设备上。应用应呈现彩色的表情符号,而不是黑白的。
可是,假设应用显示嵌入在文本中的表情符号。那应使用黑白变量。若要确定表情符号是否有变量,使用变量选择符。如需有关支持变量的字符的完整清单,请參阅变量的 Unicode 文档中的表情符号变量序列部分。 - * 检查表情符号是否支持肤色。* Android N同意用户依照他们的喜好改动表情符号呈现的肤色。键盘应用应为有多个肤色的表情符号提供可视化的指示。并应同意用户选择他们喜欢的肤色。
若要确定哪些系统表情符号有肤色改动器,使用hasGlyph(String) 方法。能够通过读取Unicode 文档来确定哪些表情符号使用肤色。
十三、Android 中的 ICU4J API
ICU4J 是一个广泛使用的开源 Java 库集合,为软件应用提供 Unicode 和全球化支持。Android N 在android.icu软件包下显示 Android 框架中的 ICU4J API 子集,供应用开发人员使用。
迁移非常easy,主要是须要从com.java.icu命名空间更改为android.icu。假设已在应用中使用 ICU4J 捆绑包,切换到 Android 框架中提供的android.icu API 能够大量节省 APK 大小。
十四、OpenGL™ ES 3.2 API
Android N 加入了框架接口和对 OpenGL ES 3.2 的平台支持。包含:
● 来自 Android 扩展包 (AEP) 的全部扩展(EXT_texture_sRGB_decode除外)。
● 针对 HDR 的浮点帧缓冲和延迟着色。
● Android N同意用户依照他们的喜好改动表情符号呈现的肤色。键盘应用应为有多个肤色的表情符号提供可视化的指示,并应同意用户选择他们喜欢的肤色。若要确定哪些系统表情符号有肤色改动器。使用hasGlyph(String) 方法。
能够通过读取Unicode 文档来确定哪些表情符号使用肤色。
● BaseVertex画图调用可实现更好的批处理和流媒体服务。
● 强大的缓冲区訪问控制可降低WebGL开销。
十五、VR 支持
(面向Android的 Google VR SDK)
Android N 加入了新的VR 模式的平台支持和优化,以使开发人员能为用户打造高质量移动 VR体验。新版针对开发人员提供了大量性能增强特性。包含单一缓冲区渲染以及同意 VR 应用訪问某个专属的CPU 核心。在应用中,能够享受到专为 VR 设计的平滑头部跟踪和立体声通知功能。
十六、无障碍增强功能
(API參考 android.accessibilityservice.GestureDescription)
Android N 如今针对新的设备设置直接在欢迎屏幕上提供“Vision Settings”。这使用户能够更easy发现和配置他们设备上的无障碍功能,包含放大手势、字体大小、显示屏尺寸和TalkBack。
十七、密钥认证
使用硬件支持的密钥库。可更安全地在 Android 设备上创建、存储和使用加密密钥。
它们可保护密钥免受 Linux 内核、潜在的 Android 漏洞的攻击。也可防止从已取得根权限的设备提取密钥。
为了让硬件支持的密钥库使用起来更简单和更安全。Android N 引入了密钥认证。应用和关闭的设备可使用密钥认证以坚决地确定 RSA 或 EC 密钥对是否受硬件支持、密钥对的属性怎样,以及其使用和有效性有何限制。
应用和关闭的设备服务能够通过 X.509 认证证书(必须由有效的认证密钥签署)请求有关密钥对的信息。
认证密钥是一个 ECDSA 签署密钥,其在出厂时被注入设备的硬件支持的密钥库。
因此。有效的认证密钥签署的认证证书可确认硬件支持的密钥库是否存在。以及该密钥库中密钥对的具体信息。
为确保设备使用安全的官方 Android 出厂映像,密钥认证要求设备 bootloader向可信运行环境(TEE)提供下面信息:
设备上安装的操作系统版本号和补丁级别
● 验证的启动公钥和锁定状态。
● 除密钥认证外,Android N 还推出了指纹绑定密钥,在指纹注冊时不会撤销。
适配部分
在Android 7.0 的适配中,遇到了些问题,主要是新特性上的一些变化,须要针对性的做适配。
一、权限更改
随着Android版本号越来越高,Android对隐私的保护力度也越来越大。
从Android6.0引入的动态权限控制(Runtime Permissions)到Android7.0的“私有文件夹被限制訪问”,“StrictMode API 政策”。这些更改在为用户带来更加安全的操作系统的同一时候也为开发人员带来了一些新的任务。怎样让你的APP能够适应这些改变而不是cash,是摆在每一位Android开发人员身上的责任。
二、文件夹被限制訪问
随着Android版本号越来越高,Android对隐私的保护力度也越来越大。
从Android6.0引入的动态权限控制(Runtime Permissions)到Android7.0的“私有文件夹被限制訪问”,“StrictMode API 政策”。这些更改在为用户带来更加安全的操作系统的同一时候也为开发人员带来了一些新的任务。怎样让你的APP能够适应这些改变而不是cash,是摆在每一位Android开发人员身上的责任。
● 私有文件的文件权限不在放权给全部的应用,使用 MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE 进行的操作将触发 SecurityException。
应对策略:这项权限的变更将意味着你无法通过File API訪问手机存储上的数据了。基于File API的一些文件浏览器等也将受到非常大的影响,看到这大家是不是惊呆了呢,只是迄今为止,这样的限制尚不能全然运行。
应用仍可能使用原生 API 或 File API 来改动它们的私有文件夹权限。 可是,Android官方强烈反对放宽私有文件夹的权限。
能够看出收起对私有文件的訪问权限是Android将来发展的趋势。
● 给其它应用传递 file:// URI 类型的Uri,可能会导致接受者无法訪问该路径。 因此,在Android7.0中尝试传递 file:// URI 会触发 FileUriExposedException。
应对策略:大家能够通过使用FileProvider来解决这一问题。
● DownloadManager 不再按文件名称分享私人存储的文件。
COLUMN_LOCAL_FILENAME在Android7.0中被标记为deprecated, 旧版应用在訪问 COLUMN_LOCAL_FILENAME时可能出现无法訪问的路径。
面向 Android N 或更高版本号的应用在尝试訪问 COLUMN_LOCAL_FILENAME 时会触发 SecurityException。
应对策略:大家能够通过ContentResolver.openFileDescriptor()来訪问由 DownloadManager 公开的文件。
三、应用间共享文件
在Android7.0系统上。Android 框架强制运行了 StrictMode API 政策禁止向你的应用外公开 file:// URI。
假设一项包含文件 file:// URI类型 的 Intent 离开你的应用,应用失败,并出现 FileUriExposedException 异常,如调用系统相机拍照,或裁切照片。
应对策略:若要在应用间共享文件。能够发送 content:// URI类型的Uri,并授予 URI 暂时訪问权限。 进行此授权的最简单方式是使用 FileProvider类。 如需有关权限和共享文件的很多其它信息,请參阅共享文件。
● 给其它应用传递 file:// URI 类型的Uri。可能会导致接受者无法訪问该路径。
因此。在Android7.0中尝试传递 file:// URI 会触发 FileUriExposedException。
Android 8.x新功能
1、APP图标角标
安卓8.0原生支持了应用角标功能,不过并非数字,而是随着图标颜色自适应的纯*色圆形图案。在Pixel默认Launcher下,长按可显示详情,二级菜单支持向左滑动来忽略通知。
2、画中画功能
YouTube、Play Music已经支持画中画功能,可以实现应用第一浮层置顶
3、设置
颜色调整为白底黑字,蓝色高亮,放弃使用此前的深绿色;
汉堡菜单移除,一级菜单项目更精简(比如预言并入系统菜单,安全和位置合并,亮度整合进入电池选项等)。
同时,存储空间视觉优化,支持释放空间、智能整理和查看各类型文档的占比等。
4、通知面板
通知面板的变化幅度也非常大,全部启用白底黑字的设计,快捷按钮设计为6个,全部快捷按钮设计为3X3样式,支持多页面。
具体的通知均显示时间轴,部分APP可显示联系人图标等。
5、动态亮屏
比如Hangouts(环聊)有新消息时,会有绿色亮屏提示。
6、通知支持自定义提醒的间隔时间
7、智能文本选择
文本选择后会智能识别可能的二级操作,如电话号会弹出拨号快捷方式等。
8、智能填表
需要谷歌联网支持。
Android 9.x
1.自适应电池
如果你在Android6中使用了休眠功能,它会让所有的应用程序都休眠,而自适应电池功能是它的一个进阶版,默认情况下是启用的。
你可以在Settings> Battery > Adaptive Battery中进行设置该功能。
2.黑暗模式
你可以在Settings> System > Display > Advanced > Devicetheme中选中“Dark“项来打开该功能,来让Android设备上变暗。
3.应用程序操作
这类似于你可以通过长时间按下图标来调用应用程序的快捷方式,但考虑到它是谷歌启动程序,它可以为你的手机提供一些建议,因此完全不同。
例如,当你把耳机连接到你的手机时,你的手机会显示你最近的播放列表。或者会建议你打个电话给你妈妈,让她在这周内来看你。
4.应用定时器
设置应用程序的时间限制,当你在指定的时间段内使用它们之后,Android会自动将应用程序的图标变灰——暗示你应该把时间花在使用应用程序以外的事情上。
您可以自由设置程序的使用时限。
5.自适应亮度
Android的自动亮度调节现在更智能了,因为你可以训练它在使用特定的应用程序和不同的环境时知道你喜欢的亮度级别。
可以从快速设置下拉菜单中访问此设置。
6.切片
通过“切片”功能,您可以在使用Google搜索应用搜索应用时看到丰富的数据。这个功能的好处是,你可以直接跳过执行信息对话中列出的操作。
例如,在谷歌搜索应用程序中搜索lyft,你可以选择叫车带你去你的办公室、房子等等,价格也会分别显示出来。
7.辅助功能菜单
在Settings> Accessibility > Accessibility Menu中你可以激活新的辅助功能菜单,该菜单会启用一个图标,您可以点按该图标以执行快速设置,设置最近的应用和音量等操作。
8.更轻松的文本选择
由于在选择模式中改进了的、响应更快的把手,选择与文本交互变得更加容易。
9.新截图快捷方式
告别默认的Power+ Volume Down按钮组合,现在通过点击Power菜单中的图标可以随时获取屏幕截图。
10.一个新的Home按钮
主按钮现在有一个更酷的图标,形状是水平对齐的药丸。这是Android有过的最酷的Home按钮。
11.新的手势导航
和典型的back、home和recentbutton图标说再见吧,一起来使用支持手势导航的导航栏吧打,相信我,它也很容易使用。
通过点击新的药丸形状的Home键回到主页。通过向上滑动主页按钮两次打开您的应用程序抽屉。要查看最近的应用程序,请向上滑动Home按钮。在这里,您可以与应用程序交互来选择和复制文本向上滑动以清除列表按住应用程序的图标来实现分屏要打开一个应用程序,向右滑动,按住Home键在应用程序之间滚动,然后就会打开中间的那个。如果要切换到以前的应用程序,请快速向右滑动并释放按住Home键可以打开谷歌助手。.如果你可以在任何应用程序中回到上一个屏幕,后退按钮就会出现。
12.更容易的屏幕旋转
在此之前,您只能使用自动旋转开关。现在,Android可以选择将屏幕旋转到横向模式,并在点击图标时回到纵向模式。
13.通知信息
在Settings> Apps & notifications > Notifications中,您可以看到最新的应用通知,以及最能向您发送令人分心的通知的应用。
14.仪表板
Android的仪表板显示显示你花了多少时间使用手机,并通过以下方式将使用数据细分为更全面的部分:
一个饼图,表示每天花在应用程序上的时间解锁设备的次数您的通知总数您每天在设备上花费的小时数
15.通过Wi-FiRTT进行室内导航
AndroidPie支持RTT(Round-Trip-Time)(即IEEE802.11mc WiFi协议),使用户可以使用室内GPS风格的导航,可以在连购物中心和电影院这样的建筑中导航。
16.改进的DND模式
“请勿打扰”模式现在可以防止视觉中断,例如背景通知和频繁弹出窗口,您可以利用“Shush”模式完全消除手机的通知。
您需要做的就是将手机面朝下放置在任何表面上,DND将自动启用。
17.锁定模式
一个您可以从“电源”菜单切换的新选项:“锁定模式”,将禁用设备上的指纹解锁,你需要输入一个pin解锁你的设备。
如果一个不守规矩的人试图强迫你解锁你的设备,你可能会需要使用这个——你自己决定。
18.改进的消息应用程序
您现在可以在消息应用程序中查看图像,并使用smartreply使用notificationshade来回复邮件。此外,Android还会通过分析收到的消息来快速做出反应。
19.所有应用都使用HTTPS
这是对Android安全用户的肯定。AndroidPie上的所有应用程序默认都使用HTTPS。Android关心您的隐私。
20.媒体面板
由于音量控制专用于振铃器音量,Android的媒体设置现在将在屏幕右侧垂直对齐的滑块中显示音量控制,并且同一媒体面板为连接到您的Android手机的所有设备显示不同的音量控制设置。
21.ART的改进
在不需要被告知的情况下,AndroidPie会对其AndroidRuntime进行重大更改,从而提高其效率和性能,从而为您提供愉快的用户体验。
22.157个新的Emojis表情
157是一个很大的数字,包括美洲驼、冷脸、热脸、芒果果、滑板等。谷歌严格遵守其Unicode标准,去掉了中性字符。
23.WindDown
WindDown是一项新功能,它可以在你选择的就寝时间自动打开夜灯和DND模式,让你更容易入睡。
24.多摄像头支持
使用AndroidPie,开发人员可以使用多摄像头API同时访问来自2个物理摄像头的流。只要您的手机使用双后置摄像头或双前置摄像头,您就可以开始使用了。
25.Wi-Fi MAC随机化
Wi-FiMAC随机化功能的工作原理是,每次连接到新的Wi-Fi网络时,都会为设备随机分配新的MAC地址。这是第9版Android隐私和安全功能的众多改进之一。
AndroidPie还有许多其他功能,包括:
日历事件和天气信息显示在锁定屏幕上Settings> Apps & notifications > Notifications
来查看给你发送最多通知的应用
音量按钮仅调整媒体音量
一次最多可连接5个蓝牙设备
更清晰的表情符号字符改进的文字放大镜Notch支持