背景介绍

谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办。大会将跟往年一样发布最新的 Android 系统,今年为 Android 8.0。谷歌在今年3 月21日发布 Android 新系统开发者预览版时已给新系统取名为 Android O。自2008 年发布以来, Android 依靠 Google 的生态运作,全球市场份额在2016年底已超过85% 。而近几年依靠 Android 发展起来的智能手机厂商不断增加, Android 生态大家庭也正在不断壮大。

Android O 是 Google 发布的第14个新系统版本。 那备受开发者关注的 Android O 有哪些新特性,开发者需要关注哪些问题呢?腾讯云乐固团队结合相关文档对此进行了分析总结,我们一起来看看 Android O 的新特性及开发指南。

Android O 新特性一介绍以及开发指南

通知渠道 — Notification Channels

通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对不同种类的通知进行精细控制,用户可以单独拦截或更改每个渠道的行为,而不是统一管理应用的所有通知。

开发指南

创建通知渠道的步骤:

  1. 创建 NotificationChannel 对象,并设置应用内唯一的通知 ID。
  2. 配置通知渠道的属性,比如提示声音等。
  3. 在 NotificationManager 中注册通知渠道对象。

Android O 新特性二介绍以及开发指南

画中画模式 — PIP

Android O 现已支持 Activity 的画中画模式。PIP 是一种多窗口显示模式,多用于视频播放,即你可以一边发微信一边看视频。

△ 画中画模式图示

开发指南

1> 关于生命周期

PIP 模式不会改变 Activity 的生命周期。在指定时间只有最近与用户交互过的 Activity 为活动状态。 该 Activity 将被视为顶级 Activity。 所有其他 Activity 虽然可见,但均处于暂停状态。当一个 Activity 处于 PIP 模式时,其实它是出在暂停状态,但其内容会继续展示。

2> API变更

在 Android O 中新增 PictureInPictureArgs 对象来指明你的 Activity 在 PIP 模式中的属性,比如长宽比等。

Android O 还新增了以下方法来支持 PIP。

  1. Activity.enterPictureInPictureMode(PictureInPictureArgs args):将Activity置于 PIP 模式之下。
  2. Activity.setPictureInPictureArgs():用于更新 Activity 在 PIP 模式下的设置。如果 Activity 正处于 PIP 模式之下,那么更改的属性将立即生效。

Android O 新特性三绍以及开发指南

自适应图标 — Adaptive Icons

Android 的屏幕适配一直以来都折磨着不少的开发者。为了帮助开发者更好的与设备 UI 集成,Android O 支持创建自适应图标,系统可以基于设备选择的蒙版将这些图标显示为不同形状。系统还将实现与图标的自动交互,并在启动器、快捷方式、设置、共享对话框以及概览屏幕中使用它们。

△ Android O 支持创建自适应图标图示

开发指南

1> 自适应图标支持多种形状

通过定义两张图层(前景与背景)你可以制定你的桌面图标外观,你必须提供没有形状和阴影的 PNG 格式图象作为图层。

△ 多形状桌面图标外观图示

2> 自适应图标由两张图层和一个形状来定义

在以前的 Android 版本中,图标大小定义为 48 x 48 dp。现在你必须按照以下的规范定义你的图层大小:

  1. 两张图层大小都必须为 108 x 108 dp。
  2. 图层中心 72 x 72 dp 范围为可视范围。
  3. 系统会保留四周外的 36dp 范围用于生成有趣的视觉效果(如视差和跳动)。

3> 创建你的自适应图标

首先你需要在 Application 标签中加入 Android:icon 属性,定义你的 icon 图标。其次如果你需要创建一个原型的 icon,你还需要加入 Android:roundIcon 属性。

接下来,你需要 res/mipmap-anydpi/ic_launcher.xml 文件中定义您的图层。在 选项中加入您的前景和背景图层。

Android O 新特性四介绍以及开发指南

固定快捷方式和小部件 — Pinning shortcuts

Pinning shortcuts 是一个比 APP shortcuts 更小的快捷方式,放置于桌面上,用于更快速的打开某一 APP 的某单一任务。Pinning shortcuts 在桌面上可呈现不同的图标显示。

△ 固定快捷方式和小部件图示

开发指南

  1. 首先使用 isRequestPinShortcutSupported() 方法校验手机是否支持启动这种快捷方式。
  2. 创建 ShortcutInfo 对象。
  3. 用 requestPinShortcut() 方法应用 Pinning shortcuts。你可以通过 PendingIntent 来通知你的 shortcuts 有没有创建成功。

Android O 其他特性介绍

除了以上几个新特性以外,Android O 还未增加了其他的功能。比如增加了 Autofill Framework,方便用户在不同 APP 之间填写信息。比如开放 android.permission.ANSWER_PHONE_CALLS,以后在自己的 APP 里也可以对来电做响应。

