使用Kotlin为Meta Quest构建你的第一个Android应用

PICO 4 Ultra

查看引用/信息源请点击:映维网Nweon

Kotlin

映维网Nweon 2025年12月26日)Meta一直在积极邀请开发者为Meta Horizon OS打造创新、沉浸式的体验。例如,Horizon Start开发者大赛就提供了总金额达150万美元的奖金。然而,开发者斯里扬克·悉达塔(Sriyank Siddhartha)认为目前市场缺乏使用Kotlin为Quest设备开发应用的优质系统教程。大多数相关教程都是基于其他技术栈,所以他希望填补Android/Kotlin开发者进入VR领域的教程空白,并在分享相关的知识:

使用Kotlin为Meta Quest构建你的第一个Android应用

灵感来源:我看到Meta正在举办一场开发者竞赛,特别为Android开发者提供了150万美元的现金奖励。然而,当时没有很好的使用Kotlin为Quest开发的教程。因此,我决定花时间进行实验,开发一个能在模拟器和Quest设备运行的简单Android应用。希望你会喜欢。

想象一下,如果你的下一个Android应用不仅能运行在手机上,还能悬浮在虚拟现实的3D空间中,会怎样?

你是一名Android开发者。你懂Kotlin,精通Jetpack Compose,而且Android Studio已经在你的屏幕打开。令人兴奋的地方来了:你已经掌握了为Meta Quest开发VR应用所需技能的80%。无需游戏引擎,无需学习C++,无需从零开始。我们可以利用现有的Android开发技能为Quest构建应用。

Meta Quest设备采用基于Android开源项目直接构建的HorizonOS。这意味着你现有的技能、工具甚至代码库,只需进行极少的改动,就可以部署给数百万的Quest用户。进入门槛?比你想象的要低。

为什么Android开发者应该关注Quest

  • 熟悉的领域,新的前沿:使用你每天都在用的Jetpack Compose框架,用Kotlin编写应用。通过ADB部署,用Android Studio调试,打包成APK。Meta的Spatial SDK本身就是基于Kotlin的,让VR开发感觉像在家一样熟悉。

  • 即时应用移植性:将你现有的移动应用作为2D浮动面板在Quest运行。然后,再按照自己的节奏,用VR功能逐步增强它:空间音频、手部追踪、3D环境。

  • 未开发的受众:Quest生态系统正在快速增长,通过Meta Horizon商店、应用内购、订阅和广告提供了新的营收机会。你的Android应用可以在一个全新的计算范式中触达用户。

在本教程中你将实现的目标

完成本教程后,你将:

  • 使用Android Studio和Meta的官方工具设置完整的Quest开发环境。

  • 使用Jetpack Compose构建并部署你的第一个“Hello Quest”应用。

  • 在模拟器和(可选的)物理Quest设备,看到你的Android代码在VR中运行。

  • 了解如何针对VR面板显示优化2D Android应用。

  • 获得基础,以便在后续教程中探索空间功能和沉浸式3D体验。

时间投入:45–60分钟

设备要求:我们将使用模拟器。作为福利,我会展示应用在Meta Quest头戴设备的效果。

我们开始吧。

设置你的开发环境

已经安装了Android Studio?太好了!你已经完成了一半。只需添加Meta插件,你就能在VR中编码了。

步骤0:安装Android Studio

所需条件:Android Studio Narwhal Feature Drop 2025.1.2。

Android Studio依然是你的主要IDE;这一点没有变化。你将使用你已熟悉的相同SDK管理器、AVD模拟器和调试工具。

如果尚未安装,请从developer.android.com/studio下载并运行安装程序。

步骤1:安装Meta Horizon Android Studio插件

这是关键所在。Meta的官方插件添加了Quest专用模板、兼容性检查,并对不支持的库提出主动警告,为你节省大量后续调试时间。

