Android14又来了?别扶!抬起我来吧!

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

官方提供有三种方式:

一般来说Android版本更新都会有两种行为变更:

1、所有应用都会受到的影响,即使你的应用没有将TargetSDK升级到34(即Android14),但你的应用可能在Android14的设备中运行,那么就需要你做的适配

2、将TargetSDK升级到34,应用也在Andorid14的设备中运行时需要你做的适配

这一个模块咱们先来看第一个,即所有应用都需要做的适配。

当然,如果你的应用是系统应用,可以进行申请豁免。

当应用离开缓存状态(例如返回前台)时,系统会传递所有已加入队列的广播。某些广播的多个实例可以合并为一个广播。

如果传入另一个应用的软件包名称的话,此方法对该应用的后台进程将没有任何影响,只会在Logcat中会显示以下消息:

InvalidpackageName:com.example.anotherapp应用不应使用killBackgroundProcesses()API,也不得以其他方式尝试影响其他应用的进程生命周期,即使在旧版操作系统上也是如此。Android旨在让缓存应用在后台运行,并在系统需要内存时自动终止它们。

恶意软件通常会以较旧的API级别为目标平台,以绕过在较新版本Android中引入的安全和隐私保护机制。例如,有些恶意软件应用使用targetSdkVersion22,以避免受到Android6.0Marshmallow(API级别23)在2015年引入的运行时权限模型的约束。这项Android14变更使恶意软件更难以规避安全和隐私权方面的改进限制。尝试安装以较低API级别为目标平台的应用将导致安装失败,并且Logcat中会显示以下消息:

INSTALL_FAILED_DEPRECATED_SDK_VERSION:ApppackagemusttargetatleastSDKversion23,butfound7在升级到Android14的设备上,targetSdkVersion低于23的所有应用都将继续保持安装状态。如果需要测试以旧版API级别为目标平台的应用,请使用以下ADB命令:

如果应用向用户显示不可关闭的前台通知的话需要注意:Android14中允许用户关闭此类通知。

在以下情况下,此类通知仍不可关闭:

此外,这一新行为不适用于以下用例中的不可关闭通知:

在Android14中,当应用请求Android13(API级别33)中引入的任何视觉媒体权限时,用户可以授予对其照片和视频的部分访问权限:READ_MEDIA_IMAGES或READ_MEDIA_VIDEO。

新对话框会显示以下权限选项:

上面说了所有的应用在Android14中需要做的适配,这里来看下将TargetSDK升级到Android14的应用需要做的适配吧!

如果TargetSDK是Android14,则必须为应用中的每个前台服务指定至少一个前台服务类型,系统期望具有特定类型的前台服务来满足特定的用例。下面列出了可供选择的前台服务类型:

下面来举一个栗子吧:

如果应用中的用例与这些类型中的任何一个都没有关联,官方建议咱们使用WorkManager或用户发起的数据传输作业。

WorkManager大家都使用过,但“用户发起的数据传输作业”又是个什么东西呢?

如需运行用户发起的作业,请执行以下操作:

用户和系统都可以停止用户发起的传输作业。

在用户按Stop时,系统会执行以下操作:

因此,建议在发布的作业通知中提供控件,以便顺利停止和重新调度作业。

上述说明的例外情况包括:

下表显示了支持给定作业约束条件的不同作业类型,以及WorkManager支持的作业约束条件集。可以使用表格前的搜索栏按作业约束方法的名称过滤表格。

以下是用户发起的数据传输作业允许使用的约束条件:

Android14将继续更新Android的核心库,以与最新OpenJDKLTS版本中的功能保持一致,包括适合应用和平台开发者的库更新和Java17语言支持。

以下变更可能会影响应用兼容性:

对于以Android14为目标平台的应用,Android会通过以下方式限制应用向内部应用组件发送隐式intent:

这些变更可防止恶意应用拦截意在供应用内部组件使用的隐式intent。

如果应用尝试使用隐式intent启动此activity,则系统会抛出异常:

//ThrowsanexceptionwhentargetingAndroid14.context.startActivity(newIntent("com.example.action.APP_ACTION"));如需启动非导出的activity,应用应改用显式intent:

如果必须动态加载代码,请使用以下方法,在动态文件(例如DEX、JAR或APK文件)打开并写入任何内容之前立即将其设为只读:

