[Android9.0][Android10.0] 版本差异

Author:Younix
OS

文章目录

    • Android9.0
      • 隐私权变更
      • 对使用非 SDK 接口的限制
      • 安全行为变更
        • 传输层安全协议 (TLS) 实现变更
        • 更严格的 SECCOMP 过滤器
        • 加密变更
        • 不再支持 Android 安全加密文件(ASEC)
      • ICU 库更新
      • Android Test 变更
        • 从框架移除的内容库
        • 测试套件版本号变更
      • Java UTF 解码器
      • 使用证书的主机名验证
      • 网络地址查询可能会导致网络违规
      • 套接字标记
      • 报告的套接字中可用字节数
      • 更详尽的 VPN 网络功能报告
      • 应用不再能访问 xt_qtaguid 文件夹中的文件
      • 现在强制执行 FLAG_ACTIVITY_NEW_TASK 要求
      • 屏幕旋转变更
      • Apache HTTP 客户端弃用影响采用非标准 ClassLoader 的应用
      • 枚举相机
    • Android10.0
      • 隐私权
      • 行为变更:所有应用
        • 限制非 SDK 接口
        • 手势导航
        • NDK:共享对象不得包含文本重定位
        • Bionic 库和动态链接器路径变更
        • 系统二进制文件/库会映射到只执行内存
      • 安全
        • TLS 1.3 默认处于启用状态
        • TLS 不信任使用 SHA-1 签名的证书
        • KeyChain 行为变更和改进
        • 其他 TLS 和加密更改
      • WLAN 直连广播
      • WLAN 感知功能
      • Go 设备上的 SYSTEM_ALERT_WINDOW
      • 关于以旧版 Android 系统为目标平台的应用的警告
      • 移除了 SHA-2 CBC 加密套件
      • 应用使用情况
        • UsageStats 应用使用情况方面的改进
        • 按应用开启灰度模式
        • 按应用开启干扰模式
        • 暂停和播放
      • HTTPS 连接变更
      • android.preference 库已弃用
      • ZIP 文件实用程序库变更
      • 摄像头变更
      • 电池用量跟踪
      • Android Beam 已弃用
      • 新功能和特性
        • 可折叠设备
        • 5G网络
        • 通知中的智能回复
        • 深色主题
        • 手势导航
        • 设置面板
        • 共享快捷方式
      • 摄像头和媒体
        • 照片的动态深度
        • 捕获播放的音频
        • 新的音频和视频编解码器
        • 原生 MIDI API
        • 可缩放的定向麦克风
        • Vulkan 无处不在
      • Android基础知识
        • ART优化
        • Neural Networks API 1.2
        • Thermal API
        • 通过公共 API 实现兼容性
      • 更新速度更快,代码更新频率更高

Google 官方说明的阅读笔记

Android9.0

变更详情见
https://developer.android.com/about/versions/pie/android-9.0-changes-all

隐私权变更

限制后台应用访问设备传感器、限制通过 Wi-Fi 扫描检索到的信息,以及与通话、手机状态和 Wi-Fi 扫描相关的新权限规则和权限组。

对使用非 SDK 接口的限制

安全行为变更

传输层安全协议 (TLS) 实现变更

更严格的 SECCOMP 过滤器

加密变更

不再支持 Android 安全加密文件(ASEC)

ICU 库更新

Android Test 变更

Android 9 引入了多项针对 Android Test 框架库和类结构的更改。 这些变更可帮助开发者使用支持框架的公共 API,此外,在使用第三方库或自定义逻辑构建和运行测试时,这些变更还可提供更大的灵活性。

从框架移除的内容库

测试套件版本号变更

Java UTF 解码器

使用证书的主机名验证

网络地址查询可能会导致网络违规

套接字标记

报告的套接字中可用字节数

更详尽的 VPN 网络功能报告

应用不再能访问 xt_qtaguid 文件夹中的文件

现在强制执行 FLAG_ACTIVITY_NEW_TASK 要求

