第一台 Andriod XR 设备发布,Jetpack Compose XR 有什么不同?对原生开发有何影响?

近日三星推出了首款 Galaxy XR 设备,这是第一款基于 Android XR 的 Android 设备,而 Android XR 是为下一代耳机和眼镜推出的新操作系统。

作为对标苹果 Vision Pro 的设备, Galaxy XR 搭载的是 Android XR 系统 , Android XR 基于开放标准构建,并支持 OpenXR、WebXR 和 Unity 等工具,例如可以通过 360 度支持的 VR 内容,体验沉浸式的视频和应用交互:

还可以使用 Circle 搜索虚拟对象(或房间中的真实物品),从网络上获取有关所看到的任何事物的有用信息:

还有自由调整、伸缩的应用交互,同步进行操作的视野空间,这就是 Android XR 的不同至于,支持在 AR 和 VR 之间无缝切换:

而在此基础上,为了提供更好的开发体验,官方提供了 Jetpack XR SDK,而基于 SDK 开发的 UI 框架也就是熟悉的 Jetpack Compose ,那它有什么特别之处

首先,在 XR 设备上应用的展示和操作风格发生了较大改变,而 Jetpack XR SDK 的作用就是:让开发者可以直接使用 Kotlin + Compose 进行开发,减少全新 XR 工具链门槛 ,让持原有 2D 应用能直接在 XR 设备(尤其 Home Space 模式)中"无修改"运行,从而降低适配成本。

什么是 Home Space ?这就需要见到 Android XR 的关键基本概念,首先应用程序可以运行的两种模式:主空间和全空间:

Home Space 中 ,多个应用可以并排运行,方便用户跨不同窗口执行多任务,从这个意义上来说,它很像在大屏幕 Android 设备上的桌面窗口:

而如果在 Full Space 中 ,应用没有空间边界,可以利用 Android XR 的完整空间功能,例如 spatial UI 和控制虚拟环境,这个情况更像是一个普通大屏幕,不需要太多的定位操作。

而实际开发过程中,应用其实往往需要适配两种不同场景切换,这才是 XR 设备里最需要的适配场景:

具体对比为:

Home Space Full Space
多个应用并行运行,可以进行多任务处理 一次只运行一个应用,不受空间限制,所有其他应用均被隐藏
兼容自适应的 Compose 一般不需要额外开发 可以在全空间中空间化现有的 Android 应用
Home Space 支持系统环境,它不支持 spatial-ui、 3d-content 或应用的 spatial environments(环境模拟) 支持 spatial-ui、 3d-content 、 spatial environments(环境模拟)
应用程序具有受限的边界,默认1024 x 720dp,最小尺寸 385 x 595dp,最大尺寸 2560 x 1800dp 应用可以覆盖 panel-depth 并具有移动和调整大小的功能
应用程序在距离用户 1.75 米处启动 应用程序可以直接打开到完整空间,Unity 、 OpenXR 和 WebXR 应用在非托管的完整空间中运行

而 Android XR 里的交互,将 press、 pinch 和 swipe 等熟悉的移动操作扩展为基于手势的导航系统,例如使用食指和拇指捏合来选择项目,这相当于在空间上点击触摸屏或按下鼠标按钮,按住捏合可以滚动、移动或调整窗口大小,以及在 2D 和 3D 空间中选择和移动 UI 元素或对象:

用户通过将主手的手掌向内、捏合并握住食指和拇指来导航,手向上、向下、向左或向右移动, 释放以选择一个选项:

以上这些都是需要适配的不同之处,其他是其实还是使用 Compose 进行布局,不同的是使用 spatial layouts 的 SpatialRowsSpatialColumn之类:

还有使用 SpatialPanel来显示文本、按钮和视频等 2D 内容等,SpatialPanel 是一个 subspace composable ,而Orbiter 可以附加到 SpatialPanel 上,并随其所附加的内容一起移动, 它们通常用于提供与其所附加内容相关的上下文控件,让内容成为主要焦点,一般可以放置在内容的四个侧面中的任意一个:

kotlin 复制代码
Subspace {
    SpatialPanel(
        SubspaceModifier
            .height(824.dp)
            .width(1400.dp)
    ) {
        Text("I'm a panel!")
    }

}

这也是 Jetpack XR SDK 提供的空间化 UI 构建工具 ,提供 SubspaceSpatialPanelSpatialRowSpatialColumnOrbiter 等新 Compose API,用于将 UI 放置在 3D 空间、控制大小、位置、拖动、缩放、深度,最重要的是

支持当设备/模式不支持空间化(如普通手机或 Home Space)时自动降级到 2D 表示,从而提高兼容性

另外还需要支持 XR 模式管理、环境、场景控制,例如:

  • SDK 提供 API 来检测是否支持 XR 空间化特性(如 LocalSpatialConfiguration.current.hasXrSpatialFeature)以及切换到 Full Space 模式
  • 支持将 UI 内容置于不同空间模式(Home vs Full)
  • 支持环境、3D 模型、空间音频、实体管理等 XR 特有功能

用一句话来总结:

Jetpack XR SDK(Compose for XR)让你用熟悉的 Android Compose 构建跨设备的 UI,同时新增"空间化"能力(深度/3D 面板/拖动/缩放/模式切换等),从而将你的应用从二维屏幕拓展到 XR 沉浸式环境。

而从目前的情况下,这个赛道的跨平台支持很微弱,几乎都是原生赛道,虽然目前场景不多,但是可以说是一个非常纯净的 Android 原生开发赛道了

另外其实还有一个赛道,智能眼镜的独立 app ,像雷鸟,meta ai,阿里夸克ai眼镜,rokid 等等,基本都是纯原生开发,没有用一点跨平台,估计是因为和手机平台比较强关联,涉及各种硬件和通信协议处理,所以基本都是原生开发,目前看来这个赛道也基本都是纯原生的净土。

只能说,目前还有这样纯净的原生开发赛道,不多了,实际上比如笨重和昂贵的 XR 头戴赛道,智能眼镜虽然严重依赖手机支持(毕竟才 200 毫安不到,还要考虑发热),但是它整体价格和场景会更丰富,想比较起来更推荐 Android 原生开发尝试。

那么,你对 XR 有什么看法呢?

参考链接

blog.google/products/an...

android-developers.googleblog.com/2025/10/bri...

相关推荐
工程师老罗1 小时前
如何在Android工程中配置NDK版本
android
崔庆才丨静觅1 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60612 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了2 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅2 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅2 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
renke33642 小时前
Flutter for OpenHarmony:色彩捕手——基于HSL色轮与感知色差的交互式色觉训练系统
flutter
崔庆才丨静觅3 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment3 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅3 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端