全部产品

mPaaS 适配 targetSdkVersion 29

更新时间:2020-10-23 18:15:01

背景

mPaaS 标准基线对 targetSdkVersion 最高仅支持到 26。如果您的应用需要将 targetSdkVersion 升级到 29,请使用定制基线 10.1.68a,并按照下文更新 SDK 和添加配置,并回归相关功能。

说明:10.1.68a 基线虽已通过测试,但目前仍处在 beta 阶段,请谨慎使用。

更新 SDK

参考 mPaaS 支持多 CPU 架构 更新 SDK 及相关配置。

适配 targetSdkVersion 29

前置条件

请先参考 mPaaS 适配 targetSdkVersion 28 完成 targetSdkVersion 28 的相关适配。

修改 targetSdkVersion

Inside/AAR

在工程主 module 下的 build.gradle 文件中修改属性 targetSdkVersion 29。

Portal&Bundle

  • 在 Portal 工程主 module 下的 build.gradle 文件中修改属性 targetSdkVersion 29。
  • 在 Bundle 工程中的 targetSdkVersion 可不修改,但不得高于 Portal 工程。

通用配置

修改工程 AndroidManifest.xml,在 application 节点下添加以下属性:

  1. <application
  2. android:requestLegacyExternalStorage="true"
  3. ... >

后台使用定位功能

如果您的应用需要在后台时使用定位功能,需添加、申请以下权限:

  • AndroidManifest.xml 中添加权限:
    1. <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
  • 调用定位 API 前确保动态申请了该权限:
    1. String[] permissions;
    2. if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
    3. permissions = new String[]{
    4. Manifest.permission.ACCESS_FINE_LOCATION,
    5. Manifest.permission.ACCESS_COARSE_LOCATION,
    6. Manifest.permission.ACCESS_BACKGROUND_LOCATION
    7. };
    8. } else {
    9. permissions = new String[]{
    10. Manifest.permission.ACCESS_FINE_LOCATION,
    11. Manifest.permission.ACCESS_COARSE_LOCATION
    12. };
    13. }
    14. ActivityCompat.requestPermissions(this, permissions, 101);

使用小程序蓝牙功能

如果您的应用需要在小程序中使用蓝牙相关 API,需添加、申请以下权限。

  • AndroidManifest.xml 中添加权限:
    1. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  • 调用蓝牙 api 前确保动态申请了该权限:
    1. String[] permissions = new String[]{
    2. Manifest.permission.ACCESS_FINE_LOCATION,
    3. };
    4. ActivityCompat.requestPermissions(this, permissions, 101);

回归测试

全量回归测试的设备中必须包含 Android 10.0+ 设备。

回归测试中您需要重点关注以下组件功能(如果使用):

组件 验证项目
统一存储 - 数据库加密存储 是否正常。
热修复
- 热修复 是否能够生效。
移动分析
- 移动分析 卡顿监控是否正常。
小程序 - 小程序文件 API 是否正常。
- 小程序蓝牙 API 是否正常。
- 小程序地图组件是否正常。
定位
- 定位 是否正常。