在 Android 9 中,您不能从非 Activity 环境中启动 Activity,除非您传递 Intent 标志 FLAG_ACTIVITY_NEW_TASK。 如果您尝试在不传递此标志的情况下启动 Activity,则该 Activity 不会启动,系统会在日志中输出一则消息。

屏幕旋转变更

Apache HTTP 客户端弃用影响采用非标准 ClassLoader 的应用

枚举相机

应用可以通过调用 getCameraIdList() 发现每个可用的摄像头。 应用不应假定设备只有一个后置摄像头或只有一个前置摄像头。
例如,如果您的应用有一个用来切换前置和后置摄像头的按钮,则设备可能有多个前置或后置摄像头可供选择。 您应浏览一下摄像头列表,检查每个摄像头的特征,然后决定向用户显示哪些摄像头。

Android10.0

变更详情见
https://developer.android.com/about/versions/10/privacy/changes

隐私权

Android 10 引入了大量变更(如改进了系统界面、让权限授予更加严格以及对应用能够使用哪些数据实施了限制),目的是保护隐私权并赋予用户控制权。
所有开发者都应查看隐私功能并测试他们的应用。具体影响可能会因每个应用的核心功能、定位和其他因素而异。
https://developer.android.com/about/versions/10/privacy

行为变更:所有应用

限制非 SDK 接口

Android 10 包含更新后的受限制非 SDK 接口列表(基于与 Android 开发者之间的协作以及最新的内部测试)。我们的目标是在限制使用非 SDK 接口之前确保有可用的公开替代方案。

手势导航

