转:Android8.0有关行为变更小结

       原文:https://blog.csdn.net/sunzhaojie613/article/details/77609282 

       官方将Android 8.0 行为变更分为两个部分:针对所有 API 级别的应用和针对 Android 8.0 的应用。针对 Android 8.0的应用改动,是该变动只会在targetSdkVersion >=26(8.0)的应用上生效。针对 所有 API 级别的应用改动,是该变动会在所有的应用上生效,和targetSdkVersion无关。
  
  举个例子,Android6.0有一个动态权限的机制改动。该改动只会在targetSdkVersion >=23(6.0)上的应用生效,在targetSdkVersion<23上的应用权限不需要动态申请。


Android 8.0 相关变更


*后台执行限制改动默认只只针对Android8.0及以上,不过用户可以设置将该改动作用于任何应用。 
                1、处于后台的应用不在允许创建后台服务了,如果创建会抛出一个IllegalStateException异常。
                2、应用进入后台应用时会有一个时间窗,在该时间窗之内应用的后台服务还是在运行且可以创建后台服务,该事件窗口结束之后系统会将后台服务结束。
                3、应用在后台可以在任何时候通过NotificationManager.startServiceInForeground()创建前台服务,startService() 不能使用,bindService()没有限制。 
               4、移除了大部分的隐式广播,只保留了少许隐式广播。保留的隐式广播
               5、主要是去除和应用本身无关的广播,例如ACTION_PACKAGE_REPLACED。只针对自己应用的广播还是有效,例如ACTION_MY_PACKAGE_REPLACED。
               6、官方建议使用 JobScheduler代替以上大部分需求场景。

 


*后台位置限制改动针对所有API级别 
              1、处于后台的应用每隔几小时接收几次位置更新。
              2、前台应用行为不变
              3、官方建议使用前台服务、 Geofencing API 的元素(例如 GeofencingApi 接口)保证位置实时性。
*提醒窗口变更针对Android8.0及以上 
               新增一个Window Type,TYPE_APPLICATION_OVERLAY。 
               显示在 
               TYPE_PHONE 
              TYPE_PRIORITY_PHONE 
              TYPE_SYSTEM_ALERT 
              TYPE_SYSTEM_OVERLAY 
              TYPE_SYSTEM_ERROR 
              … 
              这些窗口之上。
              TYPE_APPLICATION_OVERLAY感觉是google 专门用来给开发者做悬浮窗的。

 

*WebView 

              应用的 WebView 对象将在多进程模式下运行。网页内容在独立的进程中处理,此进程与包含应用的进程相隔离,以提高安全性。
              Android 自动填充框架提供对自动填充功能的内置支持,因此有关表单数据的保存、清楚、获取方法无效(WebSettings:getSaveFormData()  setSaveFormData()  和 WebViewDatabase: clearFormData()  hasFormData() )。

 

*ANDROID_ID 
              对于安装在运行 Android 8.0 的设备上的应用,ANDROID_ID 的值现在将根据应用签署密钥和用户确定作用域。应用签署密钥、用户和设备的每个组合都具有唯一的 ANDROID_ID 值。因此,在相同设备上运行但具有不同签署密钥的应用将不会再看到相同的 Android ID(即使对于同一用户来说,也是如此)


*权限申请变更只针对Android8.0及以上 
              之前动态申请权限的时候,如果用户同意了某个权限的申请,系统会将该权限同组的所有权限都授予给应用。8.0开始只会授予申请的那个权限,不过之后如果应用在申请之前授权权限同组的权限时,系统会自动授予不会提醒用户进行授权。

 


*原生库变动针对 Android 8.0及以上 
              如果原生库包含任何可写且可执行的加载代码段,则不会再加载原生库。

 


*集合的处理变动针对 Android 8.0及以上 
              为了利用优化的 List.sort(),在 Android 8.0 中,Collections.sort() 是在 List.sort() 的基础上实现的。 

 


*其他改动 详见官网

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值