瞭解 Android 開發作業的未來發展,包括 Android Studio 和 Android CLI 終端機。本課程將介紹 Android Studio Canary 和穩定版的最新功能,包括 AI 輔助程式碼遷移、Compose 和代理用戶端通訊協定 (ACP) 支援,以及 Lightbuild 的宣告式架構。我們也會深入探討 Android CLI 工具鍊的最新更新。瞭解如何運用這項功能,自動執行內部迴圈工作流程,並提升裝置存取權、本機和實際工作環境產品問題診斷工具,以及剖析工作流程,讓代理測試及驗證最佳化等。
轉錄稿
首先介紹最基本的工具:Android CLI。
隨著程式設計代理在日常工作流程中扮演更重要的角色,您需要針對代理運作方式最佳化的工具。
傳統指令列工具通常需要人工解讀、手動輸入,或功能有限,無法真正發揮代理的能力。
Android CLI 是專為現代代理打造的現代化解決方案,提供可預測的指令、結構化輸出內容、零互動提示,以及越來越多的功能,可透過 Agent Assist,推動更深入的開發人員工作流程。
這項工具是 Android 開發人員體驗的基礎,可支援多種代理環境,包括終端機中的 Claude Code、Google Antigravity 和 Android Studio。
我們將以 Pocket Casts 為例,說明實際運作方式。
這是一款開放原始碼的 Podcast 應用程式,擁有數百萬名使用者,包括我。
我用它來播放音訊和影片,以及同步處理背景,而且它有一個包含 40 個模組的程式碼集。
接下來,我會將時間交給 Esteban,由他帶領大家瞭解 Android CLI 的功能。
謝謝 Adarsh。
好的,接下來我們要切換到 AI 即時示範。
可能發生什麼問題?
今天我們會從頭開始示範,從 CLI 一路到 Android Studio。
不過,我會以真正的 CLI 方式,在終端機中顯示議程。
首先,我想向各位展示 Android CLI 的新功能。
我當然有安裝 Android CLI。
這些是指令的文字。
不過,我今天為我們新增了 ADS 旗標。
因此,我想向各位展示自 Google I/O 大會宣布這項工具以來,我們所做的努力。
我們新增了許多指令。
在所有示範中,您都會看到這些指令的實際運作情形。
不過,我們現在可以分析 APK,檢查 R8 的設定情況,因此代理可以檢查 APK 或 AAB 是否正確。
我們新增了登入 Google 服務的功能,方便您存取特定工具,稍後我會向您展示。
我們已新增功能,讓 Android CLI 瞭解如何建構專案。
當然,您可以使用 Gradle 或任何建構工具,在指令列中建構,但為什麼 Android CLI 必須知道如何建構?
我們推出了預覽指令,可讓您直接在終端機上轉譯 Compose 預覽畫面,不必使用 Android Studio。
因此,Android CLI 必須建構。
您可以使用這項功能。
我們也推出新的裝置指令,稍後會向各位展示。這項指令可讓您租用實體遠端裝置,並鏡像螢幕畫面。
我們稍後會看到。
我們推出新的輸入指令,可讓您操控應用程式。
當然,您可以使用 UI Automator 和其他現有 API,但這可讓代理不必處理太多細節,並提高與應用程式互動的速度。
如前所述,我們有預覽指令。
我們有新的安裝指令。
當然,您可以使用 ADB,但這會帶來 Android Studio 部署的功能,只會推送已變更的 APK。
因此,如果您有一個 500 MB 的大型 APK,且您變更了其中一個檔案,系統只會推送變更的部分。
我們新增了信號指令,方便您查看 Crashlytics 中的當機情形,以及所有可下載的正式環境資料和堆積轉儲,讓代理能...我們馬上就會看到。
我們也推出新的分析器指令,可讓您輕鬆分析、擷取系統追蹤記錄,或在指令列中擷取記憶體快照資料。
我們稍後會實際操作。
好的。
開始動手吧!
首先要介紹的是 Android 裝置遠端模型指令,登入後,您可以使用這個指令列出所有可租用的裝置。
這些都是我可以租用的裝置。
我原本打算在實體遠端裝置上進行這項示範,但不想冒太大風險,因此決定使用手邊的實體裝置。
為了向您展示所有實體裝置,我們推出一項名為 Device Hub 的新指令,可鏡像投放連結裝置、遠端裝置或模擬器的畫面。
我會讓這個畫面保持開啟,方便大家查看手機上的情況。
好,第一個示範。
我會先開始,然後播放高科技投影片,並說明這項功能的作用。
因此,我不想在示範時先啟動,然後像烘焙節目那樣,把蛋糕放進烤箱後,再說「這就是成品」。
以前從來沒有這樣過。
所以,這將會是一個真實的東西。
現在,這個外掛程式會嘗試透過 Crashlytics 列出應用程式的當機情形。
我來開啟應用程式。
列出所有當機事件,並選取其中一個。
系統會嘗試重現問題。
我知道這起墜機事件。
當使用者輕觸兩下「我忘記密碼」時,應用程式就會當機。
現在,代理會嘗試使用輸入指令重現該問題,而應用程式會當機。
因此,我調整了 AGENTS.md,讓它執行兩項作業。
首先,我已預先建構好所有內容,因此我們不必觀看建構應用程式的過程。
這會很無聊。
它在鄰近檔案中找到修正程式,因此已修正問題,並將再次使用部署和輸入指令,嘗試重現當機情形。
應用程式已安裝完成,現在應該會前往「我忘記密碼」畫面。
太棒了!
接著,它會輕觸兩下新的「我忘記密碼」按鈕,希望不會當機,並進入「輸入電子郵件地址以重設密碼」畫面。
好,我們到了。
如果確實已修正,請勿當機。
有了
錯誤已修正。
現在,我稍微調整了 AGENTS.md,請它「顯示你用來完成這項操作的所有 Android CLI 指令」。
而且會彈出。
因此,系統會使用 Android 信號列出當機情形。
它使用 Android 安裝指令安裝 APK,並使用輸入輕觸指令前往該畫面。
雖然可以建構,但可能已呼叫 Gradle。
就是這麼簡單
我們剛才在大約 1 分 42 秒內修正了當機問題。
下一個目標稍微困難一點。
現在就開始吧。
有了
因此,我想縮短 Pocket Casts 的應用程式啟動時間。
對此,我只會說:「嘿,我想我們可以,你知道,啟動速度可以更快,閱讀文件,讓它更快。」
這項操作會剖析應用程式。
希望這能變更基準設定檔。
系統會重新建構應用程式、再次執行、剖析、比較兩個追蹤記錄,並告訴我是否有任何改善。
這項作業約需 2 分鐘,因此我會讓它繼續執行,同時切換至下一個示範。
它在做什麼?
正在執行。
好的。
接下來,我想說明如何縮減 APK 體積。
我在開頭提過,我們推出了一項名為 Android Analyze 的新指令。
我會要求代理改善,並用以下方式表達:「我們的版本似乎比預期大。
請說。」
接著讓代理執行作業。
這裡會發生兩件事。
希望我們能看到,有了。
代理正在查看 ProGuard 設定。
我們變更這項設定,並比較變更前後的兩個 APK,看看有何差異。
如前所述,我已預先建構這些 APK,因此代理程式應該會知道並挑選先前的 APK。
有了
它使用 Android Analyze 分析舊版 APK 和新版 APK,並比較兩者的大小。
我們將 DEX 大小縮減了 0.5 MB,您可以看到從 APK 中移除的所有項目。
24 秒就完成了。
現在,你可以在 Pocket Casts 應用程式上收聽《This American Life》,這可是真的。
這不是假消息或類似的東西。
我只調整了幾項設定,讓您不會看到建構過程,但幾分鐘後,我們就取得了較小的 APK。
回到先前的畫面,這項作業就完成了。
蛋糕烤好了。
現在,我們已最佳化 Pocket Casts 的啟動時間。
主執行緒 CPU 則提升 17%。
最重要的是,首次顯示時間也縮短了 17%,從 400 毫秒縮短到 380 毫秒。
太好了,大約幾分鐘後。
這會造成什麼影響?
它執行了 Android 文件擷取指令,因此學會如何建立及更新基準設定檔。
系統會執行分析器指令兩次 (一次在啟動前,一次在啟動後),並比較兩次啟動。
這裡也有所改善。
這就是第三個,也是最後一個示範。
以上就是我要分享的內容,但還有一件事。
沒錯,我喜歡終端機。
That That's me.
我想向各位展示一件事,這一切都已發布。
您可以下載 Android CLI 試用。
但我們對此非常期待。
如果你有參加主題演講,請假裝沒看過。
我要向各位展示我們打造的這項產品。
可以回到展示機嗎?
噢。
可以回到第一個示範嗎?
感謝您!
這裡有一堆 APK。
接著執行「I have a Compose APK」。
這些是專為 Android x86 建構的一般現成 APK。
這是完整執行的常規應用程式。
我認為這項功能非常棒,因為這只是單一程序。
您可以在標準輸出中查看 Logcat。
沒有其他執行中的作業。
您當然可以執行多個這類作業。
而且非常輕巧。
不需要巢狀虛擬化。
在 VM 上執行。
它會與代理一起執行,如果您有代理雲端,它就會在該處執行。
接著說明這項功能有多強大。
我們有一個 Google 參考應用程式,名為 Now in Android。
這個應用程式具有網路存取權。
你可以看到這些內容。
事實上,2022 年 Android 開發人員高峰會即將登場,敬請期待。
不過,我們來看看一個更大的應用程式,特別是實際的應用程式,Pocket Casts 應用程式。
這個應用程式含有實際的 SO。
因此,我們提供轉譯層,以便在 Linux 上以原生方式執行 SO。
不過,我不會播放 Podcast,但我們有音訊。
最後,為了展示這項功能的強大之處,假設您有一個完整的原生活動,其中大部分的應用程式都是 OpenGL。
這是一款舊的 OpenGL ES 1 應用程式,但我們也提供可在電腦上執行的轉譯版本,這樣就能在電腦上玩遊戲。
抱歉。
我們在電腦上執行這項作業。
就是這麼簡單
Thank you so much.
現在交給 Adarsh。
謝謝 Esteban。
因此,Esteban 剛才透過指令列示範的功能,對於您透過電腦版應用程式 (例如 Google Antigravity、Claude Code 和 OpenAI 的 Codex) 使用的代理,也同樣非常實用。
提醒您,我們在今年的 I/O 大會上,宣布 Antigravity 支援 Android 開發,並直接整合官方 Android CLI 外掛程式。
此外,外掛程式也會使用 Android CLI、官方 Android 技能和知識,啟動代理。
因此,代理一律會採用最新的指南和架構標準,而非過時的訓練資料。
今天,Antigravity 的 Android CLI 外掛程式已更新,專為 Android 開發人員提供更深入的整合功能,首先支援轉譯和查看 Compose 預覽,以及直接從 Antigravity 與裝置互動。
現在,我們來看看更酷的功能。
現在我進入 Antigravity,準備開始執行。
我載入了 Pocket Casts 應用程式,並要求代理分析其中一個以檢視畫面建構的畫面。
我已將其轉換為 Compose,但請協助我針對大螢幕進行最佳化。
設定自動調整功能。
充分利用螢幕空間。
我提供了一些參考裝置,讓它執行一些工作。
在等待期間,我會說明如何輕鬆完成設定。
在側邊選單中,只要前往「自訂」,就能看到多項可用的整合功能。
「Build with Google」部分下方則是 Android CLI 外掛程式。
這裡會列出所有實用功能,其中許多功能我們今天都示範過了。
您可以看到外掛程式隨附的技能。
當然,您也可以新增其他技能,並進行更深入的整合,我們現在就來介紹並示範。
回到這個頁面,可以看到系統正在執行最後幾個步驟。
接著,系統會分析預覽畫面,並顯示偵測到的內容,以及建議的指引和最佳化做法。
請稍候片刻。
顯然大家都起床了,開始啟動代理,所以我有點競爭。
很好!
這項作業已完成。
如您所見,系統已設定部分參考裝置,我可以點選這個方塊,這對我來說非常實用。
因此,為了順暢地彈出這個檢視畫面,我會留在流程中,查看系統提供的一些指引,例如「嘿,你知道,顯然有垂直版面配置,特別是對於其中一些較寬的螢幕,這沒有用。
我們來看看雙窗格版面配置。」
我們今天不是要測試 Antigravity 解決這個問題的能力,我已經解決了,所以只要切換分支版本即可。
為了展示疊代速度有多快,我會重新載入,當然,我可以與代理對話,並在這裡進行調整,甚至不必手動重新載入預覽畫面。
代理會自動完成這項工作,而且不必執行昂貴的建構和部署作業,就能直接在 Antigravity 中快速疊代。
當然,我們也想看看這在實際裝置上的效果。
舉例來說,我可以開啟 Android Device Hub。
先快速回顧一下。
如果這看起來很眼熟,是因為它與 Android Studio 中的裝置管理工具非常相似,我可以在這裡看到許多已設定的裝置。
如果連線到遠端裝置,也會顯示在這裡。
如果需要 Android CLI 可建立的裝置,也可以在這裡快速建立。
同樣地,這一切都是由 Android CLI 在幕後提供技術支援。
我會在這裡連線至裝置。
如果解鎖,糟糕。
我可以在這裡看到更新後的應用程式。
我可以與應用程式互動,確認應用程式是否正常運作。
我也可以確認它是否具有自動調整功能。
我先回到這裡。
看看這些好用的按鈕。
好的。
不要啊
好,完成了。
我將這個畫面放入分割畫面版面配置,可以看到它會自動調整為單一窗格版面配置。
如果再次開啟,它會再次來回調整。
以上就是 Google Antigravity 的 Android CLI 外掛程式更新,不僅包含我們示範的所有最新功能,還提供這些深度整合。
我們也提供 Claude Code 和 Codex 的官方外掛程式,並即將推出更多深度整合功能。
好的。
現在我們來做個小測驗
因此,我們結合 Android CLI 技能和官方代理外掛程式,讓代理能以更高品質、更短時間完成更多工作。
舉例來說,我們要求 Claude Opus 在六部不同裝置上,透過六個不同的使用者歷程操作應用程式,並使用 Android CLI 找出及修復記憶體流失問題。
不過,我們也要求 Claude Opus 在不使用 Android CLI 的情況下,嘗試完全相同的挑戰。
Android CLI 對服務專員效率的影響顯而易見。
使用 Android CLI 時,Claude 代理能以兩倍的速度完成工作,且使用的權杖數量大幅減少。
Android CLI 不僅能為開發人員帶來便利,還能從根本上改變 AI 代理處理複雜 Android 開發工作的效率。
我們今天介紹的其他指令,也帶來類似的成效。
舉例來說,代理可立即顯示預覽畫面,不必經過緩慢的編譯和執行迴圈,就能檢查可組合函式,最多可減少 77% 的疊代時間。
使用 Analyze 指令後,原本需要數十次來回的複雜建構和檢查作業,簡化為單一結構化指令,輸出詞元數量減少了 5.5 個。
此外,CLI 的 Input 指令現在會使用結構化語意動作,避免代理出現幻覺和複雜的座標計算,整體工作執行速度提升 25%。
因此,重點很簡單:為代理提供結構化的 Android 原生 CLI 工具,不僅能節省時間和權杖,還能消除大多數代理失敗時的摩擦。
雖然這些是我們的內部測試,但我們誠摯邀請各位更新 Android CLI,親自體驗。
現在我們來做個小測驗
接著,我們來看看專為 Android 開發人員打造的端對端平台,包括編輯器、建構系統、模擬器、分析器、檢查器等。
當然,我指的是 Android Studio。
因此,Android Studio 深度整合 Gemini,在 IDE 中引領代理驅動開發。
現在,您可以更輕鬆地從 Android Studio 存取 Gemini。
您現在可以使用現有 Google AI Pro 或 AI Ultra 訂閱方案的配額,或透過貴機構的 Gemini Enterprise 公司帳戶連結。
不過,我們也收到開發人員的回饋,表示他們和團隊已經在使用非 Gemini 的代理。
我們付費並設定了這項服務。
我們該如何在 Android Studio 中使用這項功能?
Android Studio Rabbit 2 支援「自備代理」功能,以下就來快速瞭解如何使用。
請切換到展示機。
太好了!
很好!
現在,我已在 Android Studio 中開啟 Pocket Casts 應用程式。
首先要設定代理。
因此,我要前往「設定」視窗。
依序點選「工具」、「AI」和「代理」,即可看到新畫面,設定所需的代理。
Android Studio 內建一個代理,但如您所見,我已設定並驗證其他幾個代理,包括 Claude 代理,這個代理已使用我在 Android Studio 外部與 Claude Code 搭配使用的訂閱方案。
但也可以指向 API 金鑰或設定。
如果找不到偏好或使用的代理,可以從日益擴大的代理市集中選擇。
請務必查看。
現在我們來做個小測驗
我已經完成這項操作,所以要進入代理視窗。
先從簡單的開始。
你是誰?
您可以使用哪些 Android Studio 工具?
好的。
這裡我已選取 Claude 代理,但您可以看到,我能從其他已設定的代理中選取,也可以選擇訂閱方案提供的任何模型。
接著,Claude Code 會確認:「Hey, I am Claude Code.
你目前使用的是 Opus 5.5。
以下是我們多年來為 Android 開發人員打造的所有工具,代理現在可以透過 Android Studio 存取這些工具。
包括尋找和修改檔案、執行靜態分析和分析檔案、建構、同步、算繪 Compose 預覽畫面、部署裝置,當然還有存取內建的豐富知識。
好,我們來試試看稍微困難一點的。
我得複製一下我的小抄。
我們知道,隨著代理每天生成的程式碼越來越多,審查所有程式碼仍是一大挑戰。
開發人員仍須為提供給使用者的程式碼品質負責,而我們希望提供協助。
現在就來看看「變更審查」功能。
我們去拿吧。
這項指令不只適用於本機變更。
我只是將這個指向 Pocket Casts 版本記錄中的提取要求,它就會分析該要求。
這項作業需要一點時間,所以我已經產生一個。
現在就來看看吧!
我不需要逐一查看 15 個變更的檔案,或 800 行程式碼。
我可以在這裡查看,系統會立即顯示這項提取要求的變更性質。
基本上,團隊新增了完整滑動手勢,可用於新增或移除書籤。
不過,我已經可以看到「變更審查」功能發現了一些問題。
基本上,每次重組時都會觸發完整滑動動作。
因此,如果我刪除書籤,就會看到確認對話方塊反覆出現。
而且非常酷。
這項查詢找出了這些主要問題,以及其他許多問題。
我可以查看並深入瞭解問題所在。
它會參照相關程式碼,並準備好修正程式。
這點非常棒,因為我能完全掌握要傳送給代理程式的修正內容。
如果我想修改或調整任何內容,可以直接在這裡進行。
我可以瀏覽這份清單,勾選要修正的項目。
最後,我可以說:「修正所有選取的問題。」
不過,我也可以建立逐步操作說明。
如果想進一步瞭解這些變化如何影響不同主題,
在逐步操作說明中,可以看到這項提取要求的變更已依主題分組。
這裡可以看到我們稍早討論的問題,也就是在資料列重組時,完整滑動動作可能會執行多次。
我可以瞭解差異,以及程式碼的變更。
我可以接受這些變更,並標示為已審查。
如果想深入瞭解,我當然可以進入編輯器,Android Studio 也能讓我輕鬆瀏覽程式碼集。
以上就是 AI 變更審查和自備代理支援功能,這兩項功能都包含在 Android Studio Rabbit 2 穩定版中,此外還有許多其他功能:從規劃模式,可協助您與代理一起完成更複雜的工作,讓您透過平行對話同時完成更多工作,到修正和偵錯問題的能力,無論是來自現場或本機,存取離線 Gemma 4 等等。
因此,如果您使用的不是最新 Canary 版本 (Android Studio Rabbit 3),請務必確認您使用的是最新穩定版本。
今天我們從三個不同層面探討了 Modern Android Development。
在終端機中使用 Android CLI,即可存取欄位指標、連線至遠端或本機裝置、透過複雜的分析和追蹤功能分析應用程式效能,以及執行其他多項操作。
如果交給 Google Antigravity 等代理,這些指令會更加強大。
官方 Android CLI 外掛程式已更新,可提供專為 Android 開發人員設計的深度整合功能。
此外,我們也提供 Codex 和 Claude Code 的官方外掛程式,並將在不久後推出更深入的整合功能。
最後,我們說明瞭如何透過 ACP 將自備代理直接導入 Android Studio Rabbit 2,以及如何運用這些代理提供 AI 變更審查等強大功能。
不過,Canary 管道還有更多功能,我們還沒機會介紹,例如專為 Android 建構的宣告式建構系統 Lightbuild,以及運用代理程式的遷移輔助工具,可協助您更快速、準確且高品質地將檢視畫面轉換為 Compose。
以上就是我們致力發展的領域。
如要進一步瞭解今天提到的主題,請務必查看高峰會的其他精彩講座。
在結束之前,我們希望大家能清楚瞭解一件事:無論是 Android 原型設計、將自己的代理程式帶入 Android Studio,還是我們對 Android CLI 的投資,我們都傾聽社群的聲音,並需要您的意見回饋,確保我們能提供最佳服務。
請掃描這個 QR code,回答幾個問題,繼續提供寶貴意見。
以上就是我和 Esteban 的分享。
感謝各位,祝大家在 Android 開發人員高峰會收穫滿滿。