前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解读Android 12首个开发者预览版

解读Android 12首个开发者预览版

原创
作者头像
个推
修改2021-05-24 17:48:24
1.8K0
修改2021-05-24 17:48:24
举报
文章被收录于专栏:个推技术实践个推技术实践

引言

Google发布了新系统 Android 12 的首个开发者预览版。根据谷歌官方消息,最终版本的Android 12预计于今年下半年正式上线。此次发布预览版的目的主要是帮助开发者提前了解Android 12的新变化,为后续进行应用适配提前做准备。

图片
图片

作为陪伴开发者多年的重要伙伴,个推一直密切关注和跟进行业发展趋势。在Android12首个开发者预览版发布后,个推快速对新系统的有关更新展开了调研。本文对Android 12预览版的部分新功能、新特性进行了解读,希望能帮助广大开发者对新系统有个快速了解。

Android 12行为变更:面向所有应用

用户体验升级

沉浸式手势导航改进

从Android 10 开始,Android 系统就已支持手势导航,致力于给用户带来沉浸式的全新体验。在之前版本的系统下,用户启动安卓的沉浸模式,默认需要的手势操作是:从屏幕侧方滑入,退出沉浸模式,然后再返回上一个界面。最新发布的Android 12首个开发者预览版则对手势导航模式进行了简化:用户不再需要滑动两次,只需一次滑动手势,即可退出全屏沉浸模式并返回上个界面,更加高效和便利。

图片
图片

隐私/安全保护增强

MAC 地址权限限制

为进一步保护用户隐私和数据安全,Android 11引入了“单次授权”“权限自动重置”“分区存储”等功能。Android 12则更进一步限制了所有非系统应用程序对设备MAC地址的访问,无论目标API级别如何

相关API返回空值或占位符值,具体取决于应用程序的目标SDK版本:

➀ target = 12 ,返回 null

➁ target <12 ,返回 02:00:00:00:00:00

未被信任的触摸事件将被阻止

为了保护系统安全和更好的用户体验,Android 12将会阻止某些窗口的触摸。

例如:

➀ 申请了 SYSTEM_ALERT_WINDOW 权限的 windows

➁ Toast messages

应用不能关闭系统对话框

ACTION_CLOSE_SYSTEM_DIALOGS intent 在 Android 12 被废弃。

➀ target = 12, 将抛出 SecurityException 异常

➁ target < 12 ,该 intent 不会执行,会在 logcat 打印警告日志:

E ActivityTaskManager Permission Denial: \

android.intent.action.CLOSE_SYSTEM_DIALOGS broadcast from \

com.package.name requires android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS, \

dropping broadcast.

Android 12行为变更:针对Target = 12的应用

自定义通知栏

图片
图片

Android 12 开发者预览版对通知栏进行了更改。图左:Android 12 开发者预览版,图右:Android 11

之前,开发者能自定义整个通知栏区域的布局和样式,这就导致了不同设备的兼容适配问题以及用户的浏览不适应问题。

Android 12更改了完全自定义通知的外观。对于 target = 12 的应用,在通知栏的消息展示均使用统一的模板。上面应用名字显示和折叠按钮都是相同的、固定的,下面折叠和展开状态呈现的区域是可自定义的:

图片
图片

折叠和展开的样式:

图片
图片

折叠状态

图片
图片

展开状态

若APP中存在自定义Notification.Style,亦或是使用了Notification.Builder中 setCustomContentView(RemoteViews), setCustomBigContentView(RemoteViews)和setCustomHeadsUpContentView(RemoteViews)方法,可能会受此影响。

隐私/安全

WebView 中的SameSite cookie行为

Android的WebView组件基于Chromium来提高安全性和隐私性,去年,Chromium对第三方Cookie的处理方式进行了更改,并已面向众多Chrome用户推出。从Android 12开始,这些更改将应用于WebView。

SameSitecookie的属性控制它是否可以与任何请求一起发送,还是只能与相同站点的请求一起发送。Android 12中的WebView基本版本(版本89.0.4385.0)改进了第三方Cookie的默认处理,将有助于防止意外的跨站点共享。

ADB backup 限制

Android 12 限制了 adb backup 命令行的默认行为 (该命令行是用来备份恢复数据的),对应用程序数据adb backup有依赖的开发者可以在清单文件中设置 android:debuggable 为 true。

组件需要添加 exported 配置

target=12时,使用的activity 、service或者广播有用到 intent filters ,则需声明 android:exported 属性。不配置的话,在安卓 12 设备上将不能安装,logcat 也会打印错误日志:

Targeting S+ (version 10000 and above) requires that an explicit value for \

android:exported be defined when intent filters are present

Pending intents 必须声明意图

使用 PendingIntent 需要声明 PendingIntent.FLAG_MUTABLE 或者 PendingIntent.FLAG_IMMUTABLE flag,否则系统会抛出异常 IllegalArgumentException。

性能

前台服务启动限制

以 Android 12 为目标的应用程序,无法在后台运行时启动前台服务,应用程序在后台运行时,可考虑使用 WorkManager 执行任务。

ForegroundService通知延迟

前台服务启动后必须调用startForeground() 来显示前台通知,如果应用在5s内未调用 startForeground(),则系统将停止服务并声明此应用为 ANR。

在Android 12中,限制时间由5s改为了10s。这样一来,对于部分APP来讲,将会有更充分的处理时间。

通知跳转

services 或者 broadcast receivers 中创建的通知将不能调用 startActivity() !!!

logcat 会打印:

Indirect notification activity start (trampoline) from PACKAGE_NAME, \this should be avoided for performance reasons.

总结

以上,是个推对Android 12首个开发者预览版本中几个重要更新点的解读。

除了以上内容外,Android 12 预览版还在视频、音频和图片处理方面做了很多有趣的更新。比如,通过手机的振动马达增加对触觉耦合音频效果的支持,可以帮助游戏类APP提升玩家体验;引入了兼容媒体转码功能,可以让那些不支持 HEVC的应用,也能将文件高效转码为 AVC 格式;同时还引入了对 AV1 图像文件格式(AVIF)的支持,使得开发者可以同样的文件大小,收获比 JPEG 图像更高的图像质量……感兴趣的开发者可以进入Android 12官网进一步详细了解。

图片
图片

https://developer.android.google.cn/about/versions/12

后续,个推还将在持续打磨开发者服务和SDK产品的同时,密切跟进移动开发领域的相关动态,为开发者升级产品功能、迭代服务体验提供有效建议。

也欢迎更多的开发者和我们一起交流和探索Android及移动开发新技术,共同建设更好的安卓开发生态。

*本文图片来源于Android官网

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • Android 12行为变更:面向所有应用
    • 用户体验升级
      • 沉浸式手势导航改进
    • 隐私/安全保护增强
      • MAC 地址权限限制
      • 未被信任的触摸事件将被阻止
      • 应用不能关闭系统对话框
  • Android 12行为变更:针对Target = 12的应用
    • 自定义通知栏
      • 隐私/安全
        • WebView 中的SameSite cookie行为
        • ADB backup 限制
        • 组件需要添加 exported 配置
        • Pending intents 必须声明意图
      • 性能
        • 前台服务启动限制
        • ForegroundService通知延迟
        • 通知跳转
    • 总结
    相关产品与服务
    图片处理
    图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档