在 FydeOS 下开发调试安卓程序指北

前言

自 2016 年 Google 宣布将安卓运行环境加入 Chrome OS 起,安卓生态又多了一种全新的入口 - 适配大屏幕及键鼠操作的桌面环安卓程序。在过去的 2 年内,Google 对 Chrome OS 上的安卓环境做了不少改进以鼓励更多的厂商和开发者能参与其中。今年 5 月,由 Google 主导的 Project Crostini 开源项目给 Chrome OS 加入了更接近原生 Linux 的使用体验,使在 Chrome OS 上完成日常的开发和调试工作成为可能。

在今年的年度谷歌开发者大会(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 安装至优于入门级别的硬件设备上。以下为我们测试用的 PC 配置,仅供参考:

    • Intel Ivy-Bridge i5-3427U 1.8GHz
    • 4GB RAM (偶尔会出现内存不足的状况,故建议 8GB RAM)
    • 集成 Intel HD Graphics 4000
    • 128GB SSD
  • 不兼容情况

    • 目前 FydeOS(公测版)的安卓环境仅能兼容 Intel 系列的显卡
    • 由于 Project Crostini 的架构设计采用了虚拟机 + 容器的结构,故需要 CPU 有针对硬件虚拟化(VT-x)的支持。除了 BayTrail 家族之外,大部分中高端 Intel CPU 均携带有此功能。


1. 准备工作

下载、烧写 FydeOS 并将其装入硬盘。FydeOS 官网和知识库有较为详尽的说明,这里不再赘述。

  • FydeOS 官方下载地址在此,亦可在中文社区内获取国内网盘镜像。
  • 烧写 FydeOS 至移动存储设备并引导启动的说明在此
  • 若条件允许,可以根据此教程将 FydeOS 作为唯一系统安装进 PC 里,使其独占一整块硬盘;或者可以根据此教程将 FydeOS 作为第二系统与其它系统共存。


2. 启用 Linux(测试版)

点击「设置」,并找到关于「Linux(测试版)」的相关设置项,如下图:


FydeOS 设置

点击「启用」,在弹出的提示框上点击「安装」:


安装 Terminal

根据您的硬件配置,首次安装并启用 Linux(测试版)需要等待几分钟时间。待安装完毕后,FydeOS 会在应用程序启动器内(点击屏幕左下角⭕️进入)添加一个叫「Terminal」的新程序,点击图标即可启动:


Terminal

可见,这是一个功能完整的 Debian 9 (Stretch)。相比起 FydeOS 自带的 Crosh Shell,这个 Terminal 拥有自己完整而独立的文件系统,我们可以在里面进行日常熟悉的 Linux 操作。FydeOS 已经将默认的 apt 软件源设置成国内阿里云的镜像,您亦可根据自己的喜好替换。您可以通过以下命令对该 Debian 进行更新并安装一些常用的工具:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install wget unzip nano

FydeOS 已经将 Linux(测试版)内的用户文件夹映射到系统自带文件管理器里,通过程序启动器内的「文件」程序,我们可以看到 FydeOS 已经添加了「Linux 文件」这个新的选项,并且和 Terminal 中的 home 文件夹是一致的:


Linux 文件


3. 下载、运行 Android Studio 并安装附属工具

我们需要到官方网站 developer.android.com 上下载适配 Linux 的 Android Studio:

下载 Android Studio

这里可以通过浏览器直接下载 zip 包,完成后在「文件」程序内将其复制到「Linux 文件」内;亦可复制下载链接直接在 Terminal 内用命令行下载:

wget https://dl.google.com/dl/android/studio/ide-zips/3.1.4.0/android-studio-ide-173.4907809-linux.zip

完成后,我们需要解压缩该 zip 包并运行启动脚本即可启用 Android Studio:

cd /path/to/your/download/dir
unzip android-studio-ide-173.4907809-linux.zip
./android-studio/bin/studio.sh

可见 Android Studio 图形界面随即启动,体验上与在其它 Linux 发行版上并无明显差距。此时需根据屏幕提示对 Android Studio 进行初始化设置,并且下载所需要的 SDK 和附属工具集。


4. 启用 FydeOS 的安卓环境

在 FydeOS 运行几分钟之后,系统会自动从 FydeOS 的服务器上拉取最新版本的系统所需组件,这其中就包括「FydeOS 安卓设置」。欲激活并启用 FydeOS 的安卓运行环境,需在「程序启动器」内运行「FydeOS 安卓设置」,同意相关使用协议,随即 FydeOS 的安卓子系统「设置」程序便启动了。

目前 FydeOS 并未携带 Google 服务框架及 Play Store 等由 Google 提供的应用市场。如需安装安卓应用程序,用户可以自行下载第三方安卓市场程序或者直接下载 .apk 文件安装之。已经安装成功的安卓应用程序会自动出现在「程序启动器」内。

为了开发调试的需要,我们需要启动 FydeOS 安卓子系统的「adb调试」功能。具体做法是,点击「FydeOS 安卓设置」开启安卓子系统的「设置」 - 「关于设备」 - 连续点击「版本号」7 次 - 退回上一级菜单并选择「开发者选项」 - 开启「ADB 调试」:


开启 ADB 调试


5. 在 Linux 环境中连接 ABD 目标

我们需要让 FydeOS 的安卓子系统与 Android Studio 建立 ADB 连接。

具体做法是,在 Android Studio 运行的时候,右键点击任务栏的「Terminal」图标,选择「打开新的窗口」。在新的 Terminal 会话中运行以下命令:

sudo apt-get install adb
adb connect 100.115.92.2:5555

此时,安卓子系统会收到相应的 ADB 连接请求,并弹出确认窗口,您需要点击「确定」同意该连接请求:


同意 ADB 调试


6. 在 Android Studio 编译并调试安卓程序

完成以上步骤之后,Android Studio 会自动添加一个可用来调试的「Connected devices」。我们只需要像往常一样 checkout 一个可编译的安卓程序项目,完成 Sync 和 Build 之后,点击「Run」,在弹出的「Connected devices」对话框中选择之前通过 ADB 连接的安卓子系统,即可实现实时调试:


调试


7. 常见问题及去哪里寻求帮助

Q: 我的「Connected devices」里面为空怎么办?

A: 可在一个新的 Terminal 会话中停止 ADB 并重新连接:

adb kill-server
adb connect 100.115.92.2:5555


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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,711评论 2 59
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,061评论 25 707
  • 1、制作橱柜门。打开一个新的C4D文件(目的,受场景模型干扰,能在世界中心建模,相当于3DMAX的孤立模式吧)。 ...
    DIGITALMAN阅读 4,273评论 15 27
  • 民国十年 父亲是一个地地道道的农民,不过以前学过木工,也就有了这第二个身份,木匠。白天下地照顾那仅有的二亩三分地,...
    门后有人阅读 473评论 4 9