当前位置: 首页 > 科技观察

AndroidQ

时间:2023-03-12 08:58:27 科技观察

1的那些新特性和特性。AndroidQ简介2019年,移动创新比以往任何时候都更加强劲,从5G到无边框显示器甚至可折叠屏幕的新技术。Android处于这一创新周期的中心,并且得益于拥有数十亿台设备的广泛合作伙伴生态系统,Android有助于突破硬件和软件的界限,为用户带来新的体验和功能。随着移动生态系统的发展,Android专注于帮助用户利用最新的创新,同时确保用户安全和隐私仍然是首要任务。在GooglePlayProtect和运行时权限等工作的基础上,AndroidQ为用户带来了许多额外的隐私和安全功能,以及功能增强、用于连接的新API、新媒体编解码器和相机功能、NNAPI扩展、Vulkan1.1支持、更快的应用程序启动等。2.AndroidQ隐私保护Android的设计以安全和隐私为中心。随着Android的成熟,我们添加了一系列功能来保护用户,例如基于文件的加密、要求应用程序在访问敏感资源之前请求权限的操作系统控制、锁定相机/麦克风后台访问、锁定模式、加密备份、GooglePlayProtect(每天扫描超过500亿个应用程序以识别可能有害的应用程序并将其删除)等等。在AndroidQ中,我们进行了更多增强以保护用户。其中许多增强功能是我们在Strobe项目上工作的一部分。让用户更好地控制位置借助AndroidQ,操作系统让用户更好地控制应用何时获取位置信息。与以前版本的操作系统一样,应用只有在请求您的许可并且您已授予该许可的情况下才能获取位置信息。一个特别敏感的事情是应用程序未使用时(在后台)访问位置。AndroidQ允许用户授予应用程序永远不会看到其位置的权限,仅当应用程序正在使用(运行)或始终(在后台)时。例如,一个询问用户送餐地点的应用程序是有意义的,用户可能希望授予它这样做的能力。但是由于应用程序可能不需要位于它当前使用的位置之外,因此用户可能不想授予该访问权限。AndroidQ现在提供更高级别的控制。阅读开发人员指南,了解有关如何针对此新控件调整您的应用程序的详细信息。在即将推出的Beta中寻找更多以用户为中心的改进。同时,我们的目标是快速响应,始终通过这些更改给予开发人员尽可能多的关注和支持。AndroidQ中的更多隐私保护除了位置更改之外,我们还在进行进一步的更新以确保透明度、赋予用户控制权并保护个人数据。在AndroidQ中,操作系统让用户可以更好地控制应用程序,控制对共享文件的访问。用户将能够通过新的运行时权限控制应用程序对照片和视频或音频集的访问。对于下载,应用程序必须使用系统文件选择器,允许用户决定应用程序可以访问哪些下载的文件。对于开发人员来说,应用程序使用外部存储共享区域的方式已经改变。请务必阅读ScopedStoragechanges了解详细信息。我们还看到用户(和开发人员!)在应用程序意外跳到前台并重新获得焦点时感到不安。为了减少这些中断,AndroidQ将阻止应用程序在后台启动活动。如果您的应用程序在后台运行并且需要快速引起用户的注意-例如来电或闹钟-您可以使用高优先级通知并提供全屏意图。有关详细信息,请参阅文档。我们限制对不可重置设备标识符的访问,包括设备IMEI、序列号和类似标识符。阅读最佳实践以帮助您为您的用例选择正确的标识符,并在此处查看详细信息。当连接到不同的Wi-Fi网络时,我们还会默认随机化设备的MAC地址——Android9Pie中的一项可选设置。我们会尽早为您带来这些更改,以便您有尽可能多的时间进行准备。我们也努力为开发人员提供详细信息,我们鼓励您查看有关隐私更改的详细文档并立即开始测试。吸引用户的新方式在AndroidQ中,我们提供了新的方式来将用户带入您的应用程序并简化从其他应用程序转换时的体验。3、兼容AndroidQ的折叠屏折叠设备开辟了一些创新的体验和用例。为了帮助您的应用充分利用这些和其他大屏幕设备,我们在AndroidQ中进行了一些改进,包括更改onResume和onPause以支持多个恢复并在获得焦点时通知您的应用。我们还更改了resizeableActivity清单属性的工作方式,以帮助您管理应用在可折叠屏幕和更大屏幕上的显示方式。为了开始构建和测试这些新设备,我们一直在努力更新AndroidEmulator以支持多显示器类型切换-更多详细信息即将推出!4.AndroidQ的新风格分享功能当用户想在另一个应用程序中与某人分享时对于照片等内容,过程应该很快。在AndroidQ中,我们通过“共享快捷方式”让用户可以更快、更轻松地共享内容,这样用户就可以直接跳转到另一个应用来共享内容。开发人员可以针对在其应用程序中添加内容的特定活动发布共享目标,并在共享UI中向用户显示这些目标。因为它们是预发布的,共享的UI可以在启动时立即加载。共享快捷方式机制类似于应用程序快捷方式的工作方式,因此我们扩展了ShortcutInfoAPI以简化这两个功能的集成。新的ShareTargetAndroidX库也支持这个新的API。这允许应用程序使用新功能,同时允许pre-Q设备使用DirectShare。您可以在此处找到带有源代码的早期示例应用程序。5.AndroidQ更新设置功能您现在还可以通过新的设置面板API直接在应用程序上下文中显示关键系统设置,这利用了我们在Android9Pie中引入的切片功能。设置面板是一个浮动UI,您可以从您的应用程序中调用它来显示用户可能需要的系统设置,例如Internet连接、NFC和音量。例如,浏览器可以显示一个面板,其中包含飞行模式、Wi-Fi(包括附近的网络)和移动数据等连接设置。无需离开申请;用户可以根据需要从面板管理设置。要显示设置面板,只需使用新的Settings.Panel操作之一触发一个意图。连接在AndroidQ中,我们扩展了您的应用可以使用Android的连接堆栈执行的操作,并添加了新的连接API。连接权限、隐私和安全我们用于扫描网络的大多数API都需要粗略位置权限,但在AndroidQ中,对于蓝牙、蜂窝和Wi-Fi,我们通过要求精细位置来增加对这些API的支持的权限保护。如果您的应用程序只需要建立点对点连接或建议网络,请查看下面改进的Wi-FiAPI-它们简化了连接并且不需要位置许可。除了AndroidQ在连接到不同Wi-Fi网络时提供的随机MAC地址外,我们还增加了对新Wi-Fi标准、WPA3和EnhancedOpen的支持,以提高家庭和工作网络以及开放/公共网络的安全性网络。改进的点对点和互联网连接在AndroidQ中,我们重构了Wi-Fi堆栈以提高隐私和性能,同时还改进了常见用例,例如管理物联网设备和建议互联网连接——无需位置许可。通过网络连接API,更容易通过本地Wi-Fi管理物联网设备,实现点对点的配置、下载或打印等功能。应用程序通过将首选SSID和BSSID指定为WiFiNetworkSpecifiers来间接发起连接请求。该平台自行处理Wi-Fi扫描并在Wi-Fi选择器中显示匹配的网络。当用户选择时,平台会自动建立连接。网络建议API允许应用程序向用户显示首选Wi-Fi网络以进行Internet连接。应用程序通过提供经过排序的网络和凭据列表(例如WifiNetworkSuggestions)来间接启动连接。该平台将根据过去的表现在这些网络范围内无缝连接。Wi-Fi性能模式您现在可以通过启用高性能和低延迟模式在AndroidQ中请求自适应Wi-Fi。如果低延迟对用户体验很重要,例如实时游戏、主动语音呼叫和类似用例,这些将??非常有益。要使用新的性能模式,请使用或调用WifiManager.WifiLock.createWifiLock()。在这些模式下,平台与设备固件一起工作,以最低的功耗满足要求。WIFI_MODE_FULL_LOW_LATENCYWIFI_MODE_FULL_HIGH_PERF6.AndroidQ更新媒体照片的动态深度格式移动设备上的许多相机可以通过模糊相对于主体的前景或背景来模拟狭窄的景深。他们捕获图像中不同点的深度元数据,对图像应用静态模糊,然后丢弃深度元数据。从AndroidQ开始,应用程序可以请求动态深度图像,该图像由与深度相关元素关联的JPEG、XMP元数据以及嵌入在广告支持设备上的同一文件中的深度和置信度图组成。请求JPEG+动态深度图像允许您在应用程序中提供专用的模糊和散景选项。您甚至可以在未来使用这些数据创建3D图像或支持AR摄影用例。我们正在使DynamicDepth成为生态系统的开放格式,并且我们正在与我们的设备制造商合作伙伴合作,以使其在运行AndroidQ及更高版本的设备上可用。新的音频和视频编解码器AndroidQ引入了对开源视频编解码器AV1的支持。这允许媒体提供商使用更少的带宽将高质量的视频内容流式传输到Android设备。此外,AndroidQ支持使用Opus进行音频编码,这是一种针对语音和音乐流优化的编解码器,以及支持HDR10+的设备上的高动态范围视频。MediaCodecInfoAPI引入了一种更简单的方法来确定Android设备的视频呈现功能。对于任何给定的编解码器,您可以使用VideoCodecCapabilities.getSupportedPerformancePoints()来获取支持的大小和帧速率的列表。这允许您选择最优质的视频内容以在任何给定设备上呈现。原生MIDIAPI对于使用C++执行音频处理的应用程序,AndroidQ引入了原生MIDIAPI以通过NDK与MIDI设备进行通信。此API允许使用非阻塞读取在音频回调中检索MIDI数据,从而实现MIDI消息的低延迟处理。在此处试用示例应用程序和源代码。Vulkan视角为了拉近游戏和图形开发人员之间的距离,我们正在为基于Vulkan的所有设备开发标准的、可更新的OpenGL驱动程序。在AndroidQ中,我们在Android设备上的Vulkan上添加了对ANGLE的实验性支持。ANGLE是一个图形抽象层,旨在实现跨实现的高性能OpenGL兼容性。借助ANGLE,许多使用OpenGLES的应用程序和游戏可以充分利用Vulkan的性能和稳定性,并受益于Android设备上一致的、独立于供应商的ES实现。在AndroidQ中,我们计划在路线图中支持OpenGLES2.0、ES3.0。我们将通过更多OpenGL功能、错误修复和性能优化来扩展实现。有关Android当前的ANGLE支持、如何使用它以及我们未来计划的详细信息,请参阅文档。您可以通过在“设置”中选择开发人员选项来开始使用我们的初始支持进行测试。今天试试吧!Vulkan无处不在我们继续扩大Vulkan在Android上的影响,这是我们用于高性能3D图形的低开销跨平台API。我们的目标是让Android上的Vulkan成为广泛支持且一致的图形开发API。我们正在与我们的设备制造商合作伙伴合作,使Vulkan1.1成为所有运行AndroidQ及更高版本的64位设备的要求,并推荐所有32位设备使用。展望未来,这将有助于为应用程序和游戏提供统一的高性能图形API。7.AndroidQ优化NeuralNetworkAPI1.2自2017年推出NeuralNetworkAPI(NNAPI)以来,我们不断扩展支持的操作数量和改进现有功能。在AndroidQ中,我们增加了60个新操作,包括ARGMAX、ARGMIN、量化LSTM,以及一系列性能优化。这为加速更广泛的模型——例如用于对象检测和图像分割的模型——奠定了基础。我们正在与硬件供应商和TensorFlow等流行的机器学习框架合作,以优化和推出对NNAPI1.2的支持。8.AndroidQ优化了基本的Android功能ART性能AndroidQ对ART运行时引入了几项新的改进,帮助应用程序更快地启动并消耗更少的内存,而无需开发人员的任何工作。自AndroidNougat以来,ART提供了ProfileGuidedOptimization(PGO),它通过识别和预编译频繁执行的代码部分来加速应用程序启动。为了帮助初始应用启动,GooglePlay现在提供基于云的配置文件和APK。这些是匿名聚合的ART配置文件,可让ART在应用程序运行前预编译部分应用程序,为整体优化过程提供重要的启动。所有应用程序都受益于基于云的配置文件,并且它们已经可用于运行AndroidP及更高版本的设备。我们也在继续改进ART本身。例如,在AndroidQ中,我们优化了Zygote进程,通过更早启动应用程序进程并将其移动到安全容器中,使其可以立即启动。我们在应用程序的堆图像中存储更多信息,例如类,并使用线程来更快地加载图像。我们还在ART的并发复制(CC)垃圾收集器中添加了分代垃圾收集。分代CC更高效,因为它单独收集年轻代对象,并且比完整堆GC更便宜,同时仍回收大量空间。这使得垃圾收集在时间和CPU方面整体更高效,减少卡顿并帮助应用程序在低端设备上更好地运行。应用程序安全BiometricPrompt是我们用于支持系统级生物识别的统一身份验证框架。在AndroidQ中,我们扩展了对面部等被动身份验证方法的支持,并添加了隐式和显式身份验证流程。在显式流程中,用户必须在身份验证期间在TEE中明确确认交易。ImplicitFlow被设计为具有被动身份验证的事务的轻量级替代方案。我们还在需要时改进了设备凭据的回退。AndroidQ添加了对TLS1.3的支持,这是对TLS标准的重大修订,包括性能优势和增强的安全性。我们的基准测试表明,与使用TLS1.2相比,使用TLS1.3的安全连接速度最高可提高40%。默认情况下,为所有TLS连接启用TLS1.3。有关详细信息,请参阅文档。通过公共API实现兼容性我们关心的另一件事是确保应用程序随着操作系统的变化和发展而平稳运行。使用非SDKAPI的应用程序可能会面临用户崩溃和开发人员紧急部署的风险。在AndroidQ中,我们将继续我们在AndroidP中开始的长期努力,即移动应用程序以仅使用公共API。我们知道将您的应用从非SDKAPI移开需要时间,因此我们会提前通知您。在AndroidQ中,我们限制对更多非SDK接口的访问,并要求您使用公共等效项。为了帮助您完成过渡并防止您的应用被破坏,我们仅在您的应用以AndroidQ为目标平台时启用限制。我们将继续根据您的请求添加公共替代API;如果没有适合您的用例的公共API,请告诉我们。测试您的应用程序以使用非SDK接口非常重要。我们建议使用StrictMode方法detectNonSdkApiUsage()在您的应用程序通过反射或JNI访问非SDKAPI时发出警告。即使此时某个API被豁免(列入灰名单),最好为未来做好计划并消除它的使用以减少兼容性问题。有关AndroidQ限制的更多详细信息,请参阅开发人员指南。现代Android我们正在努力使所有应用程序都能利用最新版本Android中的安全性和性能功能。今年晚些时候,GooglePlay将要求您在新应用和更新中将应用的targetSdkVersion设置为28(Android9Pie)。根据这些更改,AndroidQ将在用户首次运行针对API级别23(AndroidMarshmallow)之前的平台的应用程序时发出警告。以下是可帮助您迁移应用程序的资源列表。我们还将生态系统推向了64位设备就绪状态。今年晚些时候,GooglePlay将要求所有应用程序都支持64位。如果您的应用程序使用本机SDK或库,请记住您需要提供这些SDK或库的64位兼容版本。有关如何准备的详细信息,请参阅开发人员指南。开始使用AndroidQBeta由于重要的隐私功能可能会影响您的应用,我们建议您现在就开始测试它。特别是,您需要启用和测试AndroidQ存储更改、新的位置权限状态、后台应用程序启动限制和设备标识符限制。有关详细信息,请参阅隐私文档。要开始使用,只需将您当前的应用程序从GooglePlay安装到运行AndroidQBeta或Android虚拟设备的设备上,然后完成用户流程。该应用程序应该运行起来并且看起来很棒,并正确处理应用程序的所有AndroidQ行为更改。如果您发现问题,我们建议您在不更改定位级别的情况下在当前应用中修复它们。请查看迁移指南以了解步骤和建议的时间表。接下来,尽快将您应用的targetSdkVersion更新为“Q”。这使您可以使用AndroidQ中的所有隐私和安全功能以及Q应用的任何其他行为更改来测试您的应用。探索新功能和API准备就绪后,深入了解AndroidQ和了解您可以在应用中使用的新功能和API。使用API差异报告、AndroidQBetaAPI参考和开发人员指南作为起点。此外,在AndroidQBeta开发者网站上,您可以找到发行说明和报告问题的支持资源。要使用AndroidQ进行构建,请将AndroidQBetaSDK和工具下载到AndroidStudio3.3或更高版本,然后按照这些说明配置您的环境。如果您需要AndroidQ相关更改的最新修复,我们建议使用AndroidStudio3.5或更高版本。我如何获得AndroidQ测试版?很简单——你可以在这里注册,在任何Pixel设备上通过无线方式获取AndroidQBeta更新(我们今年支持所有三代Pixel——Pixel3、Pixel2,甚至是原始的Pixel!).这些设备的可下载系统映像也可用。如果您没有Pixel设备,可以使用AndroidEmulator,通过AndroidStudio中的SDKManager下载最新的模拟器系统镜像。我们计划在整个预览期间定期更新预览系统图像和SDK。随着Beta计划的进展,我们将分享更多功能。一如既往,您的反馈非常重要,请让我们知道您的想法-我们越早收到您的反馈,我们就能越早采纳您的反馈。当您发现问题时,请在此处报告。我们有单独的热列表用于提交平台问题、应用程序兼容性问题和第三方SDK问题。