在 FydeOS 下開(kāi)發(fā)調(diào)試安卓程序指北

前言

自 2016 年 Google 宣布將安卓運(yùn)行環(huán)境加入 Chrome OS 起,安卓生態(tài)又多了一種全新的入口 - 適配大屏幕及鍵鼠操作的桌面環(huán)安卓程序。在過(guò)去的 2 年內(nèi),Google 對(duì) Chrome OS 上的安卓環(huán)境做了不少改進(jìn)以鼓勵(lì)更多的廠商和開(kāi)發(fā)者能參與其中。今年 5 月,由 Google 主導(dǎo)的 Project Crostini 開(kāi)源項(xiàng)目給 Chrome OS 加入了更接近原生 Linux 的使用體驗(yàn),使在 Chrome OS 上完成日常的開(kāi)發(fā)和調(diào)試工作成為可能。

在今年的年度谷歌開(kāi)發(fā)者大會(huì)(Google io)上,我們?cè)凇?a target="_blank" rel="nofollow">What's new in Android apps for Chrome OS」的演講里看到了搭載 Chrome OS 的 Google Pixelbook 實(shí)現(xiàn)了對(duì)類似 Android Studio 這樣大型 Linux 程序的支持并且可以通過(guò) adb 和機(jī)載的安卓環(huán)境直接調(diào)試編譯出來(lái)的安卓程序,這對(duì)桌面安卓生態(tài)的推進(jìn)有著里程碑式的作用。

FydeOS 是一款基于 Chromium OS 二次開(kāi)發(fā)的桌面操作系統(tǒng)產(chǎn)品,對(duì)系統(tǒng)內(nèi)原本強(qiáng)綁定的 Google 服務(wù)進(jìn)行了解耦,并加入自主研發(fā)的模塊和優(yōu)化,適配更多硬件品類,使更多用戶可以在中國(guó)大陸地區(qū)無(wú)障礙地使用。

本文之后的內(nèi)容重點(diǎn)介紹如何在 FydeOS 中啟用 Linux(測(cè)試版)、安裝并運(yùn)行 Linux 程序并配合機(jī)載的安卓環(huán)境實(shí)現(xiàn)和在 Google io 上 Chrome OS + Pixelbook 展示的高效(不借助任何模擬器或虛擬機(jī))調(diào)試安卓程序的功能。


0. 硬件要求

  • 最低配置

    由于 Android Studio 等大型 IDE 程序?qū)ο到y(tǒng)性能要求較高,所以我們推薦將 FydeOS 安裝至優(yōu)于入門級(jí)別的硬件設(shè)備上。以下為我們測(cè)試用的 PC 配置,僅供參考:

    • Intel Ivy-Bridge i5-3427U 1.8GHz
    • 4GB RAM (偶爾會(huì)出現(xiàn)內(nèi)存不足的狀況,故建議 8GB RAM)
    • 集成 Intel HD Graphics 4000
    • 128GB SSD
  • 不兼容情況

    • 目前 FydeOS(公測(cè)版)的安卓環(huán)境僅能兼容 Intel 系列的顯卡
    • 由于 Project Crostini 的架構(gòu)設(shè)計(jì)采用了虛擬機(jī) + 容器的結(jié)構(gòu),故需要 CPU 有針對(duì)硬件虛擬化(VT-x)的支持。除了 BayTrail 家族之外,大部分中高端 Intel CPU 均攜帶有此功能。


1. 準(zhǔn)備工作

下載、燒寫 FydeOS 并將其裝入硬盤。FydeOS 官網(wǎng)和知識(shí)庫(kù)有較為詳盡的說(shuō)明,這里不再贅述。

  • FydeOS 官方下載地址在此,亦可在中文社區(qū)內(nèi)獲取國(guó)內(nèi)網(wǎng)盤鏡像。
  • 燒寫 FydeOS 至移動(dòng)存儲(chǔ)設(shè)備并引導(dǎo)啟動(dòng)的說(shuō)明在此。
  • 若條件允許,可以根據(jù)此教程將 FydeOS 作為唯一系統(tǒng)安裝進(jìn) PC 里,使其獨(dú)占一整塊硬盤;或者可以根據(jù)此教程將 FydeOS 作為第二系統(tǒng)與其它系統(tǒng)共存。