如何安装:

  1. 在Android Studio中,转到文件>设置>插件。

  2. 在Marketplace中搜索”Meta Horizon”。

  3. 点击带有Meta徽标的插件进行安装。

  4. 重启Android Studio。

或者,你也可以直接从JetBrains Marketplace一键安装。

使用Kotlin为Meta Quest构建你的第一个Android应用

为什么Android开发者喜欢它:这个插件会自动flag头显无法使用的Google Play依赖项(如地图、位置服务)和不支持的权限。不再有运行时意外。

你会看到什么:重启后,会出现一个欢迎对话框,并且在右侧边栏会出现一个新的Meta Horizon工具窗口。

使用Kotlin为Meta Quest构建你的第一个Android应用

如果已经打开任何项目,你还会注意到Android Studio右侧有一个新的Meta Horizon工具窗口(或工具栏图标)。这表示插件已激活。如果需要,以后可以通过插件菜单启用/禁用它。

使用Kotlin为Meta Quest构建你的第一个Android应用

步骤2:设置Meta Quest开发者中心

可以把MQDH看作是功能更强大的、专为VR设计的ADB。尽管你可以使用命令行ADB,但MQDH为你提供了可视化的设备管理、实时logcat、屏幕投射和一键应用部署功能。

MQDH是一个非常方便的工具,可以在工作时与Android Studio一起打开。例如,你可以从Android Studio运行应用,同时通过MQDH查看日志输出或投射屏幕。这个中心使Quest的开发比单独使用命令行工具方便得多,同时更“开发者友好”。

MQDH能做什么:

  • 将Quest的显示画面投射到你的显示器上(无需佩戴头戴设备进行测试)

  • 实时查看设备日志(比命令行logcat更好)

  • 为演示捕获截图和录制VR会话

  • 拖放式APK安装(无需输入adbinstall命令)

  • 准备就绪后,直接将构建版本上传到Meta Horizon商店

如何安装:

  • 从developers.meta.com/horizon/downloads下载。

  • 选择Windows或macOS版本并运行安装程序。

  • 启动MQDH并使用你的Meta开发者帐户登录(使用Facebook登录是免费的)。

使用Kotlin为Meta Quest构建你的第一个Android应用

启动时,MQDH窗口应如下所示:

使用Kotlin为Meta Quest构建你的第一个Android应用

Android开发者视角:如果你曾将Firebase Console或Play Console与Android Studio一起使用,这就是相同的工作流程。MQDH处理设备管理,而你在Android Studio中编码。

步骤3:为Quest测试设置Android模拟器

没有Quest头戴设备?没问题。Android XR模拟器允许你无需硬件即可测试Quest 2D应用。尽管它无法模拟完整的VR沉浸感,但对于测试布局、交互和基本功能而言足够完美。

设置步骤:

A.安装所需的SDK工具:

  1. 在Android Studio中,转到工具>SDK管理器。

  2. 切换到SDK工具标签页。

  3. 勾选以下框:

    • AndroidSDK构建工具

    • Android模拟器(v36.2.12或更高版本)

    • AndroidSDK平台工具

  4. 点击确定安装。

使用Kotlin为Meta Quest构建你的第一个Android应用

B.安装XR系统镜像:

  1. 切换到SDK平台标签页。

  2. 勾选显示包详细信息。

  3. 在Android14.0下,选择:

    • GooglePlayXRIntelx86_64SystemImage(Windows)

    • GooglePlayXRARM64v8aSystemImage(macOS)

  4. 点击确定安装。

使用Kotlin为Meta Quest构建你的第一个Android应用

C.创建XR模拟器:

  1. 打开AVD管理器(工具>设备管理器)。

  2. 点击创建设备。

  3. 选择XR外形规格,然后选择XRHeadset配置文件。

  4. 选择你刚刚安装的GooglePlayXR系统镜像。

  5. 点击完成。

使用Kotlin为Meta Quest构建你的第一个Android应用

使用Kotlin为Meta Quest构建你的第一个Android应用

