zoukankan      html  css  js  c++  java
  • Android Q 变更和新特性

    安全和隐私变更

    隐私保护是Android Q重要的主题之一,Android Q带来了一系列增强用户隐私保护的变更。

    1

    应用文件存储空间限制

    应用访问限制是Android Q影响最大变更之一。在Android Q系统中,应用只可以通过路径读取自己应用沙箱内的文件,如果需要读取应用沙箱外的文件,需要使用安卓统一接口来实现。该变更对大部分应用都会产生较重大的影响,需要开发者进行重点关注,后续我们也将以专题的形式来详细解读应该变更的影响和应对策略。

    2

    禁止访问不可更改的ID

    Android Q将禁止非系统应用访问用户不可更改的ID,包括IMEI号、SN号、USB序列号等。系统WiFi Mac地址默认是随机生成的,不再是固定的Mac地址,防止用户隐私被追踪。该变更将对依赖设备信息的业务产生影响,比如数据上报、用户画像、推荐和广告等,需要开发者进行重点关注。

    3

    不允许后台弹页面

    Android Q将禁止应用后台启动activity,这将对后台弹出页面使用场景产生重大影响,如:闹钟、音乐锁屏、应用后台安装等。在目前的预览版中,该变更未正式实施,但是对有后台弹页面的行为会产生toast警告,提示开发者进行相关的整改。

    该变更对有通知的应用,widget和快捷方式没有影响,开发者可以将一些必要的场景改用通知的方式去实现。

    4

    位置权限三态化

    Android Q中,应用在申请地理位置授权时,将增加使用时可用和始终可用两个选择。这将对需要后台GPS定位的使用场景产生影响,开发者在使用后台定位时需要增加前台服务。

    5

    剪切板访问限制

    Android Q中,系统将禁止应用在后台访问剪切板,以更好地保护用户隐私。

    AOSP变更

    1

    Hidden API

    在Android P中,谷歌已经开始限制Hidden API的使用,在Android Q中,新增了max-o和max-p两种类型,黑名单的数量也大幅增加。这将对所有使用非SDK接口的应用产生影响。

    开发者需要自行检测非SDK接口的名单,并将还在使用的黑名单接口反馈给谷歌申请加到灰名单中,手机厂商也会配合应用进行测试验证和相关的适配工作。

    2

    折叠屏适配

    现在越来越多的手机厂商发布了折叠屏的手机,谷歌在Android Q系统中提供了统一的折叠屏方案和适配接口,系统增加了最小比例设置的参数minAspectRatio,应用可以通过meta-data声明。

    该变更对所有在折叠屏设备上的应用都会产生影响,主要需要解决手机从折叠形态到展开状态转化时应用重新加载和展开状态下应用显示比例适配两个问题。

    多媒体新特性

    1

    Heif格式图片支持

    在Android P系统中已经增加了对Heif格式图片的软解码和软编码的支持,系统图库也支持Heif格式图片显示。在Android Q中,将支持拍照直接生成Heif格式的图片。这将对图片读取和分享的使用场景产生影响,相关的应用(如社交类、图片美化类)应进行Heif格式图片的支持适配。

    2

    并发录音

    在Android P及之前的安卓系统中,不支持并发录音,录音焦点不可抢占。在Android Q中增加了对并发录音的支持,录音焦点可以被抢占。这将对后台录音的场景产生影响,可能会录到空数据。有相关使用场景的应用需要通过接口去监听录音焦点的状态变化,并及时作出应对。

    3

    录音source限制

    Android Q系统对AUDIO_SOURCE_VOICE_CALL类型的录音源增加权限限制,CAPTURE_AUDIO_OUTPUT需要系统签名才可以使用,其他应用无法申请。该变更将导致应用无法录音,一些社交类软件的语音电话功能会受到影响。

    开发者需要将录音源改为AUDIO_SOURCE_VOICE_COMMUNICATION来规避这个问题的发生。

    4

    MediaProvider

    Android Q系统增加了对MediaProvider的sql语句管控,mediastore中定义的列以外的信息,无法查询,不合法的查询列会返回空值。

    文件的位置信息被删除,将无法通过MediaProvider进行查询。开发者需要对查询的语句进行排查和整改,动态申请ACCESS_MEDIA_LOCATION权限,然后通过MediaProvider的openFile获取文件的exif信息。

    系统应用变更

    安装器接口废弃

    Android Q系统将禁止调用intent(action为INSTALL_PACKAGE)拉起安装器,该应用将对TargetSdkVersion<24的应用产生影响,应用内安装的功能将无法实现。开发者可以使用FileProvider进行适配,使用content Uri替代file Uri。

    OS特性变更

    禁止非系统应用调用dex2oat

    Android Q将禁止非系统应用调用dex2oat,该变更通过selinux权限进行管控,只对TargetSdkVersion≥Q的应用产生影响,需要开发者进行排查是否有相关操作。此外该变更还会对加固程序产生影响,需要加固厂商进行重点关注。

    API LEVEL政策变更

    2019 Google Play上架API LEVEL政策规定,对于新上架的应用,2019年8月1日以后,应用TargetSdkVersion需要大于等于28;对于更新的应用,2019年11月1日前需要将应用TargetSdkVersion升级到28及以上。

  • 相关阅读:
    一个具体的例子学习Java volatile关键字
    JavaScript实现的水果忍者游戏,支持鼠标操作
    记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑
    微信程序开发系列教程(四)使用微信API创建公众号自定义菜单
    微信程序开发系列教程(三)使用微信API给微信用户发文本消息
    Java实现 LeetCode 547 朋友圈(并查集?)
    Java实现 LeetCode 547 朋友圈(并查集?)
    Java实现 LeetCode 547 朋友圈(并查集?)
    Java实现 LeetCode 546 移除盒子(递归,vivo秋招)
    Java实现 LeetCode 546 移除盒子(递归,vivo秋招)
  • 原文地址:https://www.cnblogs.com/bluestorm/p/10782927.html
Copyright © 2011-2022 走看看