AndroidQ简介及版本适配
如果要改编App,主要是通过设置以下风格:
并且使用这个属性?android:attr/textColorPrimary
此外,谷歌还提供了一个Force Dark开关。
详情请见Q黑暗模式谷歌官方介绍。
Android 10无需用户确认即可控制按钮。
setConfirmationRequired(false)
当用户的生物特征不可用时,可以设置setDeviceCredentialAllowed()允许用户使用PIN、手势密码和数字密码通过认证。
(1)适配可以分为两种。
(2)在Google和各大应用市场适配的时间要求:
如果我们项目原来的api是25,要直接升级到api29,需要适配:Andoird O,Android P,Android Q,三个适配阶段都需要。
下面将简要介绍这些API的适配:
您需要在创建通知之前创建一个通道,并且需要在创建通知时传入channelId。
2.1什么是前台应用?(这里的前台应用是指服务限制)
2.2什么是后台服务限制?
2.3解决方案:
设置透明主题的活动,然后设置屏幕方向。
引发以下异常
想必是Google8.0手机的bug,后续版本已经修复。
3.2.1 webview数据目录变更
如果api设置为28,多个进程使用同一个目录webView。
抛出异常:
解决方案:为不同的流程设置不同的webview数据目录。
3.2.2 Apache HTTP客户端弃用
在Android 6.0中,谷歌取消了对Apache HTTP客户端的支持。从Android 9开始,默认情况下,内容库已经从bootclasspath中删除,并且对应用程序不可用。要继续使用Apache HTTP客户端,面向Android 9和更高版本的应用程序可以将以下内容添加到其AndroidManifest.xml中:
3.2.3非sdk接口控制
官方检查器veridex用于检测apk中何处使用了非SDK接口。
扫描结果类似下图(图片来自Android P版(VII)中的veridex工具扫描非SDK接口,veridex的用法也可以参考本文):
3.2.4前台服务
Android 9或更高版本使用前台服务的应用需要请求FOREGROUND_SERVICE权限,系统会自动将该权限授予请求权限的应用。如果Android 9或更高版本的应用程序试图创建前台服务,并且没有请求FOREGROUND_SERVICE,系统将抛出SecurityException。
3.3.1应用存储空间变更
默认情况下,如果应用以Android Q为目标平台,那么在访问外部存储设备中的文件时会进入过滤器视图。应用程序可以使用上下文。getExternalFileSdir()将专用于自己的文件存储在自己的目录中。具有过滤视图的应用程序始终对其创建的文件具有读/写访问权限,无论文件位于特定于该应用程序的目录中还是外部。应用程序可以访问这些文件,而无需声明任何存储权限。
只有满足以下两个条件,应用程序才能访问其他应用程序创建的文件:
谷歌q版应用兼容性整改指南
华为开发者联盟文档中心
谷歌Android-8.0-迁移