Android8.0新特性和API

深入探索Android SDK-26:开发与调试Android 8.0 Oreo应用 本文还有配套的精品资源,点击获取 简介:Android SDK-26对应Android 8.0 Oreo操作系统版本,为开发者提供了一系列工具和资源来构建、测试和调试应用。它包含了平台工具、构建工具、API文档、系统图像和开发者库,支持关键特性如通知通道、后台限制、自动填充服务、画中画模式、Instant Apps以及安全性和隐私增强。本简介概述了安装和使用SDK-26的要... 阅读详情

本文翻译自google官方文档,原文链接:https://developer.android.com/about/versions/oreo/android-8.0.html

Android 8.0(API level 26)位用户和开发者引入了一系列新特性和能力。本文将重点介绍针对开发者的新功能。

用户体验

画中画模式

Android 8.0 允许Activity以画中画模式启动。PIP是一种特殊的多屏模式,主要用于视频播放。PIP模式在Android TV中已经存在;Android 8.0将这一特性移植到了其它的Android设备上。

当一个Activity处于画中画模式,它将处于pause状态,但是要继续展示内容。相反,你应该在onStop()中暂停播放,在onStart()中恢复播放。

为了使你的Activity支持PIP模式,在manifest中把android:supportsPictureInPicture设置为true。(从8.0开始,不需要设置这个属性,不管是在Android TV后者别的属性;只有当你的Activity支持其它的多屏模式时,才需要设置这个属性)。

Android 8.0引入了一个新的对象,PictureInPictureParams, 传入PIP方法总,用来指明当你的Activity处于PIP模式时的行为。这个对象指明了一些列属性,比如Activity最佳的宽高比。

已经存在的PIP方法可以用于所有的Android设备,不仅仅是Android TV。除此之外,Android 8.0引入了如下这些方法支持PIP模式:

  • Activity.enterPictureInPictureMode(PictureInPictureParams args):使Activity进入PIP模式。宽高比和其它配置由args指定。如果args中的任何一个域为空,系统将会使用你最近一次调用Activity.setPictureInPictureParams()所设置的值。指定的Activity将会位于屏幕的一角。屏幕的其余部分将会被之前的Activity覆盖。进入PIP模式的Activity将处于pause状态,但仍然启动。如果用户点击处于PIP模式的Activity,系统展示一个菜单供用户交互;当Activity处于PIP模式,点击事件将不能传递到该Activity。

通知

在Android8.0, 我们重新设计了通知,提供了更建议的并且更趋于一致的方法来管理通知的行为和设置。这些变化包括:

通知频道:Android8.0引入了通知频道的概念,你可以为每一种你想要展示的通知创建一个定制化的频道。与通知频道相关的用户接口是通知分类。想要学习如何实现通知频道,看这里: Managing notification channels.

通知点缀:Android支持在应用图标上显示圆点,或者徽章。通知圆点用来提示存在但还没有被用户处理的通知。想要学习如何使用通知圆点,点击这里:Notification badges。

休眠:用户可以休眠通知,这可以让通知消失一段特定的时间,然后再次出现。再次出现的通知和之前的具有相同的级别和重要等级。用户可以移除或者更新一个休眠的通知。但是更新一个休闲的通知并不会让它出现。

通知超时:创建一个通知时可以使用setTimeoutAfter()设置超时。你可以用这个方法指定一个特定的周期,超过这个时间段之后通知将被取消。你也可以在指定的时间到达之前显示的取消这个通知。

通知设置:当你使用Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES intent来创建一个从通知指向你的应用通知设置的链接的时候,你可以使用setSettingsText()来设置显示的文本。系统可以提供下面的extras给这个intent,用来过滤哪些是你的app必须显示的:EXTRA_CHANNEL_ID, NOTIFICATION_TAG,和NOTIFICATION_ID。

通知取消:用户可以手动取消通知,app也可以通过代码达到同样的效果。你可以通过实现NotificationListenerService类中的onNotificationRemoved()方法,来指定何时以及为什么一个通知被取消。

背景色:可以设置通知的背景色。你应该只在需要引起用户注意的重要的通知中使用这一特性。比如,可以用于和驾驶方向,电话等相关的通知。你可以通过setColor()设置背景色。你可以通过setColorized()来使能背景色的设置。

消息样式:在Android8.0,通知可以使用MessingStyle类在折叠样式中展示更多的内容。你可以将MessingStyle用于与消息相关的通知。你也可以通过使用addHistoricMessage()来为对话提供上下文,通过将历史消息加入到消息相关的通知中。

自动填充框架

创建账号,登录,信用卡交易等耗费时间,而且容易出错。用户对经常要求这种重复操作的app将会很容易产生厌倦。