2. 啟用 Linux(測(cè)試版)

點(diǎn)擊「設(shè)置」,并找到關(guān)于「Linux(測(cè)試版)」的相關(guān)設(shè)置項(xiàng),如下圖:


FydeOS 設(shè)置

點(diǎn)擊「啟用」,在彈出的提示框上點(diǎn)擊「安裝」:


安裝 Terminal

根據(jù)您的硬件配置,首次安裝并啟用 Linux(測(cè)試版)需要等待幾分鐘時(shí)間。待安裝完畢后,F(xiàn)ydeOS 會(huì)在應(yīng)用程序啟動(dòng)器內(nèi)(點(diǎn)擊屏幕左下角??進(jìn)入)添加一個(gè)叫「Terminal」的新程序,點(diǎn)擊圖標(biāo)即可啟動(dòng):


Terminal

可見(jiàn),這是一個(gè)功能完整的 Debian 9 (Stretch)。相比起 FydeOS 自帶的 Crosh Shell,這個(gè) Terminal 擁有自己完整而獨(dú)立的文件系統(tǒng),我們可以在里面進(jìn)行日常熟悉的 Linux 操作。FydeOS 已經(jīng)將默認(rèn)的 apt 軟件源設(shè)置成國(guó)內(nèi)阿里云的鏡像,您亦可根據(jù)自己的喜好替換。您可以通過(guò)以下命令對(duì)該 Debian 進(jìn)行更新并安裝一些常用的工具:

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

FydeOS 已經(jīng)將 Linux(測(cè)試版)內(nèi)的用戶文件夾映射到系統(tǒng)自帶文件管理器里,通過(guò)程序啟動(dòng)器內(nèi)的「文件」程序,我們可以看到 FydeOS 已經(jīng)添加了「Linux 文件」這個(gè)新的選項(xiàng),并且和 Terminal 中的 home 文件夾是一致的:


Linux 文件


3. 下載、運(yùn)行 Android Studio 并安裝附屬工具

我們需要到官方網(wǎng)站 developer.android.com 上下載適配 Linux 的 Android Studio:

下載 Android Studio

這里可以通過(guò)瀏覽器直接下載 zip 包,完成后在「文件」程序內(nèi)將其復(fù)制到「Linux 文件」內(nèi);亦可復(fù)制下載鏈接直接在 Terminal 內(nèi)用命令行下載:

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

完成后,我們需要解壓縮該 zip 包并運(yùn)行啟動(dòng)腳本即可啟用 Android Studio:

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

可見(jiàn) Android Studio 圖形界面隨即啟動(dòng),體驗(yàn)上與在其它 Linux 發(fā)行版上并無(wú)明顯差距。此時(shí)需根據(jù)屏幕提示對(duì) Android Studio 進(jìn)行初始化設(shè)置,并且下載所需要的 SDK 和附屬工具集。


4. 啟用 FydeOS 的安卓環(huán)境

在 FydeOS 運(yùn)行幾分鐘之后,系統(tǒng)會(huì)自動(dòng)從 FydeOS 的服務(wù)器上拉取最新版本的系統(tǒng)所需組件,這其中就包括「FydeOS 安卓設(shè)置」。欲激活并啟用 FydeOS 的安卓運(yùn)行環(huán)境,需在「程序啟動(dòng)器」內(nèi)運(yùn)行「FydeOS 安卓設(shè)置」,同意相關(guān)使用協(xié)議,隨即 FydeOS 的安卓子系統(tǒng)「設(shè)置」程序便啟動(dòng)了。

目前 FydeOS 并未攜帶 Google 服務(wù)框架及 Play Store 等由 Google 提供的應(yīng)用市場(chǎng)。如需安裝安卓應(yīng)用程序,用戶可以自行下載第三方安卓市場(chǎng)程序或者直接下載 .apk 文件安裝之。已經(jīng)安裝成功的安卓應(yīng)用程序會(huì)自動(dòng)出現(xiàn)在「程序啟動(dòng)器」內(nèi)。

