新版本管理系统适配:Android 12 中的兼容性变更
发布时间:2025年09月28日 12:18
可靠性具体的调整
里边一站式 (仅仅因素 targetSdkVersion 为 31 的分析先为法)
里边一站式能让 Android 系统设计尽可能资源前提运用于勉强进行客户端筹组的耗时分派,但它经常被滥用。我们辨认出基本上一半的里边一站式是从往常启动时的,这造成了了许多情况,都有电池时会被迅速耗尽,以及客户端时会被意外的里边一站式指示顾虑等。因此从 Android 12 开始,将禁止从往常启动时里边一站式,并对启动时里边一站式先为了允许。表列出可能可启动时里边一站式:
可见的 Activity 或视窗客户端操先为,如指示、小部件等等特定的广播和难以意味着STICKY 型式的一站式可在崩溃或由于很低磁盘而中止运转的可能下据报导有关里边一站式启动时允许的清晰限额沙罗,再三查看 Android Valve其网站—— 里边一站式。
上周几天后,我们在 Jetpack 的 WorkManager 库里面替换成了加急分派。这些很低过长分派可从里边或往常子程序并时会当即分派。这些分派可在很低电池方式则也下运转。我们鼓励Valve尽有可能应当运用于这些分派来替代启动时里边一站式。
直观红绿灯职责 (仅仅因素 targetSdkVersion 为 31 的分析先为法)
在大多数可能下,分析先为法应当应当运用于粗直观度红绿灯,其绝对优势在于省电。在红绿灯和计时器等特别可能下,可应当运用于直观红绿灯。Android 12 最初增了一项名册职责——SCHEDULE_EXACT_ALARM,客户端可查看并操纵拥有此职责的分析先为法。此外,还最初增了一个在此之后 API —— canScheduleExactAlarms(),您可应当运用于此 API 来检验分析先为法的职责长时间。
指示 trampoline (Notification trampolines,仅仅因素 targetSdkVersion 为 31 的分析先为法)
一些分析先为法在处置客户端点击指示的使用暴力时,时会应当运用于广播接收器或一站式等里面间框架,这些框架被专指指示 trampoline,它们时常造成了过长和客户端报表里面断,朝向 Android 12 的分析先为法将不能从这些蹦床启动时 Activity。这上最初允许有助于降低从指示启动时分析先为法的过长。我们鼓励弃用指示 trampoline 并直接从指示启动时前提 Activity。举个例子,在弃用指示 trampoline 后,Google 主页分析先为法的启动时速度提高了 34%。如果您的分析先为法应当运用于了指示 trampoline,再三应当运用于表列出 adb 号令查看客户端与指示交互时所启动时的框架:
$ adb shell dumpsys activity service com.android.systemui/.dump.SystemUIAuxiliaryDumpService△ 应当运用于该号令查看客户端与指示交互时所启动时的框架
分析先为法镜像 (仅仅因素 targetSdkVersion 为 31 的分析先为法)
Android 反对分析先为法镜像的概念,它可以让 HTTP 网址直接镜像到已安装的分析先为法。这样便可显然绕过消歧对话框,通过消除客户端应当运用于过程里面的歧见来提升客户端感官。分析先为法镜像与深层镜像的差异在于分析先为法镜像只能处置 HTTP 方式则也,而深层镜像可以处置任何方式则也。
各有不同于实际上的发行国际版,Android 12 将始终为未能实验者的镜像敞开匹配应当用程序。这有可能是分析先为法镜像在使用暴力层面最主要的调整。Android 12 还替换成了文末镜像实验者,因此,如果存在任何一站式器端集成或内置误解,将以外未能通过实验者的镜像,您可以应当运用于最初 DomainVerificationManager API 检验的网站实验者长时间,并在须要时将客户端带到「设立」以便批准分析先为法应当运用于的的网站。如需了解到详细情况,再三参阅 Android Valve其网站—— 实验者 Android 分析先为法镜像。
△ 应当运用于分析先为法镜像绕过消歧对话框直达已安装分析先为法并行性先为法论方法
今天我们已了解到 Android 12 里面的最初功能和调整,下面我们来是不是让分析先为法并行的飞行测试和方法。在 Android 11 里面我们替换成了并行性先为法论方法以便针对调整不够精采地飞行测试和试运转分析先为法。有了这些方法您可以原则上敞开和停用某个重大事件调整并评估其对分析先为法的因素。通过这种方式则,您可以一次只针对一项使用暴力调整并行进行受控和飞行测试,或精采开业 targetSDK 并不相同当的调整。
△ Valve可选> 分析先为法并行性调整您可以应当运用于Valve可选、logcat 或 adb 号令来检验局限性开业的使用暴力调整。对于除此以外使用暴力调整,当分析先为法首次子程序深受因素的 API 时,系统设计时会输出一条多种不同这样的 logcat 第一时间:
D CompatibilityChangeReporter: Compat change id reported: 170668199 ;UID 10265; state: ENABLED△ Logcat 为某项调整的输出示例
您可以应当运用于表列出 adb 号令列出系统设计据信的所有并行性调整 (都有已开业和中止使用的调整) 及其局限性的开业可能。沙罗里面的除此以外调整都有名称、亦可指称的调整 ID 和开业/中止使用长时间。
$ adb shell dumpsys platform-compat△ 应当运用于 adb 号令列出系统设计据信的所有并行性调整
还可以应当运用于表列出 adb 号令敞开或停用某个插件的调整:
$ adb shell am compat enable|disable|reset△ 应当运用于 adb 号令设立单个分析先为法的调整
在也就是说飞行测试里面不必变不够 targetSdkVersion 或再一解释器分析先为法,Android SDK时会终端调整其实际上演算。由于可原则上敞开或停用调整,因此可逐一并行进行受控飞行测试、试运转使用暴力调整,或中止使用造成了情况的赛会调整。
再三注意,由于只能敞开或停用可试运转分析先为法的调整。因此,如果在并行性先为法论里面未能留意到您的分析先为法再三尽可能在名册里面将分析先为法设立为可试运转:
△ 在名册档案里面将分析先为法设立为可试运转
再三记住在已签名的 Android 发布发行国际版上,无法修改因素所有分析先为法的调整的开业长时间。Android 12 去除了在此之后 adb 号令来飞行测试和实验者分析先为法的分析先为法镜像。您可应当运用于这些号令在的设备上手动实验者镜像,或将其去除到持续集成方法链里面。
// 清理分析先为法任何之前实验者的长时间:$ adb shell pm set-app-links ----package PACKAGE_NAME 0 all // 开始实验者飞行测试:$ adb shell pm verify-app-links ----re-verify PACKAGE_NAME // 查看飞行测试结果:$ adb shell pm get-app-links PACKAGE_NAME△ 在 Android 12 里面应当运用于这些 adb 号令飞行测试分析先为法镜像
再三以利尝试应当运用于 Android Studio Arctic Fox 并行进行开发和飞行测试。我们已去除 lint 检验来努力您辨认出编码有可能深受 Android 12 调整因素的大都。例如插件开屏页、针对直观前面应当运用于的单单前面职责、媒体格式等。当然,首先要花钱的就是设立 Android 12 SDK。
Valve情形今天我们将重现一些Valve之前适配器 Android 12 的授予成功情形。由于适配器了 Android 12,他们的客户端便可以发挥先为用这种最初感官。
临近的设备职责 (仅仅因素 targetSdkVersion 为 31 的分析先为法)
Withings 的 HealthMate 分析先为法让客户端能通过移动设备相连和并行 Withings 的的设备。Android 12 替换成了一项最初职责将移动设备追踪与前面职责除去。
△ HealthMate 分析先为法获准临近的设备职责对我们而言,临近的设备职责是 Android 12 里面最主要的调整之一。 Withings HealthMate
在隐私多层面上,很难向终端客户端解释前面职责与移动设备的间的关系。有好几年,Withings 的设计团队不得不在客户一站式主题和手册层面投放成本,以便客户端了解到分析先为法须要前面职责才能追踪移动设备的原因。即使花钱了充份的解释,该设计团队也因获准前面职责而送达了负面应答。
相比之下,临近的设备职责不够有效性。因为它只在追踪和相连时要求职责。Withings 的建筑技工提出了一些要求:
将检验和获准最初职责的演算并行进行一般化。这有助于操纵入口点并尽有可能降低飞行测试实习;在所有深受反对的 Android 发行国际版上对所有职责检验并行进行单元飞行测试;应当运用于 Android 真机并飞行测试各有不同的升级场景以尽可能分析先为法正常运转;如果分析先为法在以后的 Android 发行国际版上授予了前面职责,当客户端升级到 Android 12 时,该分析先为法将终端被授予临近的设备职责。要应当运用于在此之后临近的设备职责,必需在名册档案里面单层面 BLUETOOTH_SCAN 职责:
△ 追踪临近的设备时应当在名册档案里面单层面职责
这是一项运转时职责,除了在名册里面单层面外,分析先为法还必需在开始追踪的设备以后,在运转时检验并获准此职责。您可以通过将 usesPermissionFlags 也就是说单层面为 neverForLocation,来表明不打算应当运用于追踪结果获取客户端前面。
如果只须要相连到的设备,则可以单层面 BLUETOOTH_CONNECT 职责:
△ 相连的设备时应当在名册档案里面单层面职责
所致摇动效用 (Overscroll Effect,因素所有分析先为法)
在 Android 12 上大多数分析先为法都时会有一种在此之后所致摇动拉伸效用。一些应当运用于 Android 12 的 Beta 客户端在 Signal 分析先为法里面摇动浏览第一时间时,留意到了一种奇怪的效用:
△ Signal 分析先为法里面的奇怪效用在 Signal 的情形里面,分析先为法反对插件剧中。该分析先为法应当运用于了一种可穿透界面层级的遮蔽插值,每当配置或摇动具体内容时,Signal 分析先为法都时会在屏幕上建立一个第一时间吸管投影沙罗,然后分析先为法将应当运用于这些投影成立一个蒙国际版,并将其分析先为法于个数的渐变色或纯色。
建筑工程设计团队立刻想出了一个利用 RecyclerView.ItemDecoration 的妥善解决方案。理应修复所致摇动情况可让 Signal 分析先为法在最初国际版的设备上备有客户端盼望的感官而不因素可靠性。
△ Signal 修复所致摇动情况后的效用我们为 Android 12 正式国际版及时修复了所致摇动的情况并为客户端备有了统一的感官。 Signal Private Messenger
Signal 设计团队提出了一些要求:
注意结合方式则也及其先为为可选层的实习数学模型。Android 12 所致摇动应当运用于可选层来图形拉伸效用,这可通过各有不同结合插值分解各有不同的结果;尽可能剧中由 RecyclerView 图形;在发布以后,分派一次全面质量检验,并妥善解决客户端对 Android 12 并行性的应答。Signal 分析先为法是备有感官客户端感官的一个范例。幸运的是,Android 国际版 Signal Private Messenger 为开源软件,您可在 GitHub 上查看其修复编码。
总结在本文里面,我们介绍了 Android 12 给Valve及客户端造成的最主要的几项调整,并提出均要求:
Android 12 造成了明显的听觉修正应当运用于已备有的方法和要求来飞行测试您的分析先为法从其他Valve处授予启发不够多调整具体具体内容,再三参阅 Android Valve其网站——Android 12。
最主要的一点,记得飞行测试您的分析先为法并证实其与 Android 12 的并行性。许多Valve收尾此分派,今天是时候为这些调整花钱好立即并备有不错的客户端感官。我们期待在 Android 12 上留意到您的分析先为法。
欢迎您敞开镜像: 向我们提请应答,或社交您喜欢的具体内容、辨认出的情况。您的应答对我们非常重要,感谢您的反对
。广东肿瘤医院哪好潍坊男科去哪看
武汉皮肤病医院哪家更好
佛山前列腺炎治疗哪家好
北京男科医院预约挂号
吃什么药可以治疗风热咳嗽
产后出血
感染者又增加?新冠的三大知识点一定要知道!
嗓子痒止咳最快的方法
五官科
- 低颜值+低舒适度!南京新街口这个公厕成网红打卡地
- 病娇、暗黑风?金泰娥《Can't Control Myself》预告照公开
- 川航A350大运号主题涂装直升机亮相!
- 除了价格以外,还需要重视奶粉标准的问题
- 中国取消72万吨巴西大豆订单,与美国交易189万吨,这是花钱什么?
- 警方证实李靓蕾已报警 但并没有完成正式的报警手续
- 到南温泉区去
- 低于消费门槛须交“小单费” 家装“行规”为何如此蛮横?
- 养猪业的独特观念
- 让人无法安慰的五部烂片,每一部都烂到出格,若你一部没看太幸运
- 浙江江山:保安乡民宿大通道旺乡村
- 莎莎运动鞋不合格被罚3万元 一年内已因产品不合格被处罚4次
- 李靓蕾最新发文:王力宏带三个朝天上门,还要求拔掉监控,如果我发生什么事,
- 北京朝阳区涉奥酒店无障碍设施改造已全部顺利完成