Android8.0(API26)通过自动填充框架,使得填写表格,比如登录,或者信用卡表格,变得更容易。如果用户选择了自动填充,已有的和新app都可以使用自动填充框架。

通过一些简单步骤就可以使用自动填充框架。要获取更多信息,点击这里Autofill Framework Overview

可下载的字体

Android8.0(API level 26)和Support Library 26允许你从一个提供者应用请求字体,而不是将字体和APK绑定,或者,APK可以下载字体。这可以减小你的apk的大小,并且允许多个app共享同一份字体。

要获得下载字体的更多信息,看这里:Downloadable Fonts

XML中字体

Android8.0(API level 26)引入了一个新特性,xml中的字体,允许将字体作为资源。这意味着,将不需要将字体绑定为assets。字体将被编译进R文件,并且被系统自动接受为资源。然后你可以通过新的资源类型,font,来访问这些字体。

Support library 26为那些运行运行api14及以上版本的设备提供了这一特性的完整支持。

要获取更多信息,关于xml中的字体,以及恢复系统字体,请访问这里:Fonts in XML

自动尺寸的TextView

Android8.0(API level 26) 允许你这样设置你的文本,根据TextView的尺寸自动的放大或者缩小文本。这意味着,针对不同尺寸的屏幕,或者动态的内容,进行优化将会变得很容易。获取更多信息,请点击这里:Autosizing TextView

自适应图标

Android引入了自适应启动图标。自适应图标支持可视化效果,并且可以根据不同的设备model,显示一系列不同的形状。要学习如何创建自适应图标,点击这里:Adaptive Icons

颜色管理

图像应用的开发者现在可以利用新设备去展示更广的色域。为了展示宽色域图像,app需要在manifest中打开一个flag,并且以嵌入的广域颜色配置加载bitmap(AdobeRGB,Pro Photo RGB,DCI=P3,等等)。

Webview API

Android 8.0提供了一些新的API来管理WebView。这些API改进了应用的稳定性和安全性,包括:

版本API

Google安全浏览API

中止处理API

渲染器的重要性API

要学习如何使用这些API, 点击这里:Managing WebViews

WebView类现在包含了一个安全浏览API来加强浏览的安全性。要获取更多信息,看这里: Google Safe Browsing API

填充快捷方式和小部件

Android8.0引入了应用内的快捷方式和小部件填充。在应用内部,可以为支持的启动器添加快捷方式和小部件,这受制于用户权限。

获取更多信息,看这里:Pinning Shortcuts and Widgets

最大屏幕宽高比

android 8.0(API 26)改变了配置app最大宽高比的方式。

首先,8.0引入了maxAspectRatio这个属性,可以用来设置app的最大宽高比。除此之外,在8.0及以上系统里,app的最大宽高比将是运行app的设备的宽高比。

要获取更多信息以及如何设置宽高比,请访问这里Supporting Multiple Screens

多屏显示支持

从8.0开始,平台加强了对多屏显示的支持。如果一个activity支持多窗口显示,并且运行在一个多显示器的设备上,用户可以将这个activity从一个显示器移动到另一个显示器。当一个app启动了一个activity,app可以决定这个activity应该在那个显示器上运行。

如果一个activity支持多窗口显示,那么8.0系统自动为它提供多显示器支持。你应该测试你的应用,看它是不是能够正常的运行在多显示器环境中。

只能有一个activity处于resumed状态,即使app支持多显示器模式。获取焦点的activity将处于resumed状态,所有其它可见的activity处于pause的状态,但不是stopped。要获取关于多个activity可见状态下activity的声明周期,看这里Multi-Window Lifecycle

当用户将activity从一个显示器移动到另一个显示器,系统会调整activity的大小并作出其它必要的运行时调整。activity可以自己处理这些改变,或者让系统销毁activity所在的进程,再基于新的尺寸构建一个新的进程。要获取更多信息,看这里Handling Configuration Changes

ActivityOptions提供了两个新的方法来支持多显示器:

setLaunchDisplayId(): 设置当activity启动时,它应该运行在哪一个显示器上。

getLaunchDisplayId():返回activity当前所在的显示器。

adb shell 也已经扩展来支持多显示器。shell start命令可以用来启动一个activity,并指定activity运行的显示器:

adb shell start <activity_name> --display <display_id>

统一的布局margin和padding

Android SDK 26:新特性及开发实践详解 Android SDK 26是Google推出的一个重要版本,旨在提供更稳定、高效的应用开发和运行环境。它不仅优化了现有功能,还引入了诸多新特性,例如通知频道和自动填充服务。在Android 8.0(Oreo)中引入了通知频道(Notification Channels)的概念,这允许应用开发者为不同类型的通知创建独立的频道。此变化旨在赋予用户更细致的控制权,使他们能够根据通知的重要性和类型管理应用的通知。 阅读详情

