Hello,小伙伴们,Android 8.0为了更流畅的系统,以及更好的体验做出了很多修改,从诸多底层、后台的运行限制,到控件层面的更新,乃至消息、推送等各种细节的逻辑等。小编将从推送通知的变化、后台运行限制、后台位置限制几个方面介绍Android O的变化,帮助大家更好的进行android O的测试。

 

android oreo对应的版本是 android 8.0 oreo_android oreo对应的版本是

1、Android 8.0 Oreo行为变更

        Android O除了提供诸多新特性和功能外,还对系统和API行为做出了各种变更。其中大部分变更会影响所有应用,而不论应用针对的是何种版本的Android。有几项变更仅影响针对Android O的应用。

针对所有 API 级别的应用:

1)    网络连接和 HTTP(S) 连接

2)    集合的处理

3)    记录未捕获的异常

4)    输入和导航

5)    安全性

6)    后台执行限制

7)    隐私性

针对 Android O 的应用:

1)    内容变更通知

2)    视图焦点

3)    权限

4)    集合的处理

5)    媒体

6)    类加载行为

 

2、Android 8.0 Oreo 推送通知的变化

    Android Oreo带来的变化很多,其中相当容易被普通用户体验到的一个就是推送通知的变化,如通知频道和通知标识。Android 8.0,重新设计通知,以便为管理通知行为和设置提供更轻松和更统一的方式。这些变更包括:

  • 通知渠道:Android 8.0 引入了通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道。用户界面将通知渠道称之为通知类别。

       通知频道,让用户在高一致性的UI下,对通知进行精细化控制。在这个UI里,通知频道又被称为通知分类,它集合了所有相关的通知。Android O中的每个通知都需要频道,否则就根本不会显示出来。可以把不同种类的通知放进不同的频道里,还可以进一步整理通知频道,把它们放进频道群。频道群可以让你在UI中把多个频道集合在一起。制作频道很重要,因为在制作通知的时候,就提交了频道ID,(必须提交频道ID,否则通知根本不会在Android O上显示出来,且会得到一条错误提示)。

  • 通知标志:Android 8.0 引入了对在应用启动器图标上显示通知标志的支持。通知标志可反映某个应用是否存在与其关联、并且用户尚未予以清除也未对其采取行动的通知。通知标志也称为通知点。
  • 休眠:用户可以将通知置于休眠状态,以便稍后重新显示它。重新显示时通知的重要程度与首次显示时相同。应用可以移除或更新已休眠的通知,但更新休眠的通知并不会使其重新显示。
  • 通知超时:现在,使用setTimeoutAfter()创建通知时您可以设置超时。
  • 通知设置:从通知创建指向应用通知设置的链接,您可以调用setSettingsText()来设置要显示的文本。
  • 通知清除:系统现在可区分通知是由用户清除,还是由应用移除。
  • 背景颜色:您现在可以设置和启用通知的背景颜色。
  • 消息样式:现在,使用MessagingStyle类的通知可在其折叠形式中显示更多内容。

 

android oreo对应的版本是 android 8.0 oreo_android oreo对应的版本是_02

 

 

3、Android 8.0 Oreo后台运行限制

 

 

后台计算十分重要,不论是从服务器获取最新数据还是对UI搜集到的数据进行进一步处理都需要用到后台处理。每次在后台运行时,应用都会消耗一部分有限的设备资源,例如RAM。在如今的移动环境下,过量的后台计算也会确实地影响用户体验和手机续航。

为了提升用户体验,Android Oreo对应用在后台运行时可以执行的操作施加了限制。相比较以前的版本,Android Oreo应用不再能随心所欲启动服务了。

应用在两个方面受到限制:

1)    后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。 这些限制不适用于前台服务,因为前台服务更容易引起用户注意。

2)    广播限制:除了有限的例外情况,应用无法使用清单注册隐式广播。 它们仍然可以在运行时注册这些广播,并且可以使用清单注册专门针对它们的显式广播。

