在 FydeOS 下开发调试安卓程序指北
此内容尚不支持你的语言。
上次更新:2022-08-24
前言
自 2016 年 Google 宣布将安卓运行环境加入 Chrome OS 起,安卓生态又多了一种全新的入口 - 适配大屏幕及键鼠操作的桌面环安卓程序。在过去的几年内,Google 对 Chrome OS 上的安卓环境做了不少改进以鼓励更多的厂商和开发者能参与其中。2018 年 5 月,由 Google 主导的 Project Crostini 开源项目给 Chrome OS 加入了更接近原生 Linux 的使用体验,使在 Chrome OS 上完成日常的开发和调试工作成为可能。
在 2018 年的年度谷歌开发者大会(Google io)上,我们在「What’s new in Android apps for Chrome OS」的演讲里看到了搭载 Chrome OS 的 Google Pixelbook 实现了对类似 Android Studio 这样大型 Linux 程序的支持并且可以通过 adb 和机载的安卓环境直接调试编译出来的安卓程序,这对桌面安卓生态的推进有着里程碑式的作用。
FydeOS 是一款基于 Chromium OS 二次开发的桌面操作系统产品,对系统内原本强绑定的 Google 服务进行了解耦,并加入自主研发的模块和优化,适配更多硬件品类,使更多用户可以在中国大陆地区无障碍地使用。
本文之后的内容重点介绍如何在 FydeOS 中启用 Linux 子系统、安装并运行 Linux 程序并配合机载的安卓环境实现和在 Google io 上 Chrome OS + Pixelbook 展示的高效(不借助任何模拟器或虚拟机)调试安卓程序的功能。
0. 硬件要求
-
最低配置
由于 Android Studio 等大型 IDE 程序对系统性能要求较高,所以我们推荐将 FydeOS 安装至优于入门级别的硬件设备上。
-
不兼容情况
- 目前 FydeOS(公测版)的安卓环境仅能兼容 Intel 系列的显卡
- 由于 Project Crostini 的架构设计采用了虚拟机 + 容器的结构,故需要 CPU 有针对硬件虚拟化(VT-x)的支持。除了 BayTrail 家族之外,大部分中高端 Intel CPU 均携带有此功能。
1. 准备工作
下载、烧写 FydeOS 并将其装入硬盘。FydeOS 官网和知识库有较为详尽的说明,这里不再赘述。
- FydeOS 官方下载地址在此。
- 烧写 FydeOS 至移动存储设备并引导启动的说明在此。
- 若条件允许,你可以将 FydeOS 作为唯一系统安装进 PC 里,使其独占一整块硬盘;或者可以根据此教程将 FydeOS 作为第二系统与其他系统共存。
2. 开启安卓 ADB Debugging 设置
-
在程序启动器内打开「安卓设置」
-
选择「系统」 - 「开发者选项」 - 开启「ADB 调试」
-
目前 FydeOS 并未携带 Google 服务框架及 Play Store 等由 Google 提供的应用市场。如需安装安卓应用程序,用户可以自行下载第三方安卓市场程序或者直接下载 .apk 文件安装之。已经安装成功的安卓应用程序会自动出现在「程序启动器」内。
3. 启用 Linux 子系统
点击「设置」,并找到关于「Linux 子系统」的相关设置项,如下图:
点击「启用」,在弹出的提示框上点击「安装」:
根据你的硬件配置,首次安装并启用 Linux 子系统需要等待几分钟时间。待安装完毕后,会自动弹出「Terminal」的新程序。
可见,这是一个功能完整的 Debian 11 (bullseye)。相比起 FydeOS 自带的 Crosh Shell,这个 Terminal 拥有自己完整而独立的文件系统,我们可以在里面进行日常熟悉的 Linux 操作。FydeOS 已经将默认的 apt 软件源设置成国内阿里云的镜像,你亦可根据自己的喜好替换。你可以通过以下命令对该 Debian 进行更新并安装一些常用的工具:
FydeOS 已经将 Linux 子系统内的用户文件夹映射到系统自带文件管理器里,通过程序启动器内的「文件」程序,我们可以看到 FydeOS 已经添加了「Linux 文件」这个新的选项,并且和 Terminal 中的 home 文件夹是一致的:
4. 下载、运行 Android Studio 并安装附属工具
我们需要到官方网站 developer.android.com 上下载适配 ChromeOS 的 Android Studio:
这里可以通过浏览器直接下载 deb 包,下载完成后在「文件」程序中双击,点击安装。
安装完成后 Android Studio 图形界面随即启动,体验上与在其他 Linux 发行版上并无明显差距。此时需根据屏幕提示对 Android Studio 进行初始化设置,并且下载所需要的 SDK 和附属工具集。
5. 在 Linux 环境中连接 ADB 目标
我们需要让 FydeOS 的安卓子系统与 Android Studio 建立 ADB 连接。
具体做法是,在 Android Studio 运行的时候,右键点击任务栏的「Terminal」图标,选择「打开新的窗口」。在新的 Terminal 会话中运行以下命令:
此时,安卓子系统会收到相应的 ADB 连接请求,并弹出确认窗口,你需要点击「确定」同意该连接请求:
6. 在 Android Studio 编译并调试安卓程序
完成以上步骤之后,Android Studio 会自动添加一个可用来调试的「Connected devices」。我们只需要像往常一样 checkout 一个可编译的安卓程序项目,完成 Sync 和 Build 之后,点击「Run」,在弹出的「Connected devices」对话框中选择之前通过 ADB 连接的安卓子系统,即可实现实时调试:
你也可以通过终端使用下列 ADB 命令来安装安卓应用:
7. 通过网络连接 ADB
- 确保 ADB debugging 选项处于开启状态。
- 获取设备的 IP 地址:
- 点击桌面右下角的时钟模块。
- 展开网络列表。
- 点击网络信息查看当前 IP 地址。
- 连接到你的 FydeOS 设备:
返回到你的开发机器,并使用 ADB 连接到你的 FydeOS 设备: 在 FydeOS 设备上同意授权,就可以使用 ADB 远程调试啦~
8. 常见问题及去哪里寻求帮助
Q: 我的「Connected devices」里面为空怎么办?
A: 可在一个新的 Terminal 会话中停止 ADB 并重新连接:
Q: 我的 Android Studio 闪退了怎么办?
A: 可以关注一下在「Linux 文件」下生成的 java_error_in_STUDIO_xxxx.log
日志文件,多数情况下是因为内存不足造成的。
更多关于 FydeOS 及 Linux 子系统的使用技巧,请参阅 FydeOS 常见问题 & 知识库。
如还有更具体的技术问题,可以到 FydeOS 社区 发帖求助。
8. 参考文献
https://chromium.googlesource.com/chromiumos/docs/+/master/containers_and_vms.md https://developer.android.com/topic/arc/studio