Filejar=newFile("DYNAMICALLY_LOADED_FILE.jar");try(FileOutputStreamos=newFileOutputStream(jar)){//Setthefiletoread-onlyfirsttopreventraceconditionsjar.setReadOnly();//Thenwritetheactualfilecontent}catch(IOExceptione){...}PathClassLoadercl=newPathClassLoader(jar,parentClassLoader);处理已存在的动态加载文件为防止系统对现有动态加载的文件抛出异常,官方建议先删除并重新创建文件,然后再尝试在应用中重新动态加载这些文件。重新创建文件时,请按照上述指南在写入时将文件标记为只读。或者,可以将现有文件重新标记为只读,但在这种情况下,官方建议先验证文件的完整性(例如,对照可信值检查文件的签名)以保护应用免遭恶意操作的影响。

Android14包含更新后的受限非SDK接口列表(基于与Android开发者之间的协作以及最新的内部测试)。在限制使用非SDK接口之前,官方说会尽可能确保有可用的公开替代方案。

上面的一大堆就是在Android14中应用需要做的适配,其实看着很多,实际上需要应用修改的地方并不是很多。Android14面向开发者还引入了一些出色的新功能和API,一起来看下吧!

有30亿人在使用区分性别的语言,此类语言的语法类别(例如名词、动词、形容词和介词)会根据交谈所涉及的人或物的性别而变化。传统上,许多区分性别的语言使用阳性语法性别作为默认或通用性别。

区域偏好使用户能够修改温度单位(华氏度、摄氏度),一周的第一天(周日为第一天还是周一)。

要找到这些设置,请打开设置应用程序并导航到系统>语言和输入>区域偏好,官方截图如下:

while(pathIterator.hasNext()){PathIterator.Segmentsegment=pathIterator.next();Log.i(LOG_TAG,"segment:"+segment.getVerb()+","+segment.getPoints());}PathIterator还有一个非分配版next(),可以在其中传入缓冲区来保存点数据。

为了创建更标准化的截图检测体验,Android14中引入了一个保护隐私的截图检测API。这个API允许应用程序以每个活动为基础注册回调。当用户在活动可见时截取屏幕截图时,调用这些回调函数,并通知用户。

注意:回调不提供实际截图的图像。当用户截图时,屏幕上显示的内容由应用进行决定。

然后,完成以下步骤,在你的应用程序中的每个活动,用户可能会捕获屏幕截图:

activity.getWindow().setFlags(LayoutParams.FLAG_SECURE,LayoutParams.FLAG_SECURE);Android14中的企业功能新变化联系人Android14添加了以下两个字段:

可以使用DevicePolicyManager中的以下方法设置和查询该政策,这些方法指定了允许哪些软件包从个人资料中访问工作联系人:

这些方法可向后兼容,应改用这些方法,而不是现在已废弃的下列方法:

同样,Android14还针对跨资料来电显示搜索添加了以下方法:

超宽带(UWB)是一种无线技术,在很大一部分射频频谱内,都能使用非常低的能量水平进行短距离、高带宽通信。

Android14废弃了以下API,值得引起注意:

虽然目前Android14还没有发布稳定版版,但现在已经是Beta版本了,之后API这些也不会进行大的变动的,剩下的应该就是性能上的一些优化了,大家可以放心进行查看。其实上面描述的都可以在官方文档中找到,我只是做了一些整理,方便大家进行查看配置。

THE END
1.如何在不同设备和操作系统上关闭开发者模式安卓ios应用程序命在现代操作系统和设备中,开发者模式是一个非常有用的功能,它允许用户访问一些高级设置和工具。然而,对于普通用户来说,开发者模式可能会带来一些风险,比如误操作或不必要的设置更改。因此,了解如何关闭开发者模式是非常重要的。本文将详细介绍在不同设备和操作系统上如何关闭开发者模式。 https://www.163.com/dy/article/JJDEEFQO0512BOIV.html
2.玩机科普篇:开发者选项全解打开此功能之后,只要有进程崩溃,就会弹出对话框,这个也不太建议开启,会影响使用 六十九.显示通知渠道警告 打开后应用发布为经有效渠道发布通知时,就会在屏幕上发出警告,同样不建议开启 七十.强制允许将应用写入外部存储设备 开启此功能后,应用也可以写入其它存储设备,如果有这方面需求,可以尝试开启 https://web.vip.miui.com/page/info/mio/mio/detail?postId=37953854&app_version=dev.20051
3.关于会议通知(通用23篇)会议通知 篇3 各科室: “百安活动”已经接近尾声,安全态势平稳,清明节即将来临,为了更进一步加强安全管理,减少和杜绝道路交通事故的.发生,经公司安委会研究决定,召开三月份安全例会,现将有关事项通知如下: 一、时间:20xx年3月29日上午9:30 二、地点:公司会议室 https://mip.wenshubang.com/huiyitongzhi/2669635.html
4.关于举办第二十届全省中小学电脑制作活动”的通知根据湖州市信息中心《转发“浙江省教育技术中心 浙江省青少年校外教育中心关于举办第二十届全省中小学电脑制作活动”的通知》(湖教信〔2019〕5 号)的精神要求,开展全省中小学生第二十届电脑制作活动,请各学校根据文件精神并结合以下要求,认真做好组织工作,保证参赛作品质量。现就有关事项通知如下: https://aj.zjer.cn/index.php?r=portal/content/view&id=2573469
5.学校发展性督导评估其督导评估目标、内容、方法、过程和结果处理都是为了促进学校的未来发展,使学校不断认识自我、发展自我、完善自我,实现学校的发展目标;使处于不同发展阶段的学校达到最优化发展,努力实现社会发展需求与学校自主发展需求的融合。 ——引导学校在依法办学的基础上创建特色学校发展性督导评估是采用一种多元性的评估方式,https://jydd.qpedu.cn/xj/kdxj/229743.htm
6.千牛通知栏常驻是什么意思可见,所有应用的确都是已开启通知状态,关闭“全部”的点蓝开关,结果如下图所示。 图4,是否允许通知批量管理关闭 现在所有应用的通知都已经被关闭,因此不会再有通知。所以如果所有应用都不允许发通知,就可以这样做。但是,这样一刀切也不现实,毕竟有的还要允许通知。所以统一关闭后(这是批量处理的好处),还可以再打开https://blog.csdn.net/weixin_39710041/article/details/112292332
7.小米账号小米账号能使用小米手机,小米云,多看阅读,米聊,小米社区等小米服务。https://dev.mi.com/console/doc/detail?pId=1292
8.住宿管理制度2、凡在锁门期间不经宿管员同意私自进入者(或进入者)按有偷盗嫌疑处理。 3、因病因事需回宿舍的,班主任开具批条,并到宿管处登记后方允许进入。 二、宿舍区环境卫生的几点要求及规定: 1、宿舍区环境卫生由宿管员管理划分,各住校生必须按时打扫。 2、凡宿管员通知打扫卫生、整理内务而不打扫者,将由宿管员加锁锁https://mip.jy135.com/zhidu/1038116.html