安全和隐私变更

隐私保护是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及以上。

Android Q 变更和新特性的更多相关文章

  1. Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView

    Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView 8.0出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试.这几天新的需求来 ...

  2. [Android 新特性] 改进明显 Android 4.4系统新特性解析

    Android 4.3发布半年之后,Android 4.4随着新一代Nexus5一起出现在了用户的面前,命名为从之前的Jelly Bean(果冻豆)换成了KitKat(奇巧).这个新系统究竟都有怎样的 ...

  3. Android Studio 3.5新特性

    Android Studio 3.5新特性     原文链接:https://blog.csdn.net/jklwan/article/details/99974869 Android Studio ...

  4. [译]Android Studio 3.6 新特性概览

    设计 设计编辑器 设计编辑器(比如布局编辑器和导航编辑器)现在提供了一个拆分视图模式,能够同时查看 UI 界面的 Design 视图和 Code 视图.拆分视图取代并改进了早期的预览窗口,并且可以对每 ...

  5. Android应用--新浪微博客户端新特性滚动视图和启动界面实现

    新浪微博客户端新特性滚动视图和启动界面实现 2013年8月20日新浪微博客户端开发之启动界面实现 前言: 使用过新浪微博客户端的童鞋都清楚,客户端每一次升级之后第一次启动界面就会有新特性的介绍,用户通 ...

  6. Android Studio 3.0 新特性

    最新Android Studio版本是Android Studio 3.0,本文提供了所有新功能和更改的摘要. 所有这些功能都可以在最新的金丝雀版本中发布,但beta测试版本可能尚未提供. 核心IDE ...

  7. Android 4.4 KitKat 新特性

    New in Android 4.4 KitKat 本文是一个概览,关于KitKat,也即Android4.4的新东西,先是功能型的,之后是设计上的. 很多特性本文并没有提到,很多提到的特性也只是简短 ...

  8. Android开发使用Java8新特性

    Android 支持所有 Java 7 语言功能,以及一部分 Java 8 语言功能(具体因平台版本而异).本文介绍您可以使用的新语言功能.如何正确配置项目以使用这些功能,以及您可能遇到的任何已知问题 ...

  9. Android 4.1的新特性介绍

    原文:http://android.eoe.cn/topic/summary 果冻豆 - Android 4.1 通知系统 - Notifications 在Android 4.1系统上通知的功能大大 ...

随机推荐

  1. python学习日记(初识递归与算法)

    递归函数 定义 递归的定义——在一个函数里再调用这个函数本身 递归的最大深度——997,即栈溢出. 使用递归函数需要注意防止栈溢出.在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进 ...

  2. <Android基础> (七)内容提供器

    第七章 内容提供器 7.1 内容提供器(Content Provider) 主要应用于在不同的应用程序之间实现数据共享功能.允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性. 7.2 ...

  3. 互联网+ 何人能挡?带着你的Code飞奔吧!

    Python方向: 早期方向 Web全栈 擅长专栏 爬虫系列 数据分析 人工智能 物联网系(lot万物互联)[逆天很看好未来的前景] 自动化运维(安全与测试) 其他系列 游戏开发(最近很火) 导航栏: ...

  4. content-type 组件

    content-type初识 什么是content-type ContentType是Django的内置的一个应用,可以追踪项目中所有的APP和model的对应关系,并记录在ContentType表中 ...

  5. python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包

    楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...

  6. Codeforces Round #554 (Div. 2) B. Neko Performs Cat Furrier Transform(思维题+log2求解二进制位数的小技巧)

    传送门 题意: 给出一个数x,有两个操作: ①:x ^= 2k-1; ②:x++; 每次操作都是从①开始,紧接着是② ①②操作循环进行,问经过多少步操作后,x可以变为2p-1的格式? 最多操作40次, ...

  7. 浅谈Kubernetes生产架构

    注意本文,只是笔者针对Kubernetes生产环境运行的一些关于架构设计和实现方案的总结,内容很粗糙,同时也会不断完善. 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下 ...

  8. I/O模型系列之四:两种高性能IO设计模式 Reactor 和 Proactor

    不同的操作系统实现的io策略可能不一样,即使是同一个操作系统也可能存在多重io策略,常见如linux上的select,poll,epoll,面对这么多不同类型的io接口,这里需要一层抽象api来完成, ...

  9. day19面向对象 , 用户注册和登录

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.简述编写类和执行类中方法的流程."""编写:class Person: d ...

  10. 1.saltstack入门

    1.安装 master: yum install salt-master salt-minion -y minion: yum install salt-minion -y 2.修改配置文件(mini ...