1、悬浮窗的基本介绍 悬浮窗,大家应该也不陌生,凌驾于应用之上的一个小弹窗,实现上很简单,就是添加一个系统级别的窗口,Android中通过WindowManagerService( WMS)来管理所有的窗口...,对于WMS来说,管你是Activity、Toast、Dialog,都不过是通过WindowManagerGlobal.addView()添加的一个个View。.... 2、根据产品需求进行设计 先了解一下大概的产品需求: 1、悬浮窗需要跨越整个应用 2、需要与悬浮窗进行交互 3、悬浮窗得移动 4、点击跳转特定的页面 5、消息提示的拖拽小红点 需求很简单...,悬浮窗的管理,因为后续悬浮窗布局可能有好几个,可以在这里面进行切换; 5、HomeWatcherReceiver,广播接收者,因为在应用内展示,需要监听用户在点击Home键和切换键的时候隐藏悬浮窗,...不能是Activity的,一开始就说了,Activity会返回它专享的WindowManager,而Activity的窗口级别是属于应用层的。
他们将与 RHEL 7 生命周期并行更新。RHEL 7 将在 2024 年结束其最后一个维护周期。 但是,如果您使用的是 CentOS 8,那么 2022 年有哪些替代方案?...不幸的是,即使您找到了,服务器应用程序的迁移也将是另一个挑战。然而,这里有一些选项可以在 2022 年取代 CentOS。...◆ CentOS 8 Linux 的最佳替代品 ◆ 1.Ubuntu / Debian 当然,每当我们谈论替代 CentOS 的服务器操作系统替代品时,Ubuntu LTS 版本将是第一选择。...作为一个类似的基础,用户可以毫不费力地将他们的应用程序从 CentOS 8 迁移到 Oracle Linux 上的最新版本。...尽管如此,使用基于 CentOS 8 Linux 托管解决方案的 CloudLinux 的用户不必担心,因为他们将在 2029 年之前获得稳定且经过良好测试的更新。 ◆ 5.
研究表明,88%的组织难以快速有效地移动大数据,每条丢失或被窃取的数据的平均损失成本达近千元。基于FTP的解决方案的目标从来都不是为了满足快速、安全和可扩展的数字信息交换的爆炸性需求。...总结 企业越来越依赖安全可靠的文件传输解决方案,不管是人与人之间,还是在与系统之间,都需要安全地交换越来越多的敏感数据,拥有一个安全的、可扩展的解决方案,以支持你的业务需求和目标是至关重要的。...那么FTP的替代方案在哪里呢?...《Ftrans文件传输服务器软件》是Ftrans飞驰云联自主研发的软件产品,拥有完全自主知识产权,完美响应国产化替代要求,该产品可以帮助企业实现安全可控、高效可靠的文件传输,可以完美替代FTP或增强FTP...《Ftrans文件传输服务器软件》是集简单易用、安全可靠、可管可控于一身的国产化FTP替代解决方案,可以帮助企业以更低的成本和投入,实现高效可靠的文件传输。
但其原因已不重要了,因为既然Android里已提供了更好的方案并把startActivityForResult标记为了弃用,那么我们就应该开始了解一下位于 ComponentActivity 或 Fragment...registerForActivityResult到底是什么东西,所以对载体、定义协定、回调3个类分别定义写出来。...对于这3个类,其实只需重点了解ActivityResultContract,就能很轻松的理解并使用好Activity Result API了。...刚才的例子中,其实已经简单的使用到Android提供的一个默认协定ActivityResultContracts.StartActivityForResult()来启动了一个Activity并获得想要的返回值...虽然Android提供的默认协定ActivityResultContracts已经很丰富了,但是为了自己应用内Activity类型安全的传递或是解耦,有时我们需要自己创建一个ActivityResultContract
大家好,又见面了,我是你们的朋友全栈君。 如上图所示: 在api29中提示已过时,官方给出的替代方案是上面第二个红框的方法registerForActivityResult 该怎么用呢 ?...先看kotlin版本的写法: private val startActivity = registerForActivityResult(ActivityResultContracts.StartActivityForResult...()) { //此处是跳转的result回调方法 if (it.data !...startActivityForResult(intent, newWordActivityRequestCode) startActivity.launch(intent) 再看下Java版本的写法完整版...ActivityResultLauncher intentActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult
作者 / Yacine Rezgui 无论您是在应用中请求某项权限,从文件管理系统中选择某个文件,还是期望从第三方应用中获取到某些数据,都会涉及到在 Activity 之间传递数据,而这也正是 Android...之前,想要从启动的 Activity 中获取到返回结果,应用需要在 Activity 和 Fragment 中实现 onActivityResult() 方法,然后检查回调关联到哪一个 requestCode...ActivityResult API 是什么 ActivityResult API 被加入到 Jetpack 的 Activity 和 Fragment 库中,旨在通过提供类型安全的 contract.../fragment 协定 https://developer.android.google.cn/reference/kotlin/androidx/activity/result/contract/ActivityResultContracts...GetContent() https://developer.android.google.cn/reference/kotlin/androidx/activity/result/contract/ActivityResultContracts.GetContent
访问和共享外部存储中的文件的应用 使用特定于应用的目录和媒体集合目录 了解详情 ✅ 增强了用户对位置权限的控制力 仅限前台权限,可让用户更好地控制应用对设备位置信息的访问权限 在后台时请求访问用户位置信息的应用...因为都是应用处于前台的时候进行剪贴板数据的获取,对于大部分业务不受影响。...如果应用以Android 10或更高版本为目标平台,则您必须在应用的清单文件中声明ACCESS_BACKGROUND_LOCATION权限并接收用户权限,才能在应用位于后台时接收定期位置信息更新。...分区存储的影响 图片位置信息 一些图片会包含位置信息,因为位置对于用户属于敏感信息, Android 10 应用在分区存储模式下图片位置信息默认获取不到,应用通过以下两项设置可以获取图片位置信息: 在...解决方案: 申请ACCESS_MEDIA_LOCATION权限,并使用MediaStore.setRequireOriginal()接口更新文件Uri,请参见图片位置信息。
大家好,又见面了,我是你们的朋友全栈君。 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。...那么SecondActivity中的代码是什么样的呢?...FirstActivity中的代码,我们需要使用Activity Result API来替代startActivityForResult()的写法,如下所示: class FirstActivity :...GetMultipleContents() OpenDocument() OpenMultipleDocuments() OpenDocumentTree() CreateDocument() 每个Contract的命名已经明确表示它们的作用是什么了...我怎么知道每种Contract要求什么输入参数,以及Lambda表达式中返回的参数是什么呢? 这个很简单,只需要看一下这个Contract的源码即可。
而这一切仅仅是开始,因为近期我们发布了一系列新的开发库,以及过去一年我们对于现有开发库的重要更新。...animation/Animator SeekableAnimatedVectorDrawable 基于 core-animation 开发,它是 AnimatedVectorDrawable (AVD) 可替代方案...developer.android.google.cn/training/constraint-layout/motionlayout △ 在动效编辑器中创建、编辑和预览 MotionLayout 动画 对于已有开发库的更新...Navigation 库 Navigation 2.3 新增了对于 Dynamic Delivery 功能模块的支持,该功能可以让用户只下载需要的部分,从而大大降低应用的初始下载体积。...另外还有一些 API 的更新,包括支持设置和观察 Worker 的中间进度、一些对于当前 Worker 查询 API 的优化、一些对于进行中的工作器的调度优化。
对于启动Activity,这应该设置为 true。...(大致位置) 提供设备位置的估算值,将范围限定在大约 1.6 公里(1 英里)内 ACCESS_FINE_LOCATION(确切位置) 通常将范围限定在大约 50 米(160 英尺)内,有时精确到几米..."; throw new IllegalArgumentException(msg); } 对于使用的第三方库未正确指定Flag的问题,等待库更新或者使用同样功能的正确指定...flag的库进行替代。...自动更新应用 使用 PackageInstallerAPI 的应用引入了 setRequireUserAction()方法。此方法可让安装程序应用执行应用更新而无需用户确认操作。
那么SecondActivity中的代码是什么样的呢?...FirstActivity中的代码,我们需要使用Activity Result API来替代startActivityForResult()的写法,如下所示: class FirstActivity :...AppCompatActivity() { private val requestDataLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult...GetMultipleContents() OpenDocument() OpenMultipleDocuments() OpenDocumentTree() CreateDocument() 每个Contract的命名已经明确表示它们的作用是什么了...我怎么知道每种Contract要求什么输入参数,以及Lambda表达式中返回的参数是什么呢? 这个很简单,只需要看一下这个Contract的源码即可。
背景 在Android应用程序开发中,启动一个Activity不一定是单项操作,从启动的Activity获取数据是常见的场景,最传统的方式是通过Intent携带数据,然后使用startActivityForResult...} } 以上方式,onActivityResult就能获取从上一个界面返回的数据,这种方式非常有用,不仅能同一个应用中,也可以从其他应用中获取数据,比如我们常见的,调用系统相机、相册获取照片...随着应用的扩展,onActivityResult回调方法各种嵌套、耦合严重、难以维护。 最常见的场景就是调用系统相机相册获取照片了。...OpenDocumentTree: 提示用户选择一个目录,并返回用户选择的作为一个Uri返回,应用程序可以完全管理返回目录中的文档。...不过,如果 LifecycleOwner 不存在,则每个 ActivityResultLauncher 类都允许您手动调用 unregister() 作为替代。
这样的设计旨在为应用“查看”设备上的其它已安装软件包时,提供更好的“问责”制度。 为了简化迁移,对于常见的应用场景,我们提供了 实现指南。...Content Uri } 随着应用的目标 SDK 版本的更新(即使更新到 Android 11 之前的版本),请您特别关注涉及到与其它应用分享 Content Provider 访问权限的用例,并确保授予适当的...如果您的应用需要后台位置权限,比如地理围栏应用,请确保后台位置对您的功能设计是不可或缺的。 对于适用的应用,需要先申请前台位置权限,然后在稍晚些再申请后台位置权限。...对于需要使用 SIM 卡信息作为唯一性标识的应用,需要在 Android 11 里进行“空字符串”的兼容性检查。...一个替代方案是使用 getSubscriptionId() 方法,它会针对设备上指定的 SIM 卡信息返回一个以数字 1 开头的唯一索引值,也就是说,如果同一张 SIM 卡被重新安装到设备上的话,它会保持之前的订阅标识符
Hilt 应用类 在使用Hilt的时候会有一些常用的注解,有一些是必不可少的,所有使用 Hilt 的应用都必须包含一个带有 @HiltAndroidApp 注释的 Application 类。...对于Hilt的介绍使用就先到这里,因为这样改动项目之后,一些不熟悉Hilt的可能一时半会儿还适应不了,因此一些其他的用法就先不写了,后续如果有需要我补充的我再写,或者在我觉得合适的时候去增加Hilt的其他用法...ViewBinding介绍 ViewBinding是Android Studio 3.6推出的新特性,目的是为了替代findViewById(内部实现还是使用findViewById)。。...这个图就说明了废弃,虽然废弃了,依然可以使用,不过不保证在更高版本的Android中会不会淘汰掉,那么这个东西废弃后,我们用什么来替代呢?...OpenDocumentTree: //提示用户选择一个目录,并返回用户选择的作为一个Uri返回,应用程序可以完全管理返回目录中的文档。
Tinker是什么 Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。...特别是在android N之后,由于混合编译的inline策略修改,对于市面上的各种方案都不太容易解决。而Tinker热补丁方案不仅支持类、So以及资源的替换,它还是2.X-7.X的全平台支持。...:checkDexInstall failed”; 由于各个厂商的加固实现并不一致,在1.7.6以及之后的版本,tinker不再支持加固的动态更新; 对于资源替换,不支持修改remoteView。...Tinker的方式 我们通过HTTPS及签名校验等机制保障补丁下发的安全性 丰富的下发维度控制,有效控制补丁影响范围 我们提供了应用升级一站式解决方案 至于如何使用Bugly热更新看文档就可以了,...,他打出的补丁包都是一样的,通过查看补丁包内的YAPATCH.MF文件就可以证明,官网表示会在下一个版本中修复 ?
文章涵盖了 15 个研究热点,具体如下: 通用预训练模型 大规模多任务学习 Transformer 架构替代方案 提示( prompting) 高效的方法 基准测试 条件图像生成 与自然科学结合的机器学习...它们表现出较强的小样本学习行为和良好的学习能力。因此,预训练模型是进行科学研究和实际应用的重要组成部分。 下一步是什么?我们无疑将在未来看到更多甚至更大的预训练模型。...Transformer 架构替代方案 前几节中讨论的大多数预训练模型都是基于 Transformer 架构的。2021 年出现了可替代的模型架构,这些架构是 transformer 的可行替代方案。...在实际应用中使用的模型,不应表现出任何有害偏见,也不应歧视任何群体。因此,更好地理解当前模型的偏见以及消除它们对于实现 ML 模型的安全和负责任部署至关重要。...因此,它们是领域内普遍使用的基于字词的 transformer 模型的有潜力替代方案。 token-free 模型为何如此重要?
启动 而对于一般的intent而言,开发者如何确保其安全性呢?...对于以Android12为目标平台的应用,当运行adb backup命令时,从设备导出的其他任何系统数据都不会包含应用的数据。...性能更新 性能优化是Android系统每次版本更新的重点内容。Android12改进了应用程序启动时间并优化了I/O,以加快应用程序加载速度。...相比第二种方案,第一种方案对客户来讲无需做额外处理,集成起来更加方便。因此,个推SDK产品使用的就是第一种方案进行Android12适配。...针对此情况,Android12官网也给出了前台服务的推荐替代方案:WorkManager。
Android4.3 中增加了对低功耗蓝牙的支持,内置支持 Bluetooth AVRCP 1.3,基于 Google 和 Broadcom 公司功能研发的针对于 Android 设备优化的新的蓝牙协议栈..."蓝牙已打开" : "蓝牙未打开"); } }); } 这里声明了一个变量,然后在方法中对变量进行赋值,此方法就替代了之前的startActivityForResult...⑤ 应用不推导物理位置 这个说起来就和之前的Android 6.0 至 Android 11.0中需要定位权限才能扫描有关系了,就是因为这个推导物理位置,手机是可以通过扫描到的设备知道设备的具体位置的...如果您的应用不推导物理位置,那么您可以坚定地断言您的应用绝不会使用蓝牙权限来推导物理位置。...,因为蓝牙设备是一直广播的,所以我们扫描到的结果会有重复的设备,重复的设备有信号强度上的差异,这个地方我们要做的就是判断当前列表中是否有此设备,有就更新rssi,没有就添加,我们新增一个findDeviceIndex
,通知这么重要竟然不需要用户同意就可以直接弹出,当然你可以在设置中进行手动关闭,但这对于大多数人来说比较困难。...应用内语言选择器Android 13 在手机设置中新增了一个集中设置选项,用于设置各应用语言偏好设定。...此外,当前使用自定义应用内语言选择器的应用应改用适用于各应用语言偏好设定功能的新 API。...使用这些新 API 有助于确保用户无论是继续通过应用内语言选择器选择语言,还是通过手机设置选择语言,都能以其首选语言查看应用。当然,如果不支持多种语言的应用将不受这些变更的影响。...,我只是挑选了一些和普通开发者相关的更新来简单描述了下。
领取专属 10元无门槛券
手把手带您无忧上云