不要吃惊。Android 12才刚刚正式推出没几个月时间呢,Android 13就已经来了。
是的,Android 13 Developer Preview目前已经推出了两个版本迭代了,包含了众多的新特性和行为变更。
本来按照往年的习惯,我是不会在如此早期的阶段就去研究每年新系统的新功能的。但是由于最近公司安排我去做一次内部的技术分享涉及到了这个主题,所以今年第一时间就对Android 13进行了还算比较全面的体验。
由于我准备这次分享时所占用的都是我个人的休息时间,所以我并不认为这些内容会受到公司的知识产权保护。因此今天就写一篇对外的文章,将我对Android 13 Developer Preview的学习与理解分享出来。
首先解释一下为什么Android 13这么快就到来了。
上图是Google每年发布Android新系统的时间表。可以看到,在每年的年初,Google就会发布新版Android系统的Developer Preview版本。到了每年的中上旬,会发布Beta Release版本。而到了中下旬的时候,会进入平台稳定期,这时会发布Release Candidate版本。到了年底的时候,才会正式推出新版Android系统的Stable版本。
所以,Android 12 Stable版本在去年年底刚刚推出,紧接着Android 13的Developer Preview版本马上就来了。
如果你想要现在就对Android 13进行尝鲜,那么主要有两种办法,一是使用一台Pixel 4或更高版本的Pixel系统手机,二是使用Android Studio自带的模拟器。
使用手机的话需要进行刷机才可以,使用模拟器就很简单了,下载最新版的系统镜像即可。具体操作步骤我就不在这里演示了,详情请参考官方文档:
https://developer.android.google.cn/about/versions/13/get
完成以上步骤后,你就可以得到最新的Android 13系统了,如下所示:
我们也可以到设置里面去检查一下当前系统的版本号,如果你看到显示的是13或者Tiramisu(Android 13的内部代号),那么就代表你已经成功了。
接下来我们去研究一下Android 13具体带来了哪些新功能和变化,下图是我从官网截取的一张Developer Preview 1的新功能与变化:
其实在我准备这篇文章的时候,Google正好推出了Developer Preview 2的版本,所以如果你现在再去官网查看Android 13的新功能与变化,会发现比我这里列出的会多出很多。
不过我也没有指望通过一篇文章就能把所有的新功能全部覆盖全了,因此这里我们就还是先只专注于Developer Preview 1的版本吧。
从上图可以看出,Android 13的新功能与变化主要可以分为4个部分,核心功能、图像、隐私与安全、用户体验。
其中核心功能部分主要就是增加了一些对Java 11的API支持,由于现在Android程序基本都是在使用Kotlin进行开发了,所以这个功能对于我们来说影响不大。
而图像这部分并不是我的技术专长,我并没有信心能将这部分内容讲清楚,因此这里也就跳过了。
那么接下来的隐私与安全,以及用户体验是我们的重点,我会将图中列举出来的每一条新功能与变更,都展开进行讲解。
/ 新增WIFI运行时权限 /
去年,Google在Android 12当中新增了几个蓝牙相关的运行时权限。原因是因为当开发者去访问一些蓝牙相关的接口时,却需要申请地理位置权限才行。
这是一个历史遗留问题,为了更好地保护用户隐私,Google在Android 12当中增加了BLUETOOTH_SCAN,BLUETOOTH_ADVERTISE,BLUETOOTH_CONNECT,这3个运行时权限。这样当开发者需要访问蓝牙相关的接口时,只需要请求这些蓝牙权限即可。详情可以参考这篇文章 PermissionX 1.6发布,支持Android 12 。
而在今年的Android 13当中,Google将保护用户隐私延伸到了WIFI领域。
和蓝牙类似,当开发者去访问一些WIFI相关的接口时,如热点、WIFI直连、WIFI RTT等,也需要申请地理位置权限才行。
这其实也是一个历史遗留问题,用户肯定无法理解为什么使用一些WIFI功能时却需要授权地理位置权限。
为此,Android 13当中新增了一个NEARBY_WIFI_DEVICES权限,当再使用以上场景相关的WIFI API时,我们只需申请NEARBY_WIFI_DEVICES权限即可,从而更好地保护了用户的隐私。
由于NEARBY_WIFI_DEVICES只是一个普通的运行时权限,并且它和别的运行时权限用法并无任何区别,因此这里我就不通过代码来演示它的用法了。
如果想要查看关于这个权限更加详细的资料,可以参考官方网站:
https://developer.android.google.cn/about/versions/13/features/nearby-wifi-devices-permission
/ Intent