导读

谷歌发布的Android P 版本对TargetSdkVersion参数提出了要求,华为终端开放实验室迅速对
TOP3000应用展开检测,测试结果不容乐观:超过300个应用出现了兼容性问题,不兼容率超过十分之一。

那么,在 P 版本适配过程中开发者该如何解决由TargetSdkVersion引入的兼容性问题?下面由华为专家带您解读谷歌
TargetSdkVersion<17 适配指导。

一 谷歌 TargetSdkVersion 特性背景

谷歌要求,在 P 版本中应用设置的TargetSdkVersion需要>=17,否则将弹出警告对话框来提示用户,并且谷歌有明确的CDD要求,该提示无法去除。



二 适配指导

修改应用的 TargetSdkVersion 值:



建议开发者将
TargetSdkVersion设置成17+,如果认为TargetSdkVersion设置过高,适配工作量太大,也可以将TargetSdkVersion设置成17进行适配,此设置适配工作量最小。

测试并解决由 TargetSdkVersion 引入的兼容性问题

开发者可参考谷歌提供的适配指导文档,并且需重点关注谷歌每个新版本中只对 TargetSdkVersion 生效的变化和修改:

P版本:

将应用迁移到 Android P 链接:
https://developer.android.com/preview/migration
<https://developer.android.com/preview/migration>

Android P 功能和 API 链接:
https://developer.android.com/preview/features
<https://developer.android.com/preview/features>

Android P 行为变更 链接:
https://developer.android.com/preview/behavior-changes
<https://developer.android.com/preview/behavior-changes>

重点关注:

对于非 SDK 接口的限制 链接:
https://developer.android.com/preview/restrictions-non-sdk-interfaces
<https://developer.android.com/preview/restrictions-non-sdk-interfaces>

刘海屏适配 链接:
https://developer.android.com/preview/features#cutout
<https://developer.android.com/preview/features#cutout>

O版本:
向 Android 8.0迁移应用 链接:
https://developer.android.com/about/versions/oreo/android-8.0-migration
<https://developer.android.com/about/versions/oreo/android-8.0-migration>

Android 8.0 功能和 API 链接:
https://developer.android.com/about/versions/oreo/android-8.0
<https://developer.android.com/about/versions/oreo/android-8.0>

重点关注:
Android 8.0 行为变更 链接:
https://developer.android.com/about/versions/oreo/android-8.0-changes
<https://developer.android.com/about/versions/oreo/android-8.0-changes>

最大屏幕纵横比:如果应用设置TargetSdkVersion>=26,那么在任何纵横比的屏幕都会默认全屏显示,开发者需注意不同比例屏幕的显示适配。

以 Android 7.1(API级别25)或更低版本为目标平台的应用默认的最大屏幕纵横比为 1.86。针对
Android 8.0或更高版本的应用没有默认的最大纵横比。如果您的应用需要设置最大纵横比,请使用定义您的操作组件清单文件中的maxAspectRatio
属性。

后台执行限制:广播和后台服务管控 链接:
https://developer.android.com/about/versions/oreo/background
<https://developer.android.com/about/versions/oreo/background>

其他:



N版本:

Android 7.0 行为变更 链接:
https://developer.android.com/about/versions/nougat/android-7.0-changes
<https://developer.android.com/about/versions/nougat/android-7.0-changes>

重点关注的特性变化:

NDK 应用链接至平台库从 Android 7.0 开始,系统将阻止应用动态链接非公开 NDK
库,这种库可能会导致您的应用崩溃,下表描述的是根据应用使用的私有原生库及其目标 API 级别
(android:targetSdkVersion),应用预期显示的行为:



M版本:

Android 6.0 变更 链接:
https://developer.android.com/about/versions/marshmallow/android-6.0-changes
<https://developer.android.com/about/versions/marshmallow/android-6.0-changes>

Android 6.0 API 链接:
https://developer.android.com/about/versions/marshmallow/android-6.0
<https://developer.android.com/about/versions/marshmallow/android-6.0>

Android 6.0 测试指南 链接:
https://developer.android.com/about/versions/marshmallow/android-6.0-testing
<https://developer.android.com/about/versions/marshmallow/android-6.0-testing>

L版本:

Android 5.1 API 链接:
https://developer.android.com/about/versions/android-5.1
<https://developer.android.com/about/versions/android-5.1>

Android 5.0 API 链接:
https://developer.android.com/about/versions/android-5.0
<https://developer.android.com/about/versions/android-5.0>

Android 5.0 行为变更 链接:
https://developer.android.com/about/versions/android-5.0-changes
<https://developer.android.com/about/versions/android-5.0-changes>

K版本:

Android 4.4 API 链接:
https://developer.android.com/about/versions/android-4.4
<https://developer.android.com/about/versions/android-4.4>

J版本:

Android 4.3 APIs 链接:
https://developer.android.com/about/versions/android-4.3
<https://developer.android.com/about/versions/android-4.3>

Android 4.2 APIs(API Level: 17) 链接:
https://developer.android.com/about/versions/android-4.2
<https://developer.android.com/about/versions/android-4.2>

Android 4.1 APIs(API Level: 16) 链接:
https://developer.android.com/about/versions/android-4.1
<https://developer.android.com/about/versions/android-4.1>

建议开发者多次对应用进行测试验证,避免引入新的兼容性问题

三 测试验证方法

方法一:购买谷歌 Pixel、Pixel XL、Pixel2、Pixel 2 XL,刷 P 版本进行测试版本下载

参考:
https://developer.android.google.cn/preview/download
<https://developer.android.google.cn/preview/download>





*DP2版本,需要将网页底部的显示语言修改为英文,中文显示的仍为DP1版本

刷机

*刷机前需要退出之前登录的谷歌账号

1.下载对应设备的压缩包并解压;

2.手机连 USB 后,执行 adb reboot bootloader 命令;

3.手机出现小机器人图案,并显示‘unlock’字样时,执行压缩包中的 bat 脚本。

如果是“lock”字样:

1.连续点击设置-版本号7次,打开开发人员选项;

2.在开发人员选项中打开 OEM unlock;

3.连接手机到电脑,执行 adb reboot bootloader 命令到小机器人界面;

4.执行 fastboot oem unlock,手机就解锁了,再使用上面的刷机方法即可。

方法二:远程真机调试

1.新用户注册使用

新用户如需申请使用华为终端开放实验室的云测功能,需加入安卓绿色联盟,成为会员。可通过以下步骤申请:

登录https://deveco.huawei.com/ <https://deveco.huawei.com/>;

使用所在公司尾缀的邮箱进行账号注册;

将您新申请的账号、所在公司、个人姓名及电话、负责的应用名称发送至[email protected],申请成为安卓绿色联盟会员,通过审核后,将为您开通使用权限;

2.登录账号选择真机进行远程调试



3.选择手机:Pixel



4.点击“立即体验”,上传 APK 进行调试



方法三:使用谷歌模拟器验证

安装和配置 Android P SDK 和模拟器

参考:
https://developer.android.google.cn/preview/setup-sdk
<https://developer.android.google.cn/preview/setup-sdk>

P版本中谷歌加入了“非SDK接口使用限制”,此特性将对所有开发者产生影响。

点击填写《非 SDK 适配问卷》 <https://wj.qq.com/s/2048132/ffd6>,我们期待得到您的反馈!


友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信