注:默认情况下,这些限制仅适用于针对O的应用。不过,用户可以从Settings屏幕为任意应用启用这些限制,即使应用并不是以O为目标平台。

在大多数情况下,应用都可以使用JobScheduler作业克服这些限制。这种方式让应用安排为在未活跃运行时执行工作,不过仍能够使系统可以在不影响用户体验的情况下安排这些作业。Android 8.0 提供针对JobScheduler的多个改进,您可以更轻松地使用计划作业取代服务和广播接收器。

android oreo对应的版本是 android 8.0 oreo_android oreo对应的版本是_03

 

 

4、Android 8.0 Oreo后台位置限制

 

为降低功耗,无论应用的目标SDK版本为何,Android 8.0都会对后台应用检索用户当前位置的频率进行限制。如果您的应用在后台运行时依赖实时提醒或运动检测,这一位置检索行为就显得特别重要。

系统会对前台应用和后台应用进行区分。应用满足以下任一条件,即视为前台应用:

  • 它具有可见的 Activity,无论 Activity 处于启动还是暂停状态。
  • 它具有前台服务。
  • 另一个前台应用通过绑定到应用的其中一个服务或使用应用的其中一个内容提供程序与应用相连。

如果以上所有条件均不满足,应用即视为后台应用。

前台应用行为得到保留

如果应用在运行 Android 8.0 的设备上处于前台,其位置更新行为将与 Android7.1.1(API 级别 25)及更低版本上相同。

优化应用的位置行为

考虑在您的应用接收位置更新不频繁的情况下其后台运行用例是否根本无法成功。如果属于这种情况,您可以通过执行下列操作之一提高位置更新的检索频率:

  • 将您的应用转至前台。
  • 使用应用中的某个前台服务。激活此服务时,您的应用必须在通知区显示一个持续性的通知。
  • 使用 Geofencing API 的元素(例如 GeofencingApi 接口),这些元素针对最大限度减少耗电进行了专门优化。
  • 使用被动位置侦听器,它可以在后台应用加快位置请求频率时提高位置更新的接收频率。

受影响的 API

对后台应用位置检索行为的更改影响下列 API:

  • Fused Location Provider (FLP)

如果您的应用运行在后台,位置系统服务只会根据 Android 8.0 行为变更中定义的间隔,按每小时几次的频率为其计算新位置。即使您的应用请求进行更频繁的位置更新,也仍是如此。

如果您的应用运行在前台,与 Android 7.1.1(API 级别 25)相比,在位置采样率上不会有任何变化。

  • Geofencing

后台应用可以高于接收 Fused Location Provider 更新的频率接收地理围栏转换事件。

地理围栏事件的平均响应时间是大约每两分钟一次。

  • GNSSMeasurements 和 GNSS Navigation Messages

当您的应用位于后台时,注册用于接收GnssMeasurement和GnssNavigationMessage输出的回调会停止执行。

  • LocationManager

提供给后台应用的位置更新只会根据 Android 8.0行为变更中定义的间隔,按每小时几次的频率提供。

  • WLAN管理器

startScan()方法对后台应用执行完整扫描的频率仅为每小时数次。如果不久之后后台应用再次调用此方法,WifiManager类将提供上次扫描所缓存的结果。  

  

5、Android 8.0 Oreo 国内可用测试平台上线

        因为版本和设备多样化等诸多原因,测试App能在每一个用户、诸多使用场景都能正常,尽量避免遗漏,是测试目前非常关心的事情。现在,国内已有两家测试平台目前免费率先提供Android 8.0的全面兼容性应用测试,Testin 和TestBird兼容测试服务(具体免费时段由该测试平台决定)。

 

以上,是小编今日要个大家分享的Android8.0 Oreo的内容,如果大家针对android 8.0测试还有什么建议或者心得,欢迎留言、一起探讨。

祝大家在 Android Oreo 上也能更上一层楼!