在性能优化上,Android O 还对隐式广播、后台服务和位置更新等进行了后台自动限制,以此来增加手机电池寿命。并对 Java 8 Language API 和 Runtime 进行了优化,使应用的运行速度更快,手机使用更流畅。

今年谷歌2017 I/O 开发者大会还会带来什么你期待的呢?我们也将持续关注。

总结

Android 每次的更新,虽然表面上没有非常惊艳的新功能,但在内部,Google 为 Android 的性能做了很多的优化,让 Android 更快更强更有内涵。

目前 Android 的市场占比已经超过85%,智能手机已经全面普及,对于广大手机厂商来说,适配 Google 的系统版本更新迭代是一个挑战。对于开发者来说,让自己的 APP 兼容新系统是首要任务。

腾讯作为中国安卓绿色联盟的创始企业,也不断在为 Android 生态做出贡献。腾讯云乐固团队也是紧跟 Google 的步伐,目前已全面兼容 Android O 。欢迎广大开发者体验试用。

体验地址:https://www.qcloud.com/product/ms

参考文档链接:

https://developer.android.com/preview/index.html

此文已由作者授权腾讯云技术社区发布,转载请注明文章出处

开发者必看|Android 8.0 新特性及开发指南的更多相关文章

  1. 腾讯云安全:开发者必看|Android 8.0 新特性及开发指南

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 A ...

  2. Android 8.0 新特性

    Android 8.0 (Android Oreo(奥利奥))新特性介绍 通知渠道 - Notification Channels 通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对 ...

  3. android 7.0 新特性 和对开发者的影响

    android 7.0新特性 - jiabailong的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/jiabailong/article/details/5241 ...

  4. Android 6.0 新特性 整理 资料来自网络

    Android 6.0新特性 Runtime Permissions Doze and App Standby Apache HTTP Client Removal BoringSSL Access ...

  5. Android 7.0新特性

    还望支持个人博客站:http://www.enjoytoday.cn 由于google目前不是无法直接在国内访问,故此,对于android 开发平台的7.0新特性做个保存.也可供大家查阅.原文转自an ...

  6. android 5.0新特性

    Android Lollipop 面向开发人员的主要功能 Material Design 设计 注重性能 通知 以大屏幕呈现 以文档为中心 连接性能再上一级 高性能图形 音频处理功能更强 摄像头和视频 ...

  7. Android 5.0 新特性

    Material Design Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干 ...

  8. Android Studio3.0 新特性 ~ New Features in Android Studio Preview (译文)

    原文地址:https://developer.android.google.cn/studio/preview/features/index.html 最新Android Studio版本是Andro ...

  9. 奥利奥好吃吗?Android 8.0新特性适配测试报告来啦!

    WeTest 导读 谷歌2017 I/O开发者大会上发布了Android 8.0的正式版, 其官方代号为Oreo(奥利奥).网上关于Android8.0新功能特性的介绍已铺天盖地,新功能特性会对程序应 ...

随机推荐

  1. jquery遍历节点 children(),next(),prev(),siblings()closest() 等一些常用方法...

    函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 返回被选元素旗下的所有直接子元素 .closest() ...

  2. cache、session与cookie

    cache.session.cookie的区别 session把数据保存在服务器端,每一个用户都有属于自己的Session,与别人的不冲突 就是说,你登陆系统后,你的信息(如账号.密码等)就会被保存在 ...

  3. VisualSVN安装配置与使用

    VisualSVN安装配置与使用 1.  所选服务器安装包:VisualSVN-Server-2.1.3.msi. 2.  客户端安装包:TortoiseSVN-1.6.2.16344-win32-s ...

  4. npm bower gulp

    npm即nodejs package manager ,是nodeJs的包管理工具,使用前需安装nodeJs(https://www.npmjs.com.cn/getting-started/inst ...

  5. 什么是Map-Reduce

    Map-Reduce本身并不是算法:而是一种处理模式:因为在大数据分布式这种场景下,处理数据运算和单机版不同:需要协同多台机器,并行计算:于是有了map-reduce这种模式,map阶段是数据处理,在 ...

  6. WCF揭秘学习笔记(5):WF定制活动

    WF(Windows Workflow Foundation,Windows工作流基础)为.NET提供了一种基于模型的.声明方式的过程执行引擎,它改变了传统的通过一行行编写代码来开发服务功能的方式. ...

  7. myeclipse修改编译器版本的方法 .

    今天在导入一个工程时,发现出现java.lang.UnsupportedClassVersionError: Bad version number in .class file异常,检查了一下我的my ...

  8. FPGA远程更新之限制条件

    FPGA可重配置带来了很高的灵活性,所以基于FPGA的设计/产品往往也会有后期更新/升级的需求.同时,需要更新/升级的FPGA板卡由于物理条件的限制,可能无法现场升级.比如: 1.FPGA板卡部署在异 ...

  9. Python网络爬虫-requests模块(II)

    有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env ...

  10. spring boot学习(1) hello world

    第一节:SpringBoot 简介 主要是简化开发: 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提 ...