為了開(kāi)發(fā)調(diào)試的需要,我們需要啟動(dòng) FydeOS 安卓子系統(tǒng)的「adb調(diào)試」功能。具體做法是,點(diǎn)擊「FydeOS 安卓設(shè)置」開(kāi)啟安卓子系統(tǒng)的「設(shè)置」 - 「關(guān)于設(shè)備」 - 連續(xù)點(diǎn)擊「版本號(hào)」7 次 - 退回上一級(jí)菜單并選擇「開(kāi)發(fā)者選項(xiàng)」 - 開(kāi)啟「ADB 調(diào)試」:


開(kāi)啟 ADB 調(diào)試


5. 在 Linux 環(huán)境中連接 ABD 目標(biāo)

我們需要讓 FydeOS 的安卓子系統(tǒng)與 Android Studio 建立 ADB 連接。

具體做法是,在 Android Studio 運(yùn)行的時(shí)候,右鍵點(diǎn)擊任務(wù)欄的「Terminal」圖標(biāo),選擇「打開(kāi)新的窗口」。在新的 Terminal 會(huì)話中運(yùn)行以下命令:

sudo apt-get install adb
adb connect 100.115.92.2:5555

此時(shí),安卓子系統(tǒng)會(huì)收到相應(yīng)的 ADB 連接請(qǐng)求,并彈出確認(rèn)窗口,您需要點(diǎn)擊「確定」同意該連接請(qǐng)求:


同意 ADB 調(diào)試


6. 在 Android Studio 編譯并調(diào)試安卓程序

完成以上步驟之后,Android Studio 會(huì)自動(dòng)添加一個(gè)可用來(lái)調(diào)試的「Connected devices」。我們只需要像往常一樣 checkout 一個(gè)可編譯的安卓程序項(xiàng)目,完成 Sync 和 Build 之后,點(diǎn)擊「Run」,在彈出的「Connected devices」對(duì)話框中選擇之前通過(guò) ADB 連接的安卓子系統(tǒng),即可實(shí)現(xiàn)實(shí)時(shí)調(diào)試:


調(diào)試


7. 常見(jiàn)問(wèn)題及去哪里尋求幫助

Q: 我的「Connected devices」里面為空怎么辦?

A: 可在一個(gè)新的 Terminal 會(huì)話中停止 ADB 并重新連接:

adb kill-server
adb connect 100.115.92.2:5555


Q: 我的 Android Studio 閃退了怎么辦?

A: 可以關(guān)注一下在「Linux 文件」下生成的 java_error_in_STUDIO_xxxx.log 日志文件,多數(shù)情況下是因?yàn)閮?nèi)存不足造成的。

更多關(guān)于 FydeOS 及 Linux(測(cè)試版)的使用技巧,請(qǐng)參閱 FydeOS 知識(shí)庫(kù)

如還有更具體的技術(shù)問(wèn)題,可以到 FydeOS 中文社區(qū) 發(fā)帖求助。


8. 參考文獻(xiàn)

https://chromium.googlesource.com/chromiumos/docs/+/master/containers_and_vms.md
https://developer.android.com/topic/arc/studio

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,041評(píng)論 2 59
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,153評(píng)論 25 708
  • 1、制作櫥柜門。打開(kāi)一個(gè)新的C4D文件(目的,受場(chǎng)景模型干擾,能在世界中心建模,相當(dāng)于3DMAX的孤立模式吧)。 ...
    DIGITALMAN閱讀 4,458評(píng)論 15 27
  • 民國(guó)十年 父親是一個(gè)地地道道的農(nóng)民,不過(guò)以前學(xué)過(guò)木工,也就有了這第二個(gè)身份,木匠。白天下地照顧那僅有的二畝三分地,...
    門后有人閱讀 565評(píng)論 4 9

友情鏈接更多精彩內(nèi)容