狂飙!Android 14第一个预览版已发布

d8eac9073b0402528ed75ec1f26851ef.jpeg

/   今日科技快讯   /

近日,雷军在小米投资者日上提到了关于小米汽车的最新进展以及目标。雷军表示自己1/2的时间精力都在小米其策划上,1/4的时间在小米手机、IoT以及高端化上。目前来说,小米汽车研发团队已经召集超过了2300人,2024年一季度小米汽车将正式量产,各团队的计划都比预期要好。

据了解,2022年小米汽车等新业务投入已经超过了30亿人民币,目前小米汽车研发团队超过了2300人。在2022年小米三季度财报中,时任小米总裁的王翔曾透露,小米汽车研发团队已经超过1800人,短短3个月,小米汽车研发团队增加了500人,团队人员扩张迅速。

/   作者简介   /

本篇文章转自黄林晴的博客,文章主要分享了作者对Android 14预览版内容的分析,相信会对大家有所帮助!

原文地址:

https://juejin.cn/post/7198067983775973432

/   前言   /

Android系统的更新速度真的是“一路狂飙”,23年2月8日,Android 14第一个预览版本发布。Android 14将继续致力于提高开发人员的工作效率,同时增强性能、隐私、安全性和用户自定义。

ece601d921e0428c08ac9c2ad4b40af0.png

预计将会在八月份发布最终的Release版本。

e23b7d990caef73a8d7f7edb05e2af13.png

/   获取Android 14   /

如果你想获取Android 14系统可以使用下列Pixel系列设备:

  • Pixel 4a (5G)

  • Pixel 5 and 5a

  • Pixel 6 and 6 Pro

  • Pixel 6a

  • Pixel 7 and 7 Pro

或者使用虚拟机的方式,因为家庭困难,所以这里我使用的是虚拟机的方式。

6dfa01b6a4716d57d71184e8a3ac6c02.png

/   设置SDK   /

首先我们来安装Android 14 SDK,操作如下图所示。

4f1140ff1e2b0587aef8c4ee863c4e6a.png

安装好之后,设置编译版本和目标版本为Android 14,代码如下所示:

android {
    compileSdkPreview "UpsideDownCake"
    defaultConfig {
        targetSdkPreview "UpsideDownCake"
    }
}

接着我们重点来看,第一个预览版本主要更新了哪些内容,重要分为对所有App的影响和目标版本为14的影响。

/   更新内容   /

所有App

安全

从Android 14开始,targetSdkVersion低于23的应用无法安装。

也就是说所有App的targetSdkVersion至少等于23,也就是要适配Android 6.0,这是因为Google考虑到部分应用恶意使用低级别的目标版本来规避隐私和安全权限。

辅助功能

从Android 14开始,系统支持高达200%的字体缩放。这一目的是为弱视用户提供符合 Web 内容无障碍指南(WCAG)的额外无障碍选项。如果开发者已经使用缩放像素(sp)单位来定义文本大小,那么此更改可能不会对您的应用产生重大影响。

e4a17c3587bb2e45709b618df7400656.png

核心功能

默认情况下拒绝计划精确警报

精确警报用于用户有意的通知,或用于需要在精确时间发生的操作。从Android 14开始,SCHEDULE_EXACT_ALARM权限不再预先授予大多数新安装的针对Android 13及更高版本的应用程序——该权限默认情况下被拒绝。

上下文注册的广播在缓存应用程序时排队

在Android 14上,当应用处于缓存状态时,系统可能会将上下文注册的广播放入队列中,也就说,并不是注册之后广播就会直接启动,将根据系统使用情况来等待分配。

目标版本为Android 14的App

核心功能

需要前台服务类型

如果应用以Android 14为目标平台,则它必须为应用内的每个前台服务指定至少一种前台服务类型。

Android 14还引入了用于健康和远程消息传递用例的前台服务类型。该系统还为短服务、特殊用例和系统豁免保留新类型。

前台服务类型有很多,如下列所示:

  • connectedDevice

  • dataSync

  • health

  • location

  • mediaPlayback

  • mediaProjection

  • microphone

  • phoneCall

  • remoteMessaging

  • shortService

  • specialUse

  • systemExempted

其中health、remoteMessaging、shortService、specialUse和systemExempted类型是Android 14中提供的新类型。

声明代码如下所示:

<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYPACK" />
    <application ...>
      <service
          android:name=".MyMediaPlaybackService"
          android:foregroundServiceType="mediaPlayback"
          android:permission="android.permission.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYPACK"
          android:exported="false">
      </service>
    </application>
</manifest>

Service.startForeground(0, notification, FOREGROUND_SERVICE_TYPE_LOCATION)

安全

对隐式意图的限制

应用程序必须使用明确的意图来交付给未导出的组件,或者将组件标记为已导出。如果应用程序创建一个可变的挂起意图,但意图未指定组件或包,系统现在会抛出异常。比如我们在配置文件中声明了一个exported为false的Activity,代码如下所示:

<activity
    android:name=".AppActivity"
    android:exported="false">
    <intent-filter>
        <action android:name="com.example.action.APP_ACTION" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

然后我们按照意图启动这个Activity,代码如下所示。

context.startActivity(Intent("com.example.action.APP_ACTION"))

那么很抱歉,这里将抛出一个异常。必须改为显示的Intent,代码如下所示:

val explicitIntent =
        Intent("com.example.action.APP_ACTION")
explicitIntent.apply {
    package = context.packageName
}
context.startActivity(explicitIntent)

更安全的动态代码加载。

新增功能

联系人

Android 14增加了以下两个字段:

  • Contract.Contacts#ENTERPRISE_CONTENT_URI

  • ContactsContract.CommonDataKinds.Phone#ENTERPRISE_CONTENT_URI

这些字段一起允许具有READ_CONTACTS权限的个人应用程序列出所有工作配置文件联系人和电话号码,只要DevicePolicyManager中的跨配置文件联系人策略允许。

/   写在最后   /

由于,昨天刚刚发布了第一个预览版本,所以我们能感觉到的变化不是太大,不过Android的方向一直都是在权限、隐私等方向。后续如何适配,我们只有等着官方稳定版本出来之后在讨论了~

Android系统更新如此迅速,你觉得这算是狂飙吗?

推荐阅读:

我的新书,《第一行代码 第3版》已出版!

Compose跨平台又来了,这次能开发iOS了

2022年终总结,我的10年Android之旅

欢迎关注我的公众号

学习技术或投稿

8f41923f8d3443ca6e76fa908e4f94c3.png

8fb2c42985deeb57fc920141bc113c20.jpeg

长按上图,识别图中二维码即可关注

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值