相关推荐

Android8.0 API26 帮助文档CHM (谷歌翻译版+原版)

Android8.0 API26 (谷歌翻译版+原版) 顺便打个包

Notification在应用通知管理页添加更多设置入口

Notification在应用通知管理页添加更多设置入口 故事起源 某天产品在手机通知中心中知乎的通知管理页发现了这个↓ 然后就兴高采烈地来和开发说我们也要加这个o( ̄▽ ̄)ブ 苦逼开发只能开始研究这个入口是怎么加上去/(ㄒoㄒ)/~~ 故事过程 先是去看了一下Notification的官方文档,没看出个什么所以然来。 google和baidu一番,发现了ACTION_APP_...

Keizaang的博客 551

最全Android版本API对应表,Android1.0-Android 15.0发布时间列表详细说明

Android 15.0 (VANILLA_ICE_CREAM) 35 Android 14.0 (UPSIDE_DOWN_CAKE) 34 Android 13.0(T) 33 Android 12.0(S) 31,32 Android 11.0(R) 30 Android 10.0(Q) 29

AppNinja 开发手记 2万+

CS算法实战:用MATLAB从零实现SAR点目标成像(附完整代码)

本文详细介绍了如何使用MATLAB从零实现SAR点目标CS成像算法,涵盖Chirp Scaling(CS)算法的核心理论、距离徙动校正(RCMC)和方位压缩等关键步骤。通过完整的代码示例和实战技巧,帮助读者掌握SAR成像处理算法,提升遥感图像处理能力。

weixin_29211309的博客 179

目标检测数据集 第069期-基于yolo标注格式的玻璃清洁状态检测数据集(含免费分享)

但这类技术的落地,离不开大量标注规范、场景丰富的数据集作为算法训练的支撑,玻璃清洁状态检测数据集的出现,正是为了满足这一市场与技术需求。在高校与科研机构的计算机视觉研究中,该数据集可作为基础研究素材,用于探索物体状态识别的算法优化方向,比如针对玻璃这类透明物体的检测算法改进,或是小样本场景下的状态识别研究。通过摄像头采集车窗、挡风玻璃的图像,算法自动检测玻璃清洁度,若识别到脏污影响视线,及时提醒运维人员清洁,避免因玻璃脏污引发的安全事故,提升交通出行的安全性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 128

Android 各版本特性(Android6-14)

Android各版本新特性。

DL-ZhangTeng的博客 3万+

深入YOLOv8内部核心:用RepNCSPELAN4深度重构主干网络,即插即用的高效涨点方案

本文提出了一种改进YOLOv8目标检测模型的方法,通过在YOLOv8中引入RepNCSPELAN模块来提高检测性能。该模块融合了RepVGG重参数化思想与CSP-ELAN结构,在保持推理速度的同时增强特征表达能力。实验结果表明,改进后的RepNCSPELAN-YOLOv8相比原模型在多项指标上均有提升:准确率从0.84提高到0.86,召回率从0.72提升至0.81,mAP50和mAP50-95也分别提高了0.06和0.04。文章详细介绍了模块设计原理和移植步骤,包括配置文件创建、代码修改等关键环节,为YOL

FJN110的博客 186

Android 8.0新特性

Android 8.0 功能和 APIPS1:本文摘自 Android Developers(Android开发官网)仅仅是为了Android变妹子做个记录PS2:今天看到Android8.0.更新了,而且万能的Android小人居然穿上了小裙子,这是摇身一变变妹子啊,更有写代码的冲动了有木有?迫不及待的将8.0的新特新原样搬了过来~~~ 主要的开发者功能Android 8.0 为用户和开

1558

AI Agent智能体在Android开发中的应用

本文探讨了AIAgent(智能代理体)在Android开发中的应用,涵盖技术原理、实践案例与未来趋势。AIAgent通过机器学习、自然语言处理等技术实现代码生成、测试自动化及性能优化,显著提升开发效率。例如,强化学习模型可优化APP响应时间(公式:$\text{响应时间}=f(\text{负载},\text{资源})$),自动化测试覆盖率提升至95%。

郑伟强dev的专栏 124

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速),滤波使用EKF。附完整代码

CV模型:状态包含位置、速度和零加速度(9维状态),状态转移矩阵忽略加速度项CA模型:完整包含位置、速度和加速度(9维状态),状态转移矩阵包含二次项过程噪声矩阵Q分别根据两种模型的运动特性推导。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 560

Android O 8.0 新特性(一) 功能和 API

