乐趣区

关于android:产品动态丨Android-13-高效适配全新升级

谷歌从 2022 年 2 月开始启动 Android 13 开发者预览版打算,将于 2022 年 6 月的 Beta 版 3 达成“平台稳定性”里程碑,并预计在今年年底公布最终版本。谷歌倡议开发者将“平台稳定性”里程碑作为布局最终兼容性测试和公开公布的指标。本次新版本次要涵盖了开发者工作效率、图形、性能、电池、隐私权和平安方面的变更。对此,MobTech 袤博科技资深 Android 开发工程师将联合最新的开发者预览版,解读 Android 13 在利用开发中须要留神的要点。

针对 Android 13 颁布的新个性及变动,MobTech 将继续关注,并依照谷歌倡议进行对应的适配,从而保障旗下开发者服务相干产品的用户体验。咱们的适配工作次要聚焦于隐衷、平安的适配、性能兼容适配测试和灰名单的适配,以后 ShareSDK、MobLink、SecVerify、SMSSDK 根底性能失常,MobPush、MobAdPush 适配工作正在进行,预计 7 月份实现。

Android 13 环境配置

  1. 通过 SDK Manager 下载 Android SDK Build-Tools 33
  2. 更新利用的 build 配置
  • AGP 7.0.0 或更高版本
  • AGP 4.2.0 或更低版本
  1. Pixel 手机刷入,需返回 Android 开发者平台获取相应的 image 或在 AS 中下载 Android 13 模拟器   

新性能应用

1. 带主题的利用图标

从 Android 13 起,用户能够抉择启用带主题的利用图标。借助此性能,用户能够调节受反对的 Android 启动器中利用图标的色调,以继承所选壁纸和其余主题的配色。

2. 按利用设定的语言偏好设置

Android 13 针对反对多种语言的利用引入了以下新性能:
① 使利用可在运行时设置在界面中应用其余语言的 API
② 容许用户为每个利用抉择首选语言的零碎设置
③ 不反对多种语言的利用不受这些变更的影响

应用形式: 
① 应用 AndroidX 反对库来实现

② 应用 Android 框架 API 来实现

3. 改良了日语文本换行

当初,TextView 能够按 Bunsetsu(最小天然语素单元)或短语而非字符进行文本换行,从而使日语利用的界面更加好看、易读。

应用形式:

成果如下:
图片上半局部是未启用短语款式的日语文本换行,下半局部是启用了短语款式的日语文本换行。

4. 可编程的着色器

Android 13 增加了对可编程 RuntimeShader 对象的反对,其行为是应用 Android 图形着色语言 (AGSL) 定义的。AGSL 与 GLSL 共用大部分语法,但可用于 Android 渲染引擎中以自定义 Android 画布中的绘制行为以及过滤 View 内容。Android 在外部应用这些着色器来实现涟漪成果、含糊以及拉伸滚动,并且 Android 13 能为利用制作相似的高级成果。

5. 照片选择器

Android 13 蕴含对新照片选择器工具的反对。此工具为用户提供了一种平安的内置媒体文件抉择形式,让其无需向利用授予对整个媒体库的拜访权限。

应用形式:
① 单选模式下启动照片选择器

② 抉择多张照片或多个视频
申明 android.provider.extra.PICK_IMAGES_MAX 的值,该值示意在向用户显示时照片选择器中显示的媒体文件数量下限。

解决照片选择器后果:

6. 针对左近 Wi-Fi 设施的新运行时权限

Android 13 在 NEARBY_DEVICES 权限组中引入了新的运行时权限 NEARBY_WIFI_DEVICES,实用于治理设施与左近 Wi-Fi 接入点连贯状况的利用,可满足各种 Wi-Fi 用例。
另外在以 Android 13 为指标平台时,如果利用不会通过 Wi-Fi API 推导物理地位,请在利用的清单文件中将 usesPermissionFlags 属性设为 neverForLocation,如以下代码段所示。

因为 NEARBY_WIFI_DEVICES 权限仅实用于 Android 13 或更高版本,因而开发者应保留对 ACCESS_FINE_LOCATION 的所有申明,以便在您的利用中提供向后兼容性。

注意事项:
① 以下 API 仍须要地位信息权限

② 查看须要新权限的 API

7. 可由开发者降级的权限

 从 Android 13 开始,利用能够吊销先前由零碎或用户授予的运行时权限。此 API 能够帮忙利用爱护用户的隐衷。

应用形式:

注意事项:
吊销是异步产生的,会终止与利用的 UID 相关联的所有过程。

8. APK 签名计划 v3.1

Android 13 可反对 APK 签名计划 v3.1,此计划在现有的 APK 签名计划 v3 的根底上进行了改良,解决了 APK 签名计划 v3 的一些已知问题。

变更适配

1. 应用 JobScheduler 改良预提取作业处理

利用 JobScheduler,利用可应用 JobInfo.Builder.setPrefetch() 将特定作业标记为“预提取”作业。这意味着在现实状况下,这些作业应该在利用下一次启动前提前运行,以晋升用户体验。过来,JobScheduler 仅应用该信号让预提取作业有机会应用收费或多余的数据。

当初,在 Android 13 中,零碎会尝试确定利用下次启动的工夫,并依据该估算值运行预提取作业。利用应尝试应用预提取作业来实现他们想要在下次利用启动前实现的任何工作。

影响范畴: 所有利用。

2. 告诉运行时权限

Android 13 中引入了新的运行时权限,用于从利用发送非豁免告诉:POST_NOTIFICATIONS。此更改有助于用户专一于最重要的告诉。

影响范畴: 所有利用。

成果如下:

应用形式:
① 须要在利用的清单文件中申明的权限会显示在以下代码段中:

② 实现与申请其余运行时权限相似的流程

3. 在后盾应用身材传感器须要新的权限

Android 13 中引入了“在应用时”拜访身材传感器的概念。如果利用以 Android 13 为指标平台,并且在后盾运行时须要拜访身材传感器信息,那么除了现有的 BODY_SENSORS 权限外,利用还必须申明新的 BODY_SENSORS_BACKGROUND 权限。

影响范畴: 以 Android 13 及更高版本为指标平台的利用。

4. intent 过滤器会屏蔽不匹配的 intent

利用向以 Android 13 或更高版本为指标平台的其余利用的导出组件发送 intent 时,仅当该 intent 与接管利用中的元素匹配时,零碎才会传送该 intent。换言之,零碎会屏蔽所有不匹配的 intent,但以下状况除外:

  • 发送给其余利用的未声明任何 intent 过滤器的组件的 intent。
  • 发送给您利用中的其余组件的 intent。
  • 由零碎发送的 intent。
  • 由具备根级特权的用户发送的 intent。

影响范畴: 以 Android 13 及更高版本为指标平台的利用。

5. 更平安地导出上下文注册的接收器

为了进步运行时接收器的安全性,Android 13 容许开发者指定利用中的特定播送接收器是否应被导出以及是否对设施上的其余利用可见。

影响范畴:以 Android 13 及更高版本为指标平台的利用。

应用形式:
① 启用 DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED 兼容性框架更改。

② 在利用的每个播送接收器中,明确指明其余利用是否能够向其发送播送,如以下代码段所示。

退出移动版