安卓12适配有什么缺点
① Android 12适配-行为变更:所有应用
简单讲,就是从Android 12开始,所有的App在每次启动时(特指冷启动与温启动),系统都会为我们加上一个默认的启动画面,如下所示:
该启动画面主要由以下4个元素组成,分别为:
(1) 应用图标 :可以是静态或动画形式。默认情况下,使用Launcher图标。
(2) 图标背景 :可选,在图标与窗口背景之间需要更高的对比度时很有用。
(3) 前景遮罩 :可选,前景的 ⅓ 将被遮盖。
(4) 窗口背景 :不透明的单色,默认是所设置主题的windowBackground。
虽然这个启动画面允许我们一定程度的自定义,但总体都无法跳脱出以上4个元素,且 无法去除 。如果不做任何处理,加上我们原有的闪屏页和广告页,视觉上会有 多个启动画面 。
方案1(懒人专用): 设置除窗口背景之外的元素都为透明
处理后的效果就是,在启动时会先显示由所设置主题的windowBackground指定的纯色背景,即与大多数开发者之前为了解决启动黑屏/白屏问题所采用的方法一致。
方案2(常规做法): 改用SplashScreen API定制系统启动画面
缺点就是可定制程度低,可能无法满足产品的需求;
如果总体的效果可以接受,那么接下来要处理的就是对原有闪屏页的取舍,以及与原有广告页的画面衔接了。
但如开头所言,我们的目标是 将改动最小化 ,那么,原有闪屏页该干嘛还是让它干嘛,初始化也好,路由也罢,逻辑不变,要求只是不再显示而已。
具体做法如下:
简单讲,就是从Android 12开始,用户可以通过状态栏下拉菜单中两个新增的切换开关选项,一键启用/停用摄像头和麦克风使用权限。
请注意,这里的“使用权限”针对的是设备上的所有App,是全局的,不要和Android 6.0的“运行时权启耐限”混淆。
而两者在具体表现上也有所不同,在实际操作中:
尽管官网上提供了检查设备是否支持麦克风和摄像头切换开关的API,也就是检查状态栏下拉菜单是否有这两个开关选项,然而这枣旁岁对于我们实际的适配工作几乎没有什么卵用:
SensorPrivacyManager类倒是有提供检查指定切换开关是否开启的API,但由于是系统权限,因此即使是通过反射形式也无法调用:
所幸的是,如果用户主动关闭了摄像头或麦克风的使用权限,那么当下次App再需要启动摄像头或麦克风时,系统就会提醒用户,相关硬件的使用权限已关闭,并申请重新开启:
因此,对于此行为变更的适配,我们要做的,就是验证在用户主动关闭了摄像头或麦克风使用权限后,App的相关功能是否受影响,至于监听/提示/重新开启的工作则交给系统帮我们完成即可。
做过定位功能的Android开发者都知道,Android提供了两种不同精确度的位置权限凳睁,分别是:
而在以Android 12为目标平台的App上,当App尝试请求ACCESS_FINE_LOCATION权限时,系统权限对话框会提供两个选项,即允许App获取确切位置,还是仅允许获取大致位置。
并且如果您的应用请求 ACCESS_FINE_LOCATION运行时权限,您还应请求 ACCESS_COARSE_LOCATION 权限,以便处理用户授予应用大致位置访问权限的情形。您应该在单个运行时请求中包含这两项权限。
也即是说,给了用户拒绝提供确切位置的权力,一旦用户拒绝,这种情况下App就只能获取到大致位置了。
虽然用户可能拒绝提供确切位置,但我们依旧可以再次请求升级到确切位置:
当然,在再次请求前提供一个适当的解释说明是一个比较好的做法,App本身也要做好只能获取到大致位置时的业务降级处理。
还有许多的行为变更,以上我只选了几条重要的,其他变更及更详细的文档可以参见:
Android 12行为变更:所有应用
以上只是针对在 Android 12 上运行的所有应用应为变更,此外,请务必查看:
Android 12适配-行为变更:以 Android 12 为目标平台的应用
Android 12行为变更:所有应用
② 安卓12.1跟安卓12有区别吗
有.
1、安卓12.1在性能上优先于安卓12,安卓12性能落后。
2。安卓12.1系统流畅系统运行优化更好,安卓12系统上较卡,运行不流畅,所以安卓12.1跟安卓12有区别。
③ 谷歌正式发布Android 12,Android 系统好用吗
谷歌发布安卓12系统,可以说谷歌的安卓系统在国内应用是最广泛的。除了苹果的这个手机上下的所有厂商的手机都是安卓系统,最近华为才推出这个功能系统,剩下的都是基于谷歌公司所提供的安卓系统,然后自己做了一定的优化和改良。
国产厂商显然也在尝试着开发自己的系统,但是开发手机系统真不是个简单的活,因为谷歌公司的这个安卓系统开发已经十几年的时间到现在,仍然是有各种各样的问题,仍然要周期性的做一个系统的更新,因为它有bug,你觉得国产厂商做手机的这些厂商,他这个系统的开发能力比谷歌公司还强吗?不可能的有差距,所以自己开发自己的系统是非常有风险的。