官网地址:https://developer.android.com/preview/features.htmlAndroid P 为用户和开发者引入众多新特性和新功能。本文重点介绍面向开发者的新功能。 要了解新 API,请阅读 API 差异报告或访问 Android API 参考 — 为醒目起见,将突出显示新 API。 请务必查阅 Android P 行为变更以了解平台变更可能给您的应用带来哪些...

wobushizhainan的博客 1597

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7584

神经网络API、Kotlin支持,那些你必须了解的Android 8.1预览版和Android Studio 3.0新特性

Google 正式发布 Android 8.1 首个开发者预览版和 Android Studio 3.0!

优快云资讯 1万+

49、Linux内核内存管理:MGLRU、DAMON与OOM杀手详解

本文详细解析了Linux内核内存管理中的三大核心机制:MGLRU(多代LRU)页面追踪与回收机制、DAMON数据访问监控工具及其在内存优化中的应用,以及OOM(内存不足)杀手的工作原理和触发方式。同时,文章还介绍了VM overcommit_memory策略的设置及其对内存分配的影响,帮助开发者和系统管理员更好地理解Linux内存管理机制,从而优化系统性能和稳定性。

dropout6artist的博客 107

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

那些你必须了解的Android 8.1预览版和Android Studio 3.0新特性 ——神经网络API,Kotlin支持

        曾仅用 55 秒发布会的 Android 8.0 Oreo 在时隔两个月后,Google 于近日在其官方网站上正式发布了 Android 8.1 首个开发者预览版,此次升级涵盖了针对多个功能的提升优化,其中包含对 Android Go (设备运行内存小于等于 1 GB)和加速设备上对机器学习的全新神经网络 API(Neural Networks API)。也基于 Oreo 用户与开...

倚栏静望的博客 5989

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android 8.0 Oreo 新特性

Android 8.0 Oreo 新特性:自动填充功能 画中画功能 Instant Apps功能 自适应TextView的字体大小 可下载字体 http(s)新的规则变更 悬浮在其他应用之上的提醒窗口 后台执行限制 后台位置限制

SmartTiger 2969

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android 8.0 Oreo

Android Oreo 中提供哪些功能? Android Oreo 为您提供许多新的方式,让您能有效扩展应用及提升开发效率。 画中画 通知圆点 通知渠道 自动填充框架 自动调整 TextView 的大小 可下载字体 自适应图标...

lyglostangel的专栏 989

Android 2分钟刷Android 8.0系统 和 8.0适配 完美方案

1.Android 3步搞定事件分发机制,再也不用担心onTouch和onTouchEvent&amp;dispatchTouchEvent https://blog.csdn.net/WHB20081815/article/details/62888575 2.Android 滑动冲突的完美解决方案 listview和scroView https://blog.csdn.net/WH...

深南大盗的博客 3万+

android 字自动缩小,Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView

Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView8.0出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试。这几天新的需求来了,需要显示用户的金币,默认是大字体展示,但是又要求用户的金币过多(例如: 9999999 金币)时不能超出布局范围,所以需要在用户金币过多时为了将金币显示出来,需要减小字体大小。这样的需求真的和这个新...

weixin_35968240的博客 280

android 4.0 java版本_(1)重学java8,Android Studio 4.0官方支持java8,无需设置最低API

Android Studio 3.x时代,项目中如果需要使用java 8新特性,除lambda表达式外,如需使用stream 、time、函数接口、Optionals、ConcurrentHashMap等Api,需要调用前限制api>= 24,即仅支持Android 7.0以上,低版本还需单独适配或使用非官方解决方案retrolambda,很大程度上劝退了一批开发者;Android Stud...

weixin_34289439的博客 635

Android O (28)---8.0 新特性介绍

Android O (8.0) 新特性介绍Android O 功能和 API(文章内容均来Google开发者官网,有需要可自行翻墙查看更多资料)Android O 为用户和开发者引入多种新功能。本文重点介绍面向开发者的新功能。请务必查阅 Android O 行为变更以了解平台变更可能影响您的应用的领域。通知在 Android O 中,我们已重新设计通知,以便为管理通知行为和设置提供更轻松和更统一的...

zhangbijun1230的专栏 6764

android各个版本的新特性

首先看看最新版本Android 11 : https://www.zhihu.com/question/420186152 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10月19日在香港发布。 安卓2.0版本安卓2.0版本 版本主要更新如下: 全新的UI;全新的Chrome Lite浏览器,有离线阅读,16标签页,隐身浏览模式等;截图功能;更强大的图片编辑功能;自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来..

idaretobe的专栏 2311
上一篇: Android Camera2 拍照(二)——使用TextureView
下一篇: Android Camera2 拍照(三)——切换摄像头,延时拍摄和闪光模式
hunter800421
博客等级 码龄22年 60粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值