很好,模拟器准备好了!

免责声明:Meta Quest设备不支持Google API功能。任何使用了谷歌地图、位置或分析API的Quest应用在实际Quest设备都将无法运行;它会崩溃并迫使你使用Meta推荐的替代解决方案。所以,我们在这个XR头戴设备模拟器上测试应用时,会避免使用相关的API。

重要提示:在特定Windows配置,模拟器可能会导致系统变慢。启动模拟器前请保存你的工作。

构建并运行一个Hello Quest应用

我们的时刻到了!你将编写标准的Kotlin代码,使用Jetpack Compose,像部署任何其他Android应用一样部署它,并看到它悬浮在VR头戴设备内部的3D空间中。纯粹的Android开发。

你将构建什么

一个显示带有表情符号和变化背景颜色的趣味知识的“Fun Facts”应用。每次点击都会循环显示不同的事实并随机改变背景颜色;简单、直观,非常适合测试VR交互。这是我们将要构建的内容。

步骤1:创建一个新项目

启动Android Studio并点击新建项目。

选择你的模板:

  1. 从手机和平板电脑类别中选择空活动。

  2. 点击下一步。

使用Kotlin为Meta Quest构建你的第一个Android应用

配置你的项目:

  • 名称:Hello Quest

  • 包名:com.droidcon.helloquest(或你自己选择)

  • 最低SDK:API26(Android8.0Oreo)或更高

  • 构建配置语言:KotlinDSL(build.gradle.kts)—推荐

使用Kotlin为Meta Quest构建你的第一个Android应用

点击完成。

Android Studio会使用MainActivity.kt文件和基本的Compose设置来搭建你的项目。

Android开发者视角:这与创建任何其他Android应用完全相同;不需要特殊的VR模板。魔法发生在部署到Quest时,而不是在项目创建期间。

步骤2:编写FunFacts应用代码

打开MainActivity.kt并用以下完整实现替换所有模板代码:

class MainActivity : ComponentActivity() {  override fun onCreate(savedInstanceState: Bundle?) { // (1)  super.onCreate(savedInstanceState) setContent { FunFactApp() // Set the content of this Activity to our composable UI } }}@Composablefun FunFactApp() { // (2)  // Lists of emojis and facts to display val emojis = listOf("🧽", "🤖", "🎮", "🧠") val facts = listOf( "Quest has a built-in web browser for surfing in VR.", "You can sideload custom apps on Quest using ADB.", "The Guardian system maps your play area.", "Quest supports hand tracking without controllers!" ) // Remember the current index and background color as state var index by remember { mutableStateOf(0) } var bgColor by remember { mutableStateOf(randomColor()) } // Main UI container: full-screen box with dynamic background color  Box( // (3)  modifier = Modifier .fillMaxSize() .background(bgColor), contentAlignment = Alignment.Center ) { // Column to hold emoji, fact text, and button, centered with spacing Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(24.dp) ) { // Emoji text (large) Text( text = emojis[index % emojis.size], fontSize = 64.sp ) // Fun fact text Text( text = facts[index], fontSize = 22.sp, fontWeight = FontWeight.Bold, color = Color.White, modifier = Modifier.padding(horizontal = 24.dp) ) // Next Fact button  Button(onClick = { // (4)  // On button click, show next fact and change background color index = (index + 1) % facts.size  bgColor = randomColor()  }) { Text("Next Fun Fact") } } }}// Helper function to pick a random color from a set of predefined colorsfun randomColor(): Color { // (5) val colors = listOf( Color(0xFF673AB7), // Purple Color(0xFF009688), // Teal Color(0xFFFF5722), // Orange Color(0xFF607D8B) // Blue Gray ) return colors[Random.nextInt(colors.size)]}

我们来理解一下它的作用:

在(1)处:在onCreate中,我们调用setContent { FunFactApp() }。这告诉Android使用可组合函数FunFactApp()来设置Activity的UI。

在(2)处:在FunFactApp()内部,我们以声明方式定义UI。我们准备了两个列表:emojis和facts,每个包含四个项目。应用将显示一个表情符号和一个对应的事实(两者索引相同)。

在(3)处:我们使用一个Box,它占据整个屏幕(fillMaxSize())并将其背景设置为当前的bgColor。在方框内,我们居中放置一个Column。该列将其子项垂直排列,水平居中,每个子项之间有24dp的间距。这为我们提供了一个间距良好的堆栈:表情符号、事实文本和按钮。

在(4)处:最后一个子项是Button。当用户点击它时(onClicklambda),我们更新状态:增加索引(使用模运算在最后一个事实后回到0)并将bgColor设置为新的随机颜色。

在(5)处:在底部,我们定义了randomColor(),它只是从一小组预定义颜色值中随机选择一种颜色返回。

现在你已经用我们的应用代码替换了模板代码,下面我们运行应用程序。

步骤3:在Android模拟器运行

启动你的应用:

  1. 在Android Studio的工具栏中,点击设备选择下拉菜单(运行按钮旁边)。

  2. 选择你之前创建的XR头戴设备模拟器。

  3. 点击绿色的运行按钮(▶)。

你的应用现在正在模拟器运行。预期结果:你应该看到一个彩色屏幕,包含:

  • 顶部一个大表情符号。

  • 下面有一段白色趣味事实文本:“Quest has a built-in web browser for surfing in VR/Quest有一个用于在VR中冲浪的内置网络浏览器”

  • 底部有一个“Next Fun Fact/下一个有趣事实”按钮。

  • 一个随机选择的彩色背景。

启用鼠标和键盘控制

XR模拟器目前仅支持鼠标和键盘输入。在你与应用交互之前,需要激活输入控制。XR模拟器目前仅支持鼠标和键盘;不支持触摸或控制器模拟。

如何启用:

  • 在模拟器窗口右侧寻找工具栏。

  • 点击键盘和鼠标图标以启用鼠标和键盘输入。

  • 键盘图标应高亮显示,表示控件已激活。

使用Kotlin为Meta Quest构建你的第一个Android应用

现在你可以交互了:将鼠标移到模拟器窗口;你会看到指针出现在虚拟空间中。

点击“Next FunFact”按钮多次。查看表情符号和文本在所有4个事实中循环,同时背景颜色随机变化。

福利:像在Quest头戴设备中一样环顾四周

AndroidXR模拟器将你的应用呈现在3D虚拟空间中,模拟它如何出现在Quest头戴设备内部。你可以使用右侧工具栏中的控件模仿自然的头部运动:

使用Kotlin为Meta Quest构建你的第一个Android应用

  • 平移:点击十字箭头图标并拖动鼠标来上下左右移动视图。

  • 推拉:使用带箭头的放大镜图标进行缩放。

  • 旋转:点击旋转图标模拟向左或向右转头。

  • 重置视图:使用全屏箭头图标立即返回到默认的正面视图。

在XR模拟器中启用模拟透视模式

为了模拟Meta Quest设备可用的混合现实体验,AndroidXR模拟器包含一个透视模式开关。你可以从模拟器的侧边工具栏激活它。

使用Kotlin为Meta Quest构建你的第一个Android应用

当启用时,模拟器会将默认背景替换为模拟的室内房间环境,帮助你预览你的面板在混合现实设置中(即真实世界背景+虚拟面板)的外观。

使用Kotlin为Meta Quest构建你的第一个Android应用

如果模拟器感觉卡顿,这是正常的;Quest物理硬件设备运行要流畅得多。如果你使用的是Windows,请在运行模拟器之前保存你的工作。

步骤4:部署到你的Quest头戴设备

现在是真正的VR体验。在实际的Quest硬件上运行能揭示你应用的真正潜力。

A.在Quest启用开发者模式

先决条件:

