Android 13(一) 首个开发者预览版本简介

·  阅读 108

最近Android 13发布了第一个开发者预览版本。本篇文章主要介绍一下这个预览版本中的行为变更和新功能。

Android 13 开发者预览版本简介

Android 13 开发者预览版本向开发者提供了一个早期测试和开发环境,包含新的行为变更、新功能及API,让开发者能及早为应用进行适配,并向开发者收集反馈与建议。

预计从2022年2月份开始,定期更新,更新计划表如下: android-13-desktop-timeline-en.png

获取Android 13

可以通过两种方式来获取Android 13的SDK:

  1. 在Google Pixel 设备上安装
  2. 在Android emulator上设置

行为变更

在之前的Android 12的适配笔记中介绍过,行为变更分为针对所有应用,以及仅针对targetSdkVersion 为Android 13 以上的应用。

在本次的开发者预览版本中,仅有针对targetSdkVersion 为Android 13 以上的行为变更,如下:

隐私

Android 13 为Wi-Fi提供了新的运行时权限。

在Android 13之前,应用需要向用户申请定位权限ACCESS_FINE_LOCATION才能完成与热点、Wi-Fi直连,Wi-Fi RTT等功能,用户可能比较难将Wi-Fi与定位权限关联起来。

因此Android 13在NEARBY_DEVICES 权限组中引入了一个新的运行时权限NEARBY_WIFI_DEVICES,用于管理设备通过Wi-Fi与附近接入点的连接。在Android 13以后,如果应用在使用Wi-Fi API时不获取定位信息,则可以只申请该权限NEARBY_WIFI_DEVICES

关于该权限更详细的信息可以查看官方文档

安全

Inter filters 拦截不匹配的intents。

在Android 13以前,intent-filter仅在解析隐式intent时生效,使用显示intent时,intent-filter并不会过滤不匹配的intent。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"">
    <application>
        <activity
            android:name=".BActivity"
            android:exported="true">

            <intent-filter>
          
                <action android:name="android.intent.action.VIEW" />

                <data android:scheme="app"
                      android:host="test"
                      android:path="/testjump" />
                
            </intent-filter>
        </activity>
    </application>
</manifest>


class AActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        //显示Intent
        startActivity(Intent(this, BActivity::class.java))
    }
}
复制代码

在上面的示例代码中,该显示intent可以启动BActivity,但是很明显这个显示Intent与intent-filter的内容是不匹配的。这对于应用的安全是有风险的,在某些情况下,外部应用可以触发应用内部的功能。

在Android 13 以后,对于非本应用的,与intent-filter不符合的intent,会被拦截。

新功能

Android 13新增了一些功能,下面简单介绍一下。

用户体验

  • 主题应用图标

Android 13 提供了新的API,让应用的图标可以跟随用户选择的主题变化。如何使用以及应用图标规范可以查阅官方文档

官方效果图如下:

themed-app-icons.gif

  • 快速设置API

Android 13 提供了新的API,可以让应用在通知栏中添加快速设置的Tile,让用户不用离开应用就可以进行更改设置或其他操作,详情可以查阅官方文档

  • 更好的支持多语言

Android 13 提供了新的API,允许应用在运行时设置与系统语言不同的语言用于显示,详情可以查阅官方文档

  • 更快的连字符

连字符让需要换行的连续文本更具可读性,也使应用界面更具适应性。Android 13优化了连字符的性能,降低了对UI渲染性能的影响。详情可以查阅官方文档

隐私和安全

  • 照片选择器

在Android 13之前,照片选择通常是通过读取文件(需要申请权限),并自定义可视化UI的方式来实现的。

现在,Android 13 提供了具备标准化UI的照片选择器。当应用启动照片选择器时,用户可以选择应用仅能查看某些图片和视频,而不是所有图片和视频。由于照片选择器的隐私性很高,所以应用使用时不需要申请任何权限。

个人认为这对于开发者来说是一个很好的消息,不需要再对如何实现照片选择器头疼,不需要再对读取文件的权限更改了头疼(没错就是从Android 9 - >Android 10 -> Android 11)。详情可以查阅官方文档

图形

  • 可编程着色器

Android 13 添加了对RuntiemShader的支持,可以借此实现涟漪效果、模糊和拉伸过度滚动等高级效果。详情可以查阅官方文档

核心功能

  • OpenJDK 11更新

Android 13 开始更新Android 核心库以与OpenJDK 11 LTS 版本保持一致。详情可以查阅官方文档

个人观点

看了这个开发者预览版本后,对于Android 13还是蛮期待的,新增了一些不错的功能和API,希望正式版早日到来。

分类:
Android
标签:
分类:
Android
标签:
收藏成功!
已添加到「」, 点击更改