ShadowShare 共享节点App
下载地址: shadowshare.v2cross.com
随着近期Play Integrity API的推出,越来越多的开发者正在采取行动保护他们的游戏和应用程序免受潜在风险和欺诈性交互的影响。
除了有关应用程序完整性、设备完整性和许可信息的有用信号外,Play Integrity API 还具有一个简单但非常有用的功能,称为“nonce”,如果正确使用,可以进一步加强现有保护Play Integrity API 提供并缓解某些类型的攻击,例如中间人 (PITM) 篡改攻击和重放攻击。
在这篇博文中,我们将深入了解什么是 nonce,它是如何工作的,以及如何使用它来进一步保护您的应用程序。
什么是随机数?
在密码学和安全工程中,nonce(number once)是在安全通信中仅使用一次的数字。随机数有很多应用,例如身份验证、加密和散列。
在 Play Integrity API 中,nonce 是您在调用 API 完整性检查之前设置的不透明的 base-64 编码二进制 blob,它将在 API 的签名响应中按原样返回。根据您创建和验证 nonce 的方式,可以利用它来进一步加强 Play Integrity API 提供的现有保护,并减轻某些类型的攻击,例如中间人 (PITM) 篡改攻击和重放攻击。
除了在签名响应中按原样返回 nonce,Play Integrity API 不会对实际的 nonce 数据执行任何处理,因此只要它是一个有效的 base-64 值,您就可以设置任意值。也就是说,为了对响应进行数字签名,nonce 被发送到 Google 的服务器,因此不要将 nonce 设置为任何类型的个人身份信息 (PII),例如用户的姓名、电话或电子邮件地址,这一点非常重要.
设置随机数
在将您的应用设置为使用 Play Integrity API后,您可以使用该 API 的 Kotlin、Java、Unity 和 Native 版本中可用的方法或其适当的变体 设置 nonce 。setNonce()
科特林:
val nonce :字符串= ...
// 创建管理器的实例。
val 完整性管理器=完整性管理器工厂。创建(应用程序上下文)
// 通过提供 nonce 请求完整性令牌。
val 完整性令牌响应:任务< IntegrityTokenResponse > =
完整性管理器。requestIntegrityToken ( IntegrityTokenRequest.builder () . setNonce ( nonce ) //设置nonce.build ( ) )
爪哇:
字符串随机数= ...
// 创建管理器的实例。IntegrityManager完整性管理器= IntegrityManagerFactory 。创建(getApplicationContext ());
// 通过提供 nonce 请求完整性令牌。任务< IntegrityTokenResponse >完整性令牌响应=
完整性管理器
. requestIntegrityToken ( IntegrityTokenRequest.builder () . setNonce ( nonce ) //设置nonce.build ( ) ) ;
统一:
字符串随机数= ...
// 创建管理器的实例。var完整性管理器=新的完整性管理器();
// 通过提供 nonce 请求完整性令牌。var tokenRequest = new IntegrityTokenRequest ( nonce ); var requestIntegrityTokenOperation =
完整性管理器。RequestIntegrityToken ( tokenRequest );
本国的:
/// 创建一个 IntegrityTokenRequest 对象。const char * nonce = ... IntegrityTokenRequest * request ; IntegrityTokenRequest_create (&请求); IntegrityTokenRequest_setNonce ( request , nonce ); // 设置 nonce IntegrityTokenResponse * response ; IntegrityErrorCode error_code = IntegrityManager_requestIntegrityToken ( request , & response );
验证随机数
Play Integrity API 的响应以JSON Web Token (JWT)的形式返回,其负载是纯文本 JSON 文本,格式如下:
{
requestDetails : { ... }
appIntegrity : { ... }
deviceIntegrity : { ... }
accountDetails : { ... } }
nonce 可以在requestDetails结构中找到,其格式如下:
requestDetails : {
requestPackageName : "..." ,
nonce : "..." ,
timestampMillis : ... }
该nonce字段的值应与您之前传递给 API 的值完全匹配。此外,由于 nonce 位于 Play Integrity API 的加密签名响应中,因此在收到响应后更改其值是不可行的。通过利用这些属性,可以使用 nonce 进一步保护您的应用程序。
保护高价值运营
让我们考虑恶意用户与在线游戏交互的场景,该在线游戏将玩家得分报告给游戏服务器。在这种情况下,设备并没有被攻陷,但用户可以借助代理服务器或VPN查看和修改游戏与服务器之间的网络数据流,因此恶意用户可以报告更高的分数,而实际分数要低得多。
在这种情况下,仅调用 Play Integrity API 不足以保护应用程序:设备没有受到威胁,应用程序是合法的,因此 Play Integrity API 所做的所有检查都将通过。
但是,可以利用 Play Integrity API 的 nonce 来保护这种报告游戏分数的特殊高价值操作,方法是在 nonce 中编码操作的值。实现如下:
- 用户发起高价值动作。
- 您的应用程序准备一条要保护的消息,例如 JSON 格式的消息。
- 您的应用程序计算它想要保护的消息的加密哈希。例如,使用 SHA-256 或 SHA-3-256 散列算法。
- 您的应用调用 Play Integrity API,并调用
setNonce()将 nonce 字段设置为在上一步中计算的加密哈希。 - 您的应用程序将它想要保护的消息和 Play Integrity API 的签名结果发送到您的服务器。
- 您的应用服务器验证它收到的消息的加密哈希是否与签名结果中的 nonce 字段的值匹配,并拒绝任何不匹配的结果。
以下序列图说明了这些步骤:
只要要保护的原始消息与签名结果一起发送,并且服务器和客户端都使用完全相同的机制来计算随机数,这就为消息没有被篡改提供了强有力的保证。
请注意,在这种情况下,安全模型的工作假设是攻击发生在网络中,而不是设备或应用程序中,因此验证 Play Integrity API 提供的设备和应用程序完整性信号尤为重要好。
防止重放攻击
让我们考虑另一种情况,其中恶意用户试图与受 Play Integrity API 保护的服务器客户端应用程序进行交互,但希望与受感染的设备进行交互,以使服务器无法检测到这一点。
为此,攻击者首先将应用程序与合法设备一起使用,并收集 Play Integrity API 的签名响应。然后,攻击者将应用程序与受感染的设备一起使用,拦截 Play Integrity API 调用,而不是执行完整性检查,它只是返回先前记录的签名响应。
由于签名的响应没有以任何方式更改,因此数字签名看起来没问题,并且应用服务器可能会误以为它正在与合法设备进行通信。这称为重放攻击。
针对此类攻击的第一道防线是验证timestampMillis签名响应中的字段。此字段包含创建响应时的时间戳,可用于检测可疑的旧响应,即使数字签名被验证为真实。
也就是说,还可以利用 Play Integrity API 中的 nonce,为每个响应分配一个唯一值,并验证响应是否与先前设置的唯一值匹配。实现如下:
- 服务器以恶意用户无法预测的方式创建全局唯一值。例如,128 位或更大的加密安全随机数。
- 您的应用调用 Play Integrity API,并将 nonce 字段设置为您的应用服务器接收到的唯一值。
- 您的应用将 Play Integrity API 的签名结果发送到您的服务器。
- 您的服务器验证签名结果中的 nonce 字段是否与之前生成的唯一值匹配,并拒绝任何不匹配的结果。
以下序列图说明了这些步骤:
通过这种实现,每次服务器要求应用调用 Play Integrity API 时,它都会使用不同的全局唯一值,因此只要攻击者无法预测该值,就无法重用之前的响应,因为随机数与预期值不匹配。
结合两种保护
虽然上述两种机制以非常不同的方式工作,但如果应用程序同时需要两种保护,则可以将它们组合在一个 Play Integrity API 调用中,例如,将两种保护的结果附加到一个更大的base-64 随机数。结合这两种方法的实现如下:
- 用户发起高价值动作。
- 您的应用程序要求服务器提供唯一值来识别请求
- 您的应用服务器以恶意用户无法预测的方式生成全局唯一值。例如,您可以使用加密安全的随机数生成器来创建这样的值。我们建议创建 128 位或更大的值。
- 您的应用服务器将全局唯一值发送到应用。
- 您的应用程序准备一条要保护的消息,例如 JSON 格式的消息。
- 您的应用程序计算它想要保护的消息的加密哈希。例如,使用 SHA-256 或 SHA-3-256 散列算法。
- 您的应用通过附加从您的应用服务器接收到的唯一值以及它想要保护的消息的哈希值来创建一个字符串。
- 您的应用调用 Play Integrity API,并调用 setNonce() 将 nonce 字段设置为上一步中创建的字符串。
- 您的应用程序将它想要保护的消息和 Play Integrity API 的签名结果发送到您的服务器。
- 您的应用服务器拆分 nonce 字段的值,并验证消息的加密哈希以及它先前生成的唯一值是否与预期值匹配,并拒绝任何不匹配的结果。
以下序列图说明了这些步骤:
这些是您可以使用 nonce 进一步保护您的应用免受恶意用户攻击的一些示例。如果您的应用处理敏感数据,或者容易受到滥用,我们希望您考虑在 Play Integrity API 的帮助下采取措施缓解这些威胁。
要了解有关使用 Play Integrity API 的更多信息并开始使用,请访问g.co/play/integr…上的文档。
标签: #GoogleIO , 应用安全 , 精选 , Google Play , Google Play Integrity API , 最新 , nonce 字段
Airbnb 使用 Jetpack Compose 让开发人员能够做到最好
2022 年 5 月 12 日
Compose 如何让 Airbnb 创造更好的房东和房客体验
自 2007 年以来,Airbnb已经发展到将超过 400 万房东与全球超过 10 亿客人联系起来。该应用程序成功的原因之一是其开发人员旨在通过关注两个主要原则来实现卓越的工程:使用激发创新开发的技术和赋予工作背后的工程师权力。
Jetpack Compose是 Android 的现代 UI 构建工具包,直接支持 Airbnb 的两种开发原则。Compose 为适应性强的高质量工程和减少样板代码提供了坚实的基础,因此开发人员可以专注于提供出色的用户体验 - 并推进他们对工程卓越的双重追求。
Airbnb 于 2020 年开始测试 Compose,当时它处于开发者预览阶段。作为早期采用者,Airbnb 团队渴望使用各种新功能并简化他们的工作流程。现在,由于在生产环境中使用 Compose 获得了信心,Airbnb 工程师继续对其改进开发过程的方式感到满意。
为成功配备工程师
Compose 的确定性测试有助于确保 Airbnb 的工程师严格控制他们运行的 UI 测试并消除常见的不稳定,从而增强他们对应用程序每个部分的质量和他们正在创建的用户体验的信心。工程师现在还可以使用 Compose 来测试他们以前无法做到 的动画。
同样,Airbnb 开发人员使用 Compose 将自动屏幕截图测试添加到他们的代码库中。因为他们不需要为屏幕截图测试编写代码,工程师可以直接使用它来捕获错误和回归。这让他们有更多时间来审查和保证跨各种设备的特性功能和 UI 外观。
Compose 非常适合与视图一起使用。这种互操作性使 Airbnb 工程师可以轻松地以自己的节奏加入和测试新的 UI 工具包,因此他们能够体验 Compose 的好处,而无需迁移整个功能。
这些工程改进为他们提供了以全新和改进的方式为用户服务所需的坚实技术基础。
工程效率改善用户体验
Airbnb 将房东和房客作为决策的核心。当工程团队了解到 Compose 如何使他们能够更轻松、更高效地生成 UI,从而为最终用户带来更好的体验时,他们很高兴能够采用 Compose。
由于 Compose 使 Airbnb 的功能需要编写和管理的代码大大减少,Airbnb 团队提高了他们的效率。所有这一切意味着团队可以将精力集中在执行开发能够最好地为用户服务的创新功能所涉及的复杂任务上。
因为他们的功能现在需要更少的代码,Airbnb 团队将能够从长远来看减缓他们应用程序大小的增长。作为一个拥有全球用户的组织,Airbnb 提供更小的应用程序非常重要,该组织希望确保所有房东和客人都可以轻松下载和访问他们的应用程序——尤其是那些使用旧设备或从数据成本高的国家/地区登录的人。
使用 Compose 的工程增强功能,Airbnb 团队能够将用户需求放在首位。
使用 Compose 提高开发人员的工作效率
编写简化的 UI 开发,让 Airbnb 工程师可以自由地专注于更有活力和创新的功能,让应用程序的主人和客人受益。
了解如何使用Jetpack Compose提高团队的工作效率。
标签: #GoogleIO , #TheAndroidShow , 精选 , Jetpack Compose , 最新
现在在 Android 中 - 一个新的、开源的、真实的示例应用程序
2022 年 5 月 12 日
作者:Paris Hsu,产品与设计,Android 和 Don Turner,开发者关系工程师,Android
Now in Android 应用程序现已在 GitHub 上!
两年来,“ Now in Android ”一直是热门博客和YouTube系列,为您提供来自 Android 团队的最新、最棒的开发者新闻。从今天开始,您可以在 GitHub 上查看Now in Android 应用程序的 alpha 版本!🎉
该应用程序有两个目标:
首先,它展示了其他示例应用程序无法处理的复杂现实问题的最佳实践、自以为是的设计和解决方案。它通过一个真实世界应用程序的开源实现来做到这一点。
其次,它可以帮助您(开发人员)及时了解您最感兴趣的 Android 开发领域。这是一个计划在 Play Store 上发布的工作应用程序。
现在在 Android 应用程序屏幕设计中
对于第一个 alpha 版本,Now in Android 应用程序包括:
- 使用Jetpack Compose构建的 UI
- 使用Material3的主题组件
- 针对不同屏幕尺寸的 自适应布局
- 遵循我们官方指导的架构
- 具有单向数据流的反应式编程模型,使用Kotlin Flows实现
- Room和Proto DataStore用于本地数据存储,首先离线
- 使用带指数退避的 WorkManager安排远程/本地数据同步
除了这些功能外,我们还记录了我们在应用程序的设计和实施中做出某些决定的学习历程。在此处查看我们关于应用架构的第一次旅程。
Android 屏幕中的 Now 会根据设备屏幕大小进行调整
由于这是一个 alpha 版本,我们预计会有错误和缺失的功能,我们非常感谢您的反馈。我们计划了一些令人兴奋的功能,例如用户身份验证和从真实后端加载数据。我们迫不及待地想让您查看该应用程序并告诉我们您的想法!
最后,如果您想了解我们用于构建应用程序的工具以及我们如何针对多种屏幕尺寸,请查看今年 Google I/O 上的这些演讲:
标签: Android , Android Developer , 公告 , App , Develop , Featured , latest , Samples
Google TV 和 Android TV 操作系统的新功能
2022 年 5 月 12 日
Shobana Radhakrishnan,高级工程总监 - Google TV
Paul Lammertsma,开发者关系工程师
今天,可用的娱乐内容比以往任何时候都多。事实上,我们的研究表明,三分之一的美国家庭现在每周观看超过 25 小时的电视。随着电视角色的不断发展,我们的目标是打造量身定制的电视体验,让用户轻松访问他们喜爱的娱乐节目。
我们对 Android TV 操作系统的未来感到兴奋,现在每月有超过 1.1 亿台活跃设备,包括数百万台 Google TV。全球 300 多个合作伙伴提供 Android TV 和 Google TV,其中包括 10 家最大的智能电视 OEM 中的 7 家和 170 多家付费电视运营商。由于我们的开发者社区的辛勤工作,现在有超过 10,000 个应用程序可以在电视上使用,而且每天都会增加更多。
自去年的 I/O 大会以来,我们一直致力于让您在 Android TV 操作系统上构建更好、更具吸引力的体验。除了平台更新之外,新功能(例如与实时选项卡的扩展集成)为用户提供了更好地与您的内容互动的机会。如果您还没有开始使用WatchNext API,请花点时间了解如何将其添加到您的应用程序中,以使您的内容更容易被发现和访问。
今天,我们将在 Android 13 上推出新功能和工具,重点关注整体性能和质量、提高可访问性并启用多任务处理。
- 性能和质量: 为帮助构建下一代电视,我们引入了新的 API,以提高应用开发效率并为用户提供最佳设备体验。AudioManager 允许您的应用程序预测音频路由并准确了解可用的播放模式。将您的应用与 MessiaSession 正确集成可以让 Android TV 对 HDMI 状态变化做出反应,以节省电量并发出暂停内容的信号。
- 辅助功能:为了改善用户与电视的交互方式,我们在 InputDevice API 中添加了对不同键盘布局的支持。游戏开发者还可以通过物理位置来引用按键,以支持物理键盘的不同布局,例如 QWERTZ 和 AZERTY 键盘。新的系统范围的可访问性首选项还允许用户跨应用启用音频描述。
- 多任务处理: 电视现在不仅仅用于观看媒体内容。事实上,我们经常看到用户在智能家居中接听电话或监控摄像头。为了帮助进行多任务处理, Android 13 将使用来自核心 Android 的 API 支持更新的画中画 API 。电视上的画中画支持扩展模式以显示更多来自群组通话的视频,停靠模式以避免覆盖其他应用程序上的内容,以及保持清除 API以防止覆盖隐藏全屏应用程序中的重要内容。
适用于 TV 的 Android 13 Beta现已推出,可让您测试您的应用并提供有关最新版本的反馈。感谢您一直以来对 Android TV 操作系统的支持。我们迫不及待地想看看你们继续为大屏幕打造哪些令人惊叹和创新的东西。
标签: #GoogleIO , Android TV , Android TV OS , 精选 , google tv , 最新
适用于汽车的 Android 的新功能
2022 年 5 月 12 日
发布者:技术项目经理 Jennifer Chui 和产品经理 Rod Lopez
在 Google,我们在汽车领域的工作始终以创造安全和无缝连接体验的愿景为指导。如果没有像您这样的开发人员,这项工作是不可能完成的。我们很高兴与大家分享我们在过去一年中取得的一些综合成就,并推出新的更新,让您更轻松地为用户提供更好的汽车体验。
Android Auto 不断发展壮大,目前全球兼容车辆数量已超过 1.5 亿辆。越来越多的人还支持无线兼容,并且使用新推出的摩托罗拉 MA1 适配器,现在更多的驱动程序可以获得无线体验。此外,我们针对 Android Auto 的新设计为每个屏幕带来了分屏功能,将导航和媒体保持在前端和中心位置,同时还为突出的通知小部件提供空间。
内置 Google 的 Android Automotive OS 也有令人兴奋的更新。除了为市场带来更多车型的汽车制造商的持续扩张之外,我们还一直在努力提供更多的停车体验,以利用许多 AAOS 汽车提供的大屏幕。从 Epix Now 和 Tubi 等更多视频流应用程序到浏览和投射等未来功能,有很多值得期待的地方,而且只需极少的努力即可将大屏幕平板电脑应用程序转换为停放的汽车体验,现在比以往任何时候都更容易触达车内用户。
我们知道,为汽车开发可能很复杂,这就是为什么我们专注于让跨 Android for Cars 的开发尽可能简单。我们的 Car App Library 势头强劲,迄今已发布 200 多个应用程序,除了丰富了 1.3 版的导航功能集之外,我们还很高兴地分享,所有开发人员现在都可以将支持类别中的应用程序直接发布到生产环境中适用于 Android Auto 和 Android Automotive OS。我们还创建了新模板并扩展了我们支持的应用类别,将 Lyft 等司机应用添加到导航类别中,并将停车和充电类别替换为综合兴趣点 (POI) 类别,以包括 MochiMochi 和 Fuelio 等应用。
我们还推出了几项新功能,以帮助您在 Android Auto 上构建更强大的媒体应用。媒体推荐与 Google Assistant 并存,可帮助用户轻松发现并快速播放基于其首选音乐提供商的相关内容,只需单击一个按钮。要从您的应用中显示推荐,请与此 API集成。
对于播客和有声读物等长篇内容,您现在可以引入一个进度条来显示用户之前收听了多少内容,并且使用我们新的单项样式 API,您现在可以将内容项单独分配为任一列表或网格而不是分类,以轻松地将它们组合在同一内容空间中。
在我们寻求创造更安全、更无缝的汽车互联体验的过程中,我们很高兴有您与我们同行。请务必查看我们上面的 Google I/O 技术会议,与往常一样,您可以使用android-automotive和android-auto标签从 Stack Overflow 的开发者社区获得帮助。我们迫不及待地想看看你接下来要建造什么,以及这条路会把你带到哪里。
标签: #GoogleIO , 精选 , 最新 , Platform_Update
在 Google I/O 上 Android 开发者需要知道的 13 件事!
2022 年 5 月 11 日
作者:Maru Ahues Bouza,Android 开发者关系总监
没有多少平台可以让您构建一些东西并立即接触全球数十亿人,不仅在他们的手机上,而且在他们的电视、汽车、平板电脑、手表等上。今天,在 Google I/O 上,我们介绍了 Android 帮助您充分利用这一机会的多种方式,以及现代 Android 开发如何带来尽可能多的通用性,让您更快、更轻松地创建适合您的体验我们在日常生活中使用的所有不同的屏幕。
我们汇总了 Android 开发者最需要了解的 13 件事——从 Jetpack Compose 到平板电脑再到 Wear OS,当然还有……Android 13!并坚持参加 Google I/O 的第 2 天,届时Android 的 26 场技术讲座和 4 场研讨会的完整轨道将下降。我们还将在#TheAndroidShow 的另一集中带回 Android 炉边问答;现在使用#AskAndroid 向我们发送您的问题,我们已经组建了一个专家团队,在太平洋时间 5 月 12 日下午 12:30 现场直播回答。
\
现代安卓开发
#1:Jetpack Compose Beta 1.2,支持更高级的用例
Android 的现代 UI 工具包 Jetpack Compose 继续提供您需要的 API,以支持更高级的用例,例如可下载字体、LazyGrids、窗口插图、嵌套滚动互操作以及更多工具支持,包括 LiveEdit、重组调试和动画预览等功能。查看博客文章了解更多详情。
#2:Android Studio:引入 Live Edit
使用 Android Studio Dolphin Beta 和 Electric Eel Canary 更快地完成更多工作!Android Studio Dolphin 包括用于 Jetpack Compose 和 Wear OS 开发的新功能和改进以及更新的 Logcat 体验。Android Studio Electric Eel 集成了新的Google Play SDK Index和 Firebase Crashlytics。它还提供了一个新的可调整大小的模拟器来在大屏幕上测试您的应用程序,并提供新的实时编辑功能来立即部署在可组合函数中所做的代码更改。观看What's new in Android Development Tools会话并在此处阅读 Android Studio I/O 博客文章。
#3:基线配置文件 - 加快您的应用加载时间!
安装后您的应用程序的速度会对用户保留率产生很大影响。为了改善这种体验,我们创建了基线配置文件。基线配置文件允许应用程序和库向 Android 运行时提供有关代码路径使用情况的元数据,它使用这些元数据来确定提前编译的优先级。由于仅添加基线配置文件,我们已经看到应用程序启动时间加快了 30%,无需其他代码更改!我们已经在 Jetpack 中使用基线配置文件:我们已将基线添加到 Fragments 和 Compose 等流行库中,以帮助提供更好的最终用户体验。观看What's new in app performance 演讲,并在此处阅读 Jetpack 博客文章。
更好的在一起
#4:在 Android 平板电脑上大放异彩
谷歌全都在平板电脑上。自上次 I/O 以来,我们推出了 Android 12L,这是一个专注于大屏幕优化的版本,Android 13 包括所有这些改进以及更多。我们还宣布将于明年推出 Pixel 平板电脑。凭借令人惊叹的新硬件、更新的操作系统和 Google 应用程序、改进的指南和库以及对 Play 商店的激动人心的变化,现在是审查您的应用程序并为大屏幕和 Android 13 做好准备的最佳时机。这就是为什么在今年的 I/O 上,我们有四场讲座和一个研讨会,带您从设计到实现大屏幕。
\
#5:Wear OS:撰写 + 更多!
随着 Wear OS 的最新更新,您可以重新思考开发可穿戴设备时的可能性。Jetpack Compose for Wear OS 现在处于测试阶段,因此您可以用更少的代码行创建漂亮的 Wear OS 应用程序。健康服务现在也处于测试阶段,为健康和健身开发者社区带来了大量创新。最后但同样重要的是,我们宣布将于今年秋季推出 Google Pixel Watch,它汇集了 Fitbit 和 Wear OS 的精华。您可以观看Wear OS 技术会议并阅读我们的Jetpack Compose for Wear OS 公告,了解有关可穿戴设备所有最激动人心的更新的更多信息。
#6:介绍健康连接
Health Connect 是 Google 和三星密切合作构建的一个新平台,它简化了应用程序之间的连接,从而更轻松地以更少的工作接触更多用户,因此您可以跨应用程序和设备安全地访问和共享用户健康和健身数据。今天,我们将通过 Jetpack Health 开放对 Health Connect 的访问——阅读我们的公告或观看 I/O会议以了解更多信息!
#7:适用于汽车和 Android TV 操作系统的 Android
Android for Cars 和 Android TV OS 在美国和国外继续增长。随着越来越多的用户驾驶联网或收听,我们将在今年推出新功能,让开发汽车和电视应用程序变得更加容易。在太平洋时间第 2 天(5 月 12 日)上午 9:00 参加“Android for Cars 的新功能”和“Google TV 和 Android TV 的新功能”课程, 了解更多信息。
#8:跨设备添加语音
我们通过扩展开发人员对适用于Android for Cars的 Shortcuts API 的访问权限,以及对今年晚些时候推出的Wear OS应用程序的支持,让用户可以更轻松地通过 Google 助理在设备上通过语音访问您的应用程序。我们还通过Smarter Custom Intents更轻松地构建这些体验,使 Assistant 能够通过 ML 更好地检测更广泛的用户查询实例,而无需任何 NLU 训练繁重的工作。此外,我们正在引入改进,通过移动设备上的语音推动应用发现,首先是通过 Brandless Queries,即使用户没有明确说出您的应用名称,也会推动应用使用,如果您不是,则会出现应用安装建议还没有安装——这些现已自动为现有的应用操作启用。
\
以及来自 ANDROID、PLAY 等的最新信息:
#9:Play 中的新功能!
从 Google Play 获取最新动态,包括 Play 帮助您发展业务的新方法。亮点包括深度链接和创建多达 50 个自定义列表的能力;我们的 LiveOps 测试版,这将允许更多开发者提交内容以考虑在 Play 商店中展示;甚至更灵活地销售订阅。在我们的博客文章中了解这些更新和更多信息。
#10:Google Play SDK 索引
使用新的Google Play SDK 索引 评估 SDK 是否适合您的应用。这个新的公共门户列出了 100 多个最广泛使用的商业 SDK 和信息,例如 SDK 请求的应用程序权限、使用它们的应用程序的统计信息以及最受欢迎的 SDK 版本。在我们的博客文章中了解更多信息,并观看“ Google Play 中的新功能”和“ Android 开发工具中的新功能”会议。
#11:Android 上的隐私沙盒
Android 上的隐私沙盒为新的广告解决方案提供了一条途径,以改善用户隐私,而不会使访问免费内容和服务面临风险。我们最近在 Android 开发者预览版上发布了第一个隐私沙盒,因此您可以及早了解SDK 运行时和主题 API。您可以对这些新技术进行初步测试,评估如何将它们用于您的解决方案,并与我们分享反馈。在“Android 中的隐私沙盒概述”会话中了解更多信息。
#12:新的谷歌钱包 API
新的 Google 电子钱包让用户可以通过 Android 和 Wear OS 快速、安全地访问日常必需品。我们正在增强 Google Wallet API(以前称为 Google Pay Passes API)以支持通用通行证、将通行证分组和混合在一起,例如将活动门票与凭证组合在一起,并推出新的 Android SDK,让您可以直接保存通行证从您的应用程序没有后端集成。要了解更多信息,请阅读完整的博客文章、观看会话或阅读 developer.google.com/wallet 上的文档。
#13:当然还有安卓 13!
Android 13 的第二个 Beta 版今天可用!让您的应用为隐私和安全方面的最新功能做好准备,例如新的通知权限、保护隐私的照片选择器,以及改进的与附近设备配对和访问媒体文件的权限。使用特定于应用程序的语言支持和主题应用程序图标等功能增强您的应用程序。使用现代标准构建,例如 HDR 视频和蓝牙 LE 音频。您可以在此处注册您的 Pixel 设备开始使用,或者在我们的合作伙伴提供的部分手机、平板电脑和可折叠设备上试用 Android 13 Beta - 请访问developer.android.com/13了解更多信息。
这只是今年 Google I/O 上面向 Android 开发人员的一些亮点的快照。请务必观看What's New in Android演讲,了解 Google I/O 上完整的 Android 技术轨道,其中包括 26 场演讲和 4 场研讨会。享受!
标签: #GoogleIO 、 Android 12L 、 Android 13 、 Android Auto 、 Android Studio 、 Android Studio Dolphin 、 Android TV 、 助手 , Compose , Featured , Google Play SDK Index , latest , Platform_Update , 平板电脑 , Wear OS
宣布 Compose for Wear OS 测试版!
2022 年 5 月 11 日
作者:开发者关系工程师Kseniia Shumelchyk和 Compose for Wear OS 技术主管 John Nichol
今天,我们发布了Compose for Wear OS的 Beta 版,这是我们现代的声明性 UI 工具包,旨在帮助开发人员为 Wear OS 创建精美的用户体验。
Compose for Wear OS 增加了对包含适用于 Wear OS 的最新 Material 设计的手表优化组件的支持。这些组件构建在核心 Compose 库之上,并且该工具包利用现代 Android 开发,有助于加速整个开发过程。
有了这个 Beta 版本,Compose for Wear OS 的功能就在今年晚些时候发布的 1.0 版本中完成了,并且具备构建生产就绪型应用程序所需的一切。这也意味着 API 是稳定的;展望未来,我们将专注于性能和完善 1.0 版本的现有组件。
\
在测试版中
自上次 I/O 以来,我们一直在努力将 Jetpack Compose 的精华带到 Wear OS,通过 Slack 与社区互动,收集开发人员对 API、组件和工具的反馈。因此,我们改进了许多组件,例如导航、缩放惰性列表、输入和手势支持等等。
第一个 Beta 版本在 21 个 alpha 版本之后。自开发者预览版公告以来的主要变化包括:
\
🆕 输入组件
您要求提供用户输入组件,因此我们添加了不同的可组合项,您可以为自己的手表应用定制:
- Picker让用户从滚动列表中选择一个项目。默认情况下,可选项目列表在两个方向上“无限”重复,给人一种从侧面看到的旋转圆柱体的印象。有趣的是,Picker 在底层使用了 ScalingLazyColumn实现,并帮助开发和完善了许多高级 ScalingLazyColumn 功能。
- 滑块允许用户从一系列值中进行选择,非常适合调整字体大小或亮度等设置。
- Stepper是一个全屏控制组件,允许用户从一系列值中进行选择。例如,用户可以控制耳机的音量。
\
🆕 对话框
我们添加了全屏 Alert 和 Confirmation 组合,可用作导航目的地或传统的全屏对话框,它们将叠加在任何其他内容之上。Dialog 支持滑动关闭,并在滑动手势期间在后台显示父内容。
为了与Scaffold保持一致,全屏对话框显示PositionIndicator和Vignette。
\
🆕 进度指示器
我们添加了CircularProgressIndicator,这是一个针对手表屏幕优化的进度指示器,通过沿顺时针方向沿圆形轨道为指示器设置动画来显示进度。
如何使用 CircularProgressIndicator 有几个选项:要么显示无限进度,要么表示完成正在进行的任务的比例。进度指示器允许在圆形轨道中留出空间,以便为其他内容留出空间,例如如果在全屏中使用 TimeText 。
\
🆕 页面指示器
为了帮助您实现分页,UI 工具包提供了一个HorizontalPageIndicator组件,该组件表示页面总数和所选页面。
根据屏幕形状,HorizontalPageIndicator 将提供特定于外形尺寸的视觉指示,指示哪个页面处于活动状态以及页面之间的距离。
\
改进
- ScalingLazyColumn:改进了默认行为以与 Wear OS 的 Material design 保持一致,例如更新缩放参数、默认额外填充以及从其内容的大小中获取大小。
- 脚手架:添加 PageIndicator 插槽以保证在圆形屏幕上的正确定位。
- 导航:确保与 Compose Navigation 的功能相同,并添加对边缘滑动的支持,以实现全屏和页面滚动的出色体验。
- 弯曲元素:添加了CurvedModifiers和新的 DSL,使开发人员能够使用对弯曲世界有意义的概念,如径向、角度、扫掠、(反)顺时针、内/外。CurvedLayout是线性世界和曲线世界之间的桥梁,如果需要,curvedComposable可用于引入传统的可组合组件。
通过这些最近添加的内容,Wear OS 的 Compose Material 目录现在拥有比基于视图的布局更多的组件,并提供新的 Wear OS 设计指南的开箱即用实施。
\
工具
Android Studio Electric Eel提供了最新功能,可提供使用 Compose for Wear OS 进行开发的最佳体验:
- 编辑器和工具支持改进自动完成和编辑器操作
- Wear OS 特定的可组合预览
- 🆕 实时编辑支持实时调试
- 🆕 Compose for Wear OS 项目模板
\
钟表师
今天,我们还宣布了Horologist的发布,这是一个 Google 开源项目,它提供了一组 Wear 库,以补充 Compose for Wear OS 和其他 Wear OS API 提供的功能。
阅读有关钟表的信息
钟表师提供有用的 Compose 扩展:
- 媒体 UI 组件,包括播放控制和音量屏幕
- 材料日期和时间选择器
- 具有 TimeText 和 PositionIndicator 的导航感知脚手架,可与滚动和导航屏幕更改保持同步。
Horologist 将成长为开发人员提供额外的工具,用于在不同 **体验中构建出色的 Wear OS 应用程序。查看Github 上的钟表学家,以提供反馈并贡献对 Wear 开发人员有用的一般功能 - 敬请期待即将发布的版本!
\
开始使用
移动 Compose 的许多开发原则适用于 Compose for Wear OS,因此,如果您不熟悉 UI 工具包,请从Jetpack Compose基础开始。
我们准备了一组材料来帮助您开始使用 Compose for Wear OS:
- Compose for Wear OS学习路径
- 设置您的第一个项目的 快速入门指南
- 更新了适用于 Wear OS 的 Compose Material 目录的 设计和实施指南
- 简单和复杂的 Compose for Wear OS 示例,可在 Github 上获得
- 为 Wear OS 编写代码实验室以获得动手体验。
现在 Compose for Wear OS 已达到 Beta 版,现在是开始使用 Compose 以快速使您的应用程序栩栩如生或刷新现有 UI 的好时机。有关为 Wear OS 构建应用程序的更多信息,请查看开发者网站。
我们很乐意听取您关于使用 Compose for Wear OS 的体验以及您能够构建的内容!加入Kotlin Slack #compose-wear频道中的讨论,并请继续提供有关问题跟踪器的反馈。