极力推荐Android 开发大总结文章:欢迎收藏
Android 开发技术文章大总结
本篇文章主要介绍 Android
开发中的部分知识点,经过阅读本篇文章,您将收获如下内容:html
1.Android Q 简介
2.Android Q 隐私保护
3.Android Q兼容折叠屏
4.Android Q 分享功能新样式
5.Android Q更新 设置功能
6.Android Q 更新Media
7.Android Q 优化神经网络API 1.2
8.Android Q 优化Android 基础功能java
2019年,移动创新比以往任什么时候候都更增强大,从5G到边缘到边缘显示器甚至可折叠屏幕的新技术。Android正处于这一创新周期的中心,而且因为数十亿设备的普遍合做伙伴生态系统,Android有助于突破硬件和软件的界限,为用户带来新的体验和功能。android
随着移动生态系统的发展,Android专一于帮助用户利用最新的创新,同时确保用户的安全和隐私始终是首要任务。基于Google Play Protect和运行时权限等工做,Android Q为用户带来了许多额外的隐私和安全功能,以及可折叠的加强功能,用于链接的新API,新媒体编解码器和相机功能,NNAPI扩展,Vulkan 1.1支持,更快的应用启动等等。git
今天咱们正在为早期采用者发布Android Q的Beta 1,并为开发人员发布预览SDK。您能够经过注册任何Pixel设备开始使用Beta 1 (包括原始的Pixel和Pixel XL,咱们已根据大众需求扩展支持!)请告诉咱们您的想法!继续阅读以了解Android Q中的内容,咱们将在5月份的Google I / O上看到您,咱们将分享更多内容。github
Android在中心设计了安全和隐私。随着Android的成熟,咱们添加了一系列功能来保护用户,例如基于文件的加密,须要应用程序在访问敏感资源以前请求权限的操做系统控件,锁定相机/麦克风后台访问,锁定模式,加密备份,Google Play Protect(天天扫描超过500亿个应用以识别可能有害的应用并将其删除)等等。在Android Q中,咱们进行了更多加强功能以保护用户。其中许多加强功能都是咱们在Strobe项目中工做的一部分。api
借助Android Q,操做系统可帮助用户更好地控制应用什么时候获取位置信息。与之前版本的操做系统同样,只有在应用程序请求您许可后,应用程序才能获取位置,而且您已授予该权限。浏览器
一个特别敏感的事情是应用程序未使用时(在后台)应用程序访问位置。Android Q容许用户授予应用程序权限,以便永远不会看到他们的位置,仅在应用程序正在使用(运行)时,或始终(在后台)。安全
例如,要求用户的食物递送位置的应用程序是有意义的,而且用户可能想要授予它执行该操做的能力。但因为应用程序可能不须要位于当前正在使用的位置以外,所以用户可能不但愿授予该访问权限。Android Q如今提供更高级别的控制。阅读开发人员指南,了解有关如何针对此新控件调整应用的详细信息。寻找即将到来的Betas中更多以用户为中心的改进。与此同时,咱们的目标是很是敏感,始终经过这些更改尽量多地给予开发人员注意和支持。性能优化
除了位置变化以外,咱们还会进行进一步的更新,以确保透明度,让用户控制并保护我的数据。网络
在Android Q中,操做系统使用户能够更好地控制应用程序,控制对共享文件的访问。用户将可以经过新的运行时权限控制应用程序对照片和视频或音频集合的访问。对于下载,应用必须使用系统文件选择器,容许用户决定应用能够访问哪些下载文件。对于开发人员,应用程序能够在外部存储上使用共享区域的方式发生了变化。请务必阅读Scoped Storage更改以获取详细信息。
咱们还看到,当应用程序意外跳转到前台并从新关注时,用户(和开发人员!)会感到不安。为了减小这些中断,Android Q将阻止应用在后台启动活动。若是您的应用程序处于后台而且须要快速引发用户的注意 - 例如来电或闹钟 - 您可使用高优先级通知并提供全屏意图。有关更多信息,请参阅文档。
咱们限制访问不可重置的设备标识符,包括设备IMEI,序列号和相似标识符。阅读最佳实践以帮助您为用例选择正确的标识符,并在此处查看详细信息。咱们还默认链接到不一样的Wi-Fi网络时随机化设备的MAC地址 - 这是Android 9 Pie中可选的设置。
咱们会尽早为您提供这些更改,所以您能够尽量多地准备时间。咱们还努力为开发人员提供详细的信息,咱们建议您查看有关隐私更改的详细文档,并当即开始测试。
在Android Q中,咱们正在启用新方法,将用户引入您的应用,并在从其余应用转换时简化体验。
可折叠设备开辟了一些创新体验和用例。为了帮助您的应用利用这些和其余大屏幕设备,咱们在Android Q中进行了一些改进,包括对onResume和onPause的更改,以支持多重简历,并在重点关注时通知您的应用。咱们还更改了resizeableActivity清单属性的工做方式,以帮助您管理应用在可折叠和大屏幕上的显示方式。为了开始构建和测试这些新设备,咱们一直在努力更新Android Emulator以支持多显示器类型切换 - 更多细节即将推出!
当用户想要与另外一个应用中的某人共享照片等内容时,该过程应该很快。在Android Q中,咱们使用“共享快捷方式”让用户更快更轻松,这样用户就能够直接跳转到另外一个应用程序来共享内容。开发人员能够发布在其应用中添加内容的特定活动的共享目标,并在共享UI中向用户显示这些目标。由于它们是预先发布的,因此共享UI能够在启动时当即加载。
共享快捷方式机制相似于应用程序快捷方式的工做方式,所以咱们扩展了ShortcutInfo API,使两个功能的集成更加容易。新的ShareTarget AndroidX库也支持这个新的API。这容许应用程序使用新功能,同时容许pre-Q设备使用Direct Share工做。您能够在此处找到包含源代码的早期示例应用。
您如今还能够经过新的设置面板API直接在应用程序的上下文中显示关键系统设置,该API利用了咱们在Android 9 Pie中引入的切片功能。
设置面板是一个浮动UI,您能够从应用程序调用该UI以显示用户可能须要的系统设置,例如Internet链接,NFC和音量。例如,浏览器能够显示具备链接设置的面板,如飞行模式,Wi-Fi(包括附近的网络)和移动数据。没有必要离开应用程序; 用户能够从面板中根据须要管理设置。要显示设置面板,只需使用新的Settings.Panel操做之一触发意图。
在Android Q中,咱们扩展了您的应用程序可使用Android的链接堆栈并添加新的链接API。
咱们用于扫描网络的大多数API都须要COARSE位置权限,但在Android Q中,对于蓝牙,移动电话和Wi-Fi,咱们经过要求得到FINE位置权限来增长对这些API的保护。若是您的应用只须要创建点对点链接或建议网络,请查看下面改进的Wi-Fi API - 它们简化了链接,不须要位置许可。
除了Android Q在链接到不一样Wi-Fi网络时提供的随机MAC地址,咱们还添加了新的Wi-Fi标准支持,WPA3和加强型开放,以提升家庭和工做网络以及开放/公共网络的安全性网络。
在Android Q中,咱们重构了Wi-Fi堆栈以改善隐私和性能,同时也改善了管理物联网设备和建议互联网链接等常见用例 - 无需位置许可。
经过网络链接API,能够更轻松地经过本地Wi-Fi管理物联网设备,实现配置,下载或打印等对等功能。应用程序经过将首选SSID和BSSID指定为WiFiNetworkSpecifiers来间接启动链接请求。该平台处理Wi-Fi扫描自己并在Wi-Fi选择器中显示匹配的网络。当用户选择时,平台会自动设置链接。
该网络建议的API容许应用表面优选Wi-Fi网络给用户用于互联网链接。应用程序经过提供网络和凭据的排序列表来间接启动链接,如WifiNetworkSuggestions。该平台将在这些网络的范围内基于过去的性能无缝链接。
您如今能够经过启用高性能和低延迟模式在Android Q中请求自适应Wi-Fi。若是低延迟对用户体验很重要,例如实时游戏,主动语音呼叫和相似用例,这些将是很是有益的。
要使用新的性能模式,请使用或调用WifiManager.WifiLock.createWifiLock()。在这些模式下,平台与设备固件配合使用,以最低功耗知足要求。WIFI_MODE_FULL_LOW_LATENCY``WIFI_MODE_FULL_HIGH_PERF
移动设备上的许多相机能够经过模糊相对于主体的前景或背景来模拟窄景深。它们捕获图像中各个点的深度元数据,并对图像应用静态模糊,而后丢弃深度元数据。
从Android Q开始,应用能够请求动态深度图像,该图像由与深度相关元素相关的JPEG,XMP元数据以及嵌入在广告支持的设备上的同一文件中的深度和置信度图组成。
请求JPEG +动态深度图像使您能够在应用程序中提供专门的模糊和散景选项。您甚至能够在未来使用数据建立3D图像或支持AR摄影用例。咱们正在将Dynamic Depth做为生态系统的开放格式,咱们正在与咱们的设备制造商合做伙伴合做,使其在运行Android Q及更高版本的设备上可用。
Android Q引入了对开源视频编解码器AV1的支持。这容许媒体提供商使用更少的带宽将高质量的视频内容流式传输到Android设备。此外,Android Q支持使用Opus(一种针对语音和音乐流优化的编解码器)的音频编码,以及支持它的设备上的高动态范围视频的HDR10 +。
该MediaCodecInfo API引入了一个更简单的方法来肯定视频渲染的Android设备的能力。对于任何给定的编解码器,您可使用VideoCodecCapabilities.getSupportedPerformancePoints()获取支持的大小和帧速率列表。这容许您选择要在任何给定设备上呈现的最佳质量的视频内容。
对于使用C ++执行音频处理的应用程序,Android Q引入了原生MIDI API,经过NDK与MIDI设备进行通讯。此API容许使用非阻塞读取在音频回调内检索MIDI数据,从而实现MIDI消息的低延迟处理。试试这里的示例应用程序和源代码吧。
为了使游戏和图形开发人员更加一致,咱们正在为Vulkan上构建的全部设备开发标准的,可更新的OpenGL驱动程序。在Android Q中,咱们在Android设备上的Vulkan上添加了对ANGLE的实验性支持。ANGLE是一个图形抽象层,旨在实现跨实现的高性能OpenGL兼容性。经过ANGLE,使用OpenGL ES的许多应用程序和游戏能够充分利用Vulkan的性能和稳定性,并从Android设备上一致的,独立于供应商的ES实施中受益。在Android Q中,咱们计划在路线图中支持OpenGL ES 2.0,ES 3.0。
咱们将经过更多OpenGL功能,错误修复和性能优化来扩展实现。有关Android当前ANGLE支持,如何使用以及咱们将来计划的详细信息,请参阅文档。您能够经过选择“设置”中的开发人员选项来开始使用咱们的初始支持进行测试。今天试一试!
咱们将继续扩大Vulkan对Android 的影响,这是咱们为高性能3D图形实现的低开销,跨平台API。咱们的目标是让Android上的Vulkan成为普遍支持且一致的图形开发人员API。咱们正与咱们的设备制造商合做伙伴共同努力,使Vulkan 1.1成为运行Android Q及更高版本的全部64位设备的要求,并推荐全部32位设备。展望将来,这将有助于为应用和游戏提供统一的高性能图形API。
自2017年引入神经网络API(NNAPI)以来,咱们不断扩展支持的操做数量并改进现有功能。在Android Q中,咱们添加了60个新操做,包括ARGMAX,ARGMIN,量化LSTM,以及一系列性能优化。这为加速更大范围的模型奠基了基础 - 例如用于物体检测和图像分割的模型。咱们正在与硬件供应商和流行的机器学习框架(如TensorFlow)合做,以优化和推出对NNAPI 1.2的支持。
Android Q引入了ART运行时的几项新改进,可帮助应用程序更快地启动并消耗更少的内存,而无需开发人员的任何工做。
自Android Nougat以来,ART提供了配置文件引导优化(PGO),它经过识别和预编译代码中常常执行的部分来加速应用程序启动。为了帮助初始应用启动,Google Play如今提供基于云的配置文件以及APK。这些是匿名的聚合ART配置文件,让ART在应用程序运行以前预编译部分应用程序,从而为整个优化过程提供了重要的启动。基于云的配置文件使全部应用程序受益,而且它们已经可用于运行Android P及更高版本的设备。
咱们还在继续改进ART自己。例如,在Android Q中,咱们经过提早启动应用程序进程并将其移至安全容器来优化Zygote进程,所以能够当即启动。咱们将更多信息存储在应用程序的堆映像中,例如类,并使用线程来更快地加载映像。咱们还在ART的Concurrent Copying(CC)垃圾收集器中添加了Generational Garbage Collection。分代CC更有效率,由于它分别收集年轻代对象,与全堆GC相比,成本更低,同时仍然能够回收大量空间。这使得垃圾收集总体上在时间和CPU方面更加高效,减小了jank并帮助应用程序在低端设备上更好地运行。
BiometricPrompt是咱们的统一认证框架,用于支持系统级的生物识别。在Android Q中,咱们扩展了对诸如face之类的被动身份验证方法的支持,以及添加隐式和显式身份验证流程。在显式流程中,用户必须在身份验证期间明确确认TEE中的事务。隐式流程设计用于具备被动身份验证的事务的轻量级替代方案。咱们还在须要时改进了设备凭据的后备。
Android Q增长了对TLS 1.3的支持,TLS 1.3是对TLS标准的重大修订,包括性能优点和加强的安全性。咱们的基准测试代表,与TLS 1.2相比,使用TLS 1.3能够将安全链接的速度提升40%。默认状况下,为全部TLS链接启用TLS 1.3。有关详细信息,请参阅文档。
咱们所关心的另外一件事是确保应用程序在操做系统发生变化和发展时顺利运行。使用非SDK API的应用程序可能会面临用户崩溃和开发人员紧急部署的风险。在Android Q中,咱们将继续咱们在Android P中开始的长期努力,将应用程序转移到仅使用公共API。咱们知道,将您的应用从非SDK API移开须要时间,所以咱们会提早 通知您。
在Android Q中,咱们限制访问更多非SDK接口,并要求您使用公共等效项。为了帮助您进行转换并防止您的应用遭遇破坏,咱们仅在您的应用定位到Android Q时才启用限制。咱们会根据您的要求继续添加公共替代API; 若是没有符合您用例的公共API,请告知咱们。
测试应用程序以使用非SDK接口 很是重要。咱们建议使用StrictMode方法detectNonSdkApiUsage()来警告您的应用程序什么时候经过反射或JNI访问非SDK API。即便此时API被免除(灰名单),最好规划将来并消除其使用以减小兼容性问题。有关Android Q中的限制的更多详细信息,请参阅开发人员指南。
咱们正在努力让全部应用程序充分利用最新版Android中的安全性和性能功能。今年晚些时候,Google Play会要求您在新的应用和更新中将应用的targetSdkVersion设置为28(Android 9 Pie)。根据这些更改,Android Q会在用户首次运行面向API级别23(Android Marshmallow)以前的平台的应用时向用户发出警告。如下是帮助您迁移应用的资源清单。
咱们还将生态系统推向了64位设备的准备状态。今年晚些时候,Google Play将须要在全部应用中支持64位。若是您的应用使用原生SDK或库,请记住,您须要提供这些SDK或库的64位兼容版本。有关如何作好准备的详细信息,请参阅开发人员指南。
因为可能会影响您的应用的重要隐私功能,咱们建议您当即开始测试。特别是,您须要启用和测试Android Q存储更改,新位置权限状态,后台应用启动限制以及设备标识符限制。有关详细信息, 请参阅隐私文档
要开始使用,只需将您当前的应用从Google Play安装到运行Android Q Beta 的设备或Android虚拟设备上,而后完成用户流程。该应用应该运行而且看起来很棒,而且正确处理全部应用的Android Q 行为更改。若是您发现问题,咱们建议您在当前应用中修复它们,而不会更改定位级别。请查看有关步骤和建议时间表的迁移指南。
接下来,尽快将应用的targetSdkVersion更新为“Q”。这使您可使用Android Q中的全部隐私和安全功能测试您的应用,以及针对Q的应用的任何其余行为更改。
准备就绪后,深刻了解Android Q并了解可在应用中使用的新功能和API。以API diff报告,Android Q Beta API参考和开发人员指南为出发点。此外,在Android Q Beta开发人员网站上,您能够找到用于报告问题的发行说明和支持资源。
要使用Android Q构建,请将Android Q Beta SDK和工具下载到Android Studio 3.3或更高版本,并按照这些说明配置您的环境。若是您须要针对Android Q相关更改的最新修补程序,咱们建议您使用Android Studio 3.5或更高版本。
这很容易 - 您能够在这里注册以在任何Pixel设备上经过无线方式得到Android Q Beta更新(今年咱们支持全部三代Pixel - Pixel 3,Pixel 2,甚至是原始的Pixel! )。这些设备的可下载系统映像也可用。若是您没有Pixel设备,可使用Android Emulator,并经过Android Studio中的SDK Manager下载最新的仿真器系统映像。
咱们计划在整个预览期间按期更新预览系统图像和SDK。随着Beta计划的推动,咱们将有更多功能可供分享。
一如既往,您的反馈很是重要,请告诉咱们您的想法 - 咱们越早听到您的意见,咱们就能够整合您的反馈意见。当您发现问题时,请在此处报告。咱们有单独的热门列表来提交平台问题,应用程序兼容性问题和第三方SDK问题。
至此,本篇已结束,若有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
若有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,当即中止侵权行为,请您多多包涵。