个推发布《Android13适配指南》,助力开发者生态建设

admin 科技资讯大全 2024-04-02 09:06:05 0 应用 id And

首先,8月16日,Google宣布Android13的新系统源代码已上传到Android开源项目AOSP,Android13正式发布。自2022年2月Android13的第一个预览版发布以来,经过7个月的测试和优化,Android13的官方版本终于来了。Android13仍然专注于个人隐私保护和安全,并提供各种互联网时代的屏幕尺寸适应、电池利用率优化等相关技术开发功能。感兴趣的开发者已经下载了推送服务开发者多年,并对行业发展趋势进行了密切的监控和跟踪。Android13发布后,我们使用模拟器进行了调查和自适应测试。本文将从权限变更、系统优化、功能更新等方面对Android13的新功能进行介绍,帮助开发者完成对新Android系统的适应。权限通知栏消息是应用程序和用户之间有效的通信渠道。在Android13之前,应用程序只使用通知管理器向最终用户推送通知栏消息。Android13引入了新的运行时通知权限POST_NOTIFICATIONS。APP开发者一定要小心。此权限汇总如下:

首先,看看TargetSdk<33的情况。当应用程序使用通知栏功能时,系统会自动弹出一个批准弹出窗口,如下图所示。

当用户点击“允许”时,应用程序通常可以向用户推送消息。