  • 已与Meta Quest手机应用配对的Quest设备。

  • Meta开发者帐户(免费)。

步骤:

  • 在你的手机打开Meta Quest手机应用。

  • 点击☰汉堡菜单→设备。

  • 选择你的Quest头戴设备。

  • 进入头戴设备设置→开发者模式。

  • 将开发者模式切换为开启。

B.将你的Quest设备接到电脑

  • 插入USB-C线:将Quest连接到你的开发机器。

  • 戴上头戴设备:你会看到一个提示:“允许USB调试吗?”

  • 点击始终允许从此计算机调试。

使用Kotlin为Meta Quest构建你的第一个Android应用

  • 验证连接:你的Quest现在应该出现在Android Studio的设备选择下拉菜单中。

故障排除:如果设备未出现,请在终端中运行adbdevices以确认ADB识别。

C.在Quest运行应用

  • 在Android Studio中,从设备下拉菜单中选择你的Quest设备。

  • 点击运行按钮(▶)。Android Studio将通过ADB安装APK。

  • 戴上你的头戴设备。

使用Kotlin为Meta Quest构建你的第一个Android应用

你应该会看到你的应用面板漂浮在Quest主环境的你面前。

如何交互?你可以指向你的Quest控制器(或使用手部追踪)与应用交互,就像在触摸屏上一样。

你会看到什么:

你的应用显示为一个狭窄的、纵向定向的面板,漂浮在Quest主环境中。它看起来局促且像手机,尚未针对VR优化。

为什么?Android应用默认使用手机尺寸(360dp x 640dp),这在VR中感觉很小。

步骤5:为VR优化面板尺寸

令这个应用适应VR。Meta建议设置明确的面板尺寸:高度640dp×宽度1024dp。这能创造舒适、横向的浏览体验。

如何设置面板尺寸:

打开AndroidManifest.xml。

找到你的标签(应该是MainActivity)。

在activity内部添加这个子标签:

 ... 

再次在你的Meta Quest头戴设备运行应用。

变化:

你的应用现在显示为更宽、横向的面板;更容易阅读和交互。表情符号更大,文本更易读,按钮的位置感觉更自然。

专业功能:

你可以并排启动应用的多个实例。尝试从Quest主菜单打开两次你的应用;你会看到两个面板独立漂浮,就像在桌面上进行多任务处理一样。

福利:将你的Quest显示画面投射到电脑

厌倦了每次测试都要戴上头戴设备吗?使用Meta Quest开发者中心将你的Quest显示画面投屏到你的电脑。这允许你直接在PC看到头戴设备的屏幕。

如何投屏:

  • 启动Meta Quest开发者中心。

  • 点击左侧边栏中的设备管理器。

  • 确保你的Quest显示为“活动”状态。

使用Kotlin为Meta Quest构建你的第一个Android应用

  • 在设备操作部分,点击投屏。

使用Kotlin为Meta Quest构建你的第一个Android应用

这将打开一个新窗口,显示你的Quest屏幕。你可以使用键盘环顾四周。

好处:

  • 无需持续佩戴头戴设备进行测试。

  • 更容易为文档截取截图。

  • 非常适合向同事或客户演示。

注意:你依然需要使用Quest控制器或手部追踪与应用交互;投屏仅用于显示。

你已经取得的成就

恭喜你!你刚刚利用标准的Android开发技能,为Meta Quest构建并部署了一个功能完整的VR应用。VR开发的世界现在已向你敞开,你不必为了进入这个世界而学习游戏引擎或重新发明轮子。

本文链接https://news.nweon.com/136993
转载须知:转载摘编需注明来源映维网并保留本文链接
素材版权:除额外说明,文章所用图片、视频均来自文章关联个人、企业实体等提供
QQ交流群苹果Vision  |  Meta Quest  |  AR/VR开发者  |  映维粉丝读者
XR 招聘Job
XR Wechat Group/微信群

您可能还喜欢...

资讯