从屏幕边缘向内滑动,系统会将该手势解读为“返回”导航,除非应用针对屏幕的相应部分明确替换该手势(https://developer.android.com/guide/navigation/gesturenav#conflicting-gestures)。

NDK:共享对象不得包含文本重定位

Bionic 库和动态链接器路径变更

系统二进制文件/库会映射到只执行内存

安全

TLS 1.3 默认处于启用状态

TLS 不信任使用 SHA-1 签名的证书

KeyChain 行为变更和改进

其他 TLS 和加密更改

WLAN 直连广播

WIFI_P2P_CONNECTION_CHANGED_ACTION
WIFI_P2P_THIS_DEVICE_CHANGED_ACTION
与WLAN直连相关的广播不具有粘性。

WLAN 感知功能

Go 设备上的 SYSTEM_ALERT_WINDOW

关于以旧版 Android 系统为目标平台的应用的警告

在搭载 Android 10 或更高版本的设备上,如果用户首次运行以 Android 5.1(API 级别 22)或更低版本为目标平台的应用,则会看到警告。如果此应用要求用户授予权限,则系统会先向用户提供调整应用权限的机会,然后才会允许此应用首次运行。

移除了 SHA-2 CBC 加密套件

应用使用情况

UsageStats 应用使用情况方面的改进

当在分屏或画中画模式下使用应用时,Android 10 现在能够使用 UsageStats 准确地跟踪应用使用情况。此外,Android 10 可以正确地跟踪免安装应用的使用情况。

按应用开启灰度模式

Android 10 可针对各个应用设置灰度显示模式。

按应用开启干扰模式

Android 10 可以选择性地将应用设置为“干扰模式”,此时系统会禁止显示其通知,并且不会将其显示为推荐的应用。

暂停和播放

在 Android 10 中,暂停的应用无法播放音频。

HTTPS 连接变更

android.preference 库已弃用

将弃用 android.preference 库。开发者应该改为使用 AndroidX preference 库,这是 Android Jetpack 的一部分。

ZIP 文件实用程序库变更

Android 10 对 java.util.zip 软件包(用于处理 ZIP 文件)中的类进行了以下变更。这些变更会让库的行为在 Android 和使用 java.util.zip 的其他平台之间更加一致。
Inflater 、ZipFile、ZipOutputStream

摄像头变更

很多使用摄像头的应用都会假定如果设备采用纵向配置,则物理设备也会处于纵向,正如摄像头方向中所述。在过去可以做出这样的假定,但随着可用的设备类型(例如可折叠设备)的扩展,这一情况发生了变化。针对这些设备做出这样的假定可能导致相机取景器的显示产生错误的旋转和/或缩放。
应用应该明确设置 android:resizeableActivity,并提供必要的功能来处理多窗口操作。

电池用量跟踪

从 Android 10 开始,只要在发生重大充电事件之后拔下设备电源插头,SystemHealthManager 就会重置其电池用量统计信息。一般来说,重大充电事件指的是设备电池已充满,或者设备电量从几乎耗尽变为即将充满。
在 Android 10 之前,无论何时拔下设备电源插头,无论电池电量有多微小的变化,电池用量统计信息都会重置。

Android Beam 已弃用

在 Android 10 中,我们正式弃用了 Android Beam,这是一项旧版功能,可通过近距离无线通信 (NFC) 在多个设备之间启动数据共享。我们还弃用了一些相关的 NFC API。Android Beam 仍可供需要的设备制造商合作伙伴使用,但它已不再处于积极的开发阶段。不过,Android 仍将继续支持其他的 NFC 功能和 API,并且从标签和付款中读取数据等使用场景仍将继续按预期执行。

新功能和特性

https://developer.android.com/about/versions/10/highlights

可折叠设备

Android 10 基于强大的多窗口支持构建而成,扩展了跨应用窗口的多任务处理能力,还提供了屏幕连续性,可以在设备折叠或展开时维持应用状态。

5G网络

5G 有望在稳定提升速度的同时降低延迟,Android 10 新增了针对 5G 的平台支持,并扩展了现有 API 来帮助您充分利用这些增强功能。

通知中的智能回复

深色主题

手势导航

全手势导航模式,该模式不显示通知栏区域,允许应用使用全屏来提供更丰富、更让人沉浸的体验。它通过边缘滑动(而不是可见的按钮)保留了用户熟悉的“返回”、“主屏幕”和“最近”导航。

设置面板

通过新的设置面板 API 在应用上下文中直接显示关键系统设置。设置面板是浮动界面,您可以通过调用它来显示用户可能需要使用的设置,如互联网连接、NFC 和音量。

共享快捷方式

共享快捷方式功能可使共享更加轻松快捷,让用户能够直接跳转到其他应用来共享内容。

摄像头和媒体

照片的动态深度

应用现在可以请求动态深度图片,其中包含与深度相关元素有关的 JPEG、XMP 元数据,以及嵌入在同一文件中的深度和置信度映射。这些功能让您可以在应用中提供专用模糊和散景选项。

捕获播放的音频

播放音频的任何应用都允许其他应用使用新的音频播放捕获 API 捕获其音频流。

新的音频和视频编解码器

新增了对开源视频编解码器 AV1 的支持,这允许媒体提供商使用更少的带宽向 Android 设备流式传输高品质视频内容。此外,Android 10 还支持使用 Opus(一种针对语音和音乐流式传输进行了优化的开放且免版税的编解码器)和 HDR10+(用于支持它的设备上的高动态范围视频)对音频进行编码。MediaCodecInfo API 引入了一种更简便的方法来确定某个 Android 设备的视频渲染功能。对于任何指定的编解码器,您可以获取其支持的大小和帧速率列表。

原生 MIDI API

可缩放的定向麦克风

Vulkan 无处不在

Android 10 包含用于绘制高性能 3D 图形的低开销、跨平台 API 实现,扩大了 Vulkan 的影响范围。

Android基础知识

ART优化

Neural Networks API 1.2

Thermal API

通过公共 API 实现兼容性

更新速度更快,代码更新频率更高

通过 Treble 计划加快更新速度,这可在 Android 与设备制造商和芯片制造商提供的底层设备代码之间提供一致的可测试接口。

你可能感兴趣的:(Android,Android9.0,Android10.0)