2.考虑TargetSdk ==33.开发人员必须在AndroidManifest.xml中声明POST_NOTIFICATIONS权限,并在使用通知栏推送功能时在代码中请求运行时权限。requestPermissions new String[]{"android. permission. POST_NOTIFICATIONS"}如果用户单击“允许App推送”,则会出现上述情况。当然,用户也可以点击“不允许”。如果用户拒绝了许可,下次将不会出现许可请求弹出窗口。如果应用程序继续向用户推送重要消息(例如主要版本更新),则必须引导用户进入设置屏幕以启用通知权限。代码如下所示。privatevoidJumpNotificationSetting {finalApplicationInfo = getApplicationInfo; try { Intent intent = new Intent; intent. setFlags Intent. FLAG_ACTIVITY_NEW_TASK "android. settings. APP_NOTIFICATION_SETTINGS" app_package "android. provider. extra. APP_PACKAGE" app_uid " Throwable t Intent. FLAG_ACTIVITY_NEW_TASK"android. settings. APPLICATION_DETAILS_SETTINGS "Uri. fromParts还可以除了“允许”和“不允许”这两个选项外,用户还可以在“不选择允许”的“不允许”对话框中滑动“用户swipes away from dialog”。下次应用推送通知栏消息时,系统将再次弹出用户批准弹出窗口。

更改WiFi权限更改Android13的WiFi权限也是一个重要的方面。在万物互联的时代,各种智能家居/智能穿戴设备都通过WiFi实现互联,所以这类类型的应用程序开发者应该更加重视这一部分。在较早版本的Android系统上,如果应用想要使用WiFi相关功能,则需要申请ACCESS_FINE_LOCATION,即位置权限。

为了避免应用程序过度收费并更好地保护终端用户隐私,Android13将WiFi权限与位置权限分开,并引入了新的运行时权限NEARBY_WIFI_DEVICES。如果应用程序只使用与WiFi相关的API,而不使用与位置相关的API,如getScanResults、startScan等,我们建议应用程序开发人员切换到新的NEARBY_WIFI_DEVICES权限。新的WiFi权限执行机制:

如果开发人员声明应用程序(targetSdk ==33)不根据WiFi信息推断设备的物理位置,则不需要声明ACCESS_FINE_LOCATION权限。另外,如果Android13上的应用只使用WiFi API而不使用位置信息,开发者可以在AndroidManifest.xml中添加NEARBY_WIFI_DEVICES权限,将usesPermissionFlags属性设置为neverForLocation,并添加ACCESS_FINE_LOCATION权限maxSdkVersion=“32”限制,代码如下:3、媒体权限详细除了通知权限和WiFi权限更新之外,Android13还进一步完善了本地数据访问权限。在Android13中,READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限被划分为READ_MEDIA_IMAGES、READ_MEDIA_VIDEO和READ_MEDIA_AUDIO。

来自Android13官方网站的图像使用android. permission READ. MEDIA_IMAGES来测试新权限。

单独的READ_MEDIA_IMAGES请求、单独的READ_MEDIA_VIDEO请求和同时的READ_MEDIA_IMAGES & READ_MEDIA_VIDEO请求只显示一个批准弹出窗口。此外,如果应用程序(targetSdk ==33)已申请读权限,则应用程序具有写权限。不需要声明附加的WRITE_EXTERNAL_STORAGE权限。代码如下所示:4、精确报警权限为节省系统资源,Android12引入了SCHEDULE_EXACT_ALARM权限。Android13引入了新的报警权限USE_EXACT_ALARM。与Android12的SCHEDULE_EXACT_ALARM权限不同,如果应用程序请求USE_EXACT_ALARM的新权限,则用户不能在配置页中关闭该权限。对于调度管理、时间管理和其他类型的应用程序,Android13中引入的USE_EXACT_ALARM权限提供了一些便利。与Android12的SCHEDULE_EXACT_ALARM权限相比,使用新权限的应用程序无需频繁中断用户授权,从而更有效地为用户提供警报和调度提醒等服务。但是,为了防止滥用新权限,Google Play已经建立了严格的审查机制。开发人员应该注意,使用USE_EXACT_ALARM权限会让平台在应用程序出现在Google Play上时对其进行严格审查。除非您的应用是闹钟、计时器或日历等类型的应用,或者您在应用市场中被列入白名单,否则Google Play将不允许应用使用该权限。

背景传感器权威今天,生物识别信息安全也受到关注。为了更好地保护最终用户的个人生物特征信息,Android13增加了新的后台传感器权限。如果应用程序在后台运行,并且需要获取诸如心率、体温、血氧饱和度等传感器信息,那么不仅需要向用户请求现有的BODY_SENSORS_BACKGROUND权限,还需要声明新的BODY_SENSORS_BACKGROUND权限。总而言之,Android13非常重视并加强了个人隐私保护。除了权限变更,Android13还进行了系统优化和组件更新,以进一步提高系统的安全性和友好性。在IntentFilter之前的Android系统版本中,开发人员只需将android exported设置为true,即可显式地在应用程序之间启动活动和服务,即使intent-filter中的操作和类型不匹配。为了避免这些漏洞,Android13增强了意图过滤器的匹配过滤器逻辑。如果接收方的targetSdk ==33,则如果目标过滤器匹配被命中,则无论发送方的targetSdk版本如何,都将启用intent。一个不错的建议:在下面的情况下,你不需要遵循意图过滤器的匹配过滤器逻辑。在intentBroadcastReceiver之前的Android系统中,组件未声明同一应用程序中的意图系统或根进程,由应用程序动态注册的BroadcastReceiver广播接收器接收应用程序发送的广播在Android13中,应用程序动态注册的广播接收器必须清楚地显示其他应用程序是否可以访问,即其他应用程序是否可以发送广播(除非收件人使用了应用程序签名权限保护)否则,在动态注册期间将抛出安全异常SecurityException。目前,此扩展不是默认的。开发人员必须启用DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED兼容框架,并指定在动态注册广播时是否接受其他应用程序的广播。context. registerReceiver receiver intentFilter RECEIVER_EXPORTED context. registerReceiver receiver intentFilter RECEIVER_NOT_EXPORTED注意:系统广播不受RECEIVER_NOT_EXPORTED的影响。2.前台服务FGS任务管理器Android13还添加了前台服务FGS任务管理器功能。用户可以直接在下拉通知栏中关闭前台服务和应用程序,如下所示。

另外,如果系统检测到应用程序长时间运行前台服务。(请在24小时内运行至少20小时),用户将收到如下提醒:APP is running in the background for a long time. Tap to review.需要注意的是,如果满足以下条件之一,通知将不会显示:如果发送了与前台服务相关的通知,则用户尚未关闭的前警报通知前台服务的类型为FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK或FOREGROUND_SERVICE_TYPE_LOCATION ★注意:如果您的应用程序已经看到此通知,则至少在30天后不会重新显示通知。此外,运行系统级应用程序或安全应用程序(例如具有android. app. role. EMERGENCY角色的应用程序)的前台服务不会显示在FGS任务管理器中。Android9引入了应用待机存储分区功能,根据应用程序的使用时间和频率,动态地将应用程序分配到五个不同优先级的存储分区中,对不同存储分区的应用程序施加不同级别的应用程序资源限制。如下图所示,分区按优先级高到低的顺序排序,优先级越低,分区中的应用程序就越受限制。活动:应用程序当前正在使用中,或者刚刚使用过。工作集:应用程序将被定期使用。应用程序经常被使用,但不是每天都在使用。使用频率:应用程序很少使用。限制:应用程序消耗大量系统资源或表现出不良行为(在Android11中引入)应用“受限”状态受以下限制:无法启动前台服务。现有的前台服务将从前台移除。我的闹钟没有响。他不工作。基于Android9应用的备用存储分区功能,Android13优化了电池资源策略,延长了设备的电池寿命,提升了终端用户体验。首先,Android13添加了以下规则:满足相应规则的应用程序将进入“受限”存储分区(设备关闭的时间不计入交互限制),用户已经8天没有与应用程序交互了。应用程序在一天内调用过多的广播或绑定服务。应用程序每天消耗大量电池电量,阈值因设备而异。其次,Android13还为“受限”存储分区的应用程序增加了限制。应用程序BOOT_COMPLETED,LOCKED_BOOT_COMPLETED广播4,非SDK接口限制更新Android13对一些非SDK接口施加了限制(并提供了一些限制的替代方案),开发人员应该检查他们的应用程序在升级时是否会使用受限的非SDK接口。Android13中受限制的非SDK接口参考:Landroid/app/Activity;->setDisablePreviewScreenshots Z V# Use setRecentsScreenshotEnabled instead. Landandroid/os/PowerManager;->isLightDeviceIdleMode Z# Use isDeviceLightIdleMode instead. Landroid/os/Process;-> setArgV0Ljava/lang/String; V for instance->clearCache I V# Use android. accessibilityservice. accessibilityService #clearCache instead.功能更新改善用户体验也是Android系统更新的重点。Android13的功能更新主要包括剪贴板、尺寸屏幕适应、UI显示等。首先,看一下剪贴板。我相信你曾经使用剪贴板来快速复制页面上的内容,并使内容更容易编辑和修改。然而,很长一段时间以来,剪切板功能存在一个风险,即剪切板复制的内容可能包含敏感信息。为了确保剪贴板上的隐私内容(如手机号码,电子邮件地址和帐户密码)不会被泄露,Android13更新了剪贴板功能。使用Android13剪贴板功能分为两个步骤:

验证是否已成功复制内容。提供复制内容的预览。此外,Android13还提供了脱敏功能,允许用户从剪贴板上隐藏敏感信息,从而实现方便和安全性。

其次,它更好地支持平板电脑和大屏幕平板电脑、车载大屏幕、智能电视屏幕等广泛应用,使用户终端场景越来越多样化。如何始终为不同终端的用户提供美观流畅的体验?Android13通过更新大屏幕上的系统UI和分屏显示来更好地支持这一点。在大屏幕上,Android13支持不同的功能模块,可以充分发挥大屏幕的优势。

在Android13中,用户可以将“快速设置”和“通知栏”部分放在同一屏幕上。此外,Android13支持用户一次在大屏幕上显示多个活动,以充分利用大屏幕的显示空间。开发人员可以通过创建XML配置文件或执行Jetpack WindowManager API调用来确定应用程序在同一个屏幕上显示多个Activity的方式(例如并行或堆栈)

例如,分割任务窗口实现了以(splite task window)的形式在一个屏幕上显示两个活动。对于不适应大屏幕的应用程序,Android13提供了更友好和稳定的兼容性支持,因此这些应用程序可以默认拥有舒适和美观的UI显示器,它不会影响最终用户的体验。

经过近两年的Android系统更新,谷歌不再对Android系统做出重大改变,而是在用户体验、隐私保护、系统安全、组件优化等方面都做了足够的努力。有关Android13更新的更多信息,开发者可以访问Android13官方网站了解更多信息。如果您想就新系统适应和Android开发等内容进行更深入的沟通,请添加@ Push技术支持。未来,我们将继续关注Android系统和行业的发展,与开发者交流移动开发技术,构建移动互联网新生态系统。

分享: