jollen.org

Jollen 的 Blog
Jollen's email: jollen # jollen.org
more:  Jollen's Training

Android HAL & Framework 如何 Vibe Coding?

.作者:Jollen/
.日期:Tue May 26 2026 08:00:00 GMT+0800 (台北標準時間)


Vibe Coding 大型 Android Framework 專案

Android HAL & Framework 也能 Vibe Coding。

使用 Codex 或 Claude Code 直接在 AOSP Source Tree 裡做開發,體驗並不差;若要更進一步升級為 Agentic Coding,往 AOSP 灑些調味料,有異想不到的神奇效果。

這裡分享 3 份調味方法:

  1. 一個效果出乎意料的好工具-grep

根據關鍵字或 Regular Expression 把 grep 輸出結果,放進 Prompt 後跟 AI 對話;若針對複雜工程問題,例如:多份 grep 輸出結果,再加一個簡單的 Context Manager 進行 Prompt 管理即可。

  1. 使用 RAG 建立索引資料庫

先將程式碼的 AST 事先編譯好,再用 text-embedding 來建立 RAG;因為專案不大,甚致用一系列的 JSON 檔案來存放即可。為什麼要用 text-embeddeding / AST 建立 RAG 呢?它的目的是進行 code-indexing。

例如,我想知道 camera permission enforcement path 這條功能的「實作路徑」,可以執行以下指令:

 % npm run android-vibe:retrieve -- --query "camera permission enforcement path" --topK 8

輸山結果:

{
  "ok": true,
  "cmd": "android-vibe:retrieve",
  "mode": "hybrid-v8",
  "query": "camera permission enforcement path",
  "query_tokens": [
    "camera",
    "permission",
    "enforcement",
    "path"
  ],
  "topK": 8,
  "matches": [
    {
      "entity_id": "method:53a945390a017eb6",
      "path": "frameworks/base/core/java/android/hardware/Camera.java",
      "class_name": "Camera",
      "method_name": "setPreviewCallback",
      "subsystem": "framework_core",
      "module": "frameworks.base.core",
      "line_start": 516,
      "line_end": 523,
      "score": 0.962915,
      "semantic_score": 0.125988,
      "lexical_hits": [
        "camera"
      ],
      "role_hits": [],
      "signal_hits": [],
      "why_ranked": "lexical:camera | path-boost | exact:0.26"
    },
    ...
  ]
}

從輸出結果,可以知道,要閱讀這項功能的程式碼,可以先從以下檔案開始:

  • frameworks/base/core/java/android/hardware/Camera.javasetPreviewCallback 方法
  • …(略)

再用這份索引結果跟 AI 對話,在精準度方面有很大的提升。android-vibe 只「提供 metadata」;要讓 AI 看懂 metadata,須再仔細編寫一份提示詞(現在稱為 SKILL)搭配使用。

若要讓 AI 修改程式碼,再透過 read_file action 來取得完整檔案。

  1. 使用 MCP Server

npm run android-vibe:retrieve 套用一層 MCP Server,並接到 Claude Code 來用,可以達到不錯的 Agentic Coding 效果。MCP Server 的主要工作,同樣是提供 code-indexing 的能力。

這等於是把 android-vibe 變 Claude 的外掛:先讓 android-vibe 給 metadata 與提示詞;AI 若需要修改程式碼,再以 read_file action 來讓 AI 讀取完整檔案。

總結

用 AI 進行 Android HAL & Framework 開發確實可行;也因為 AI Base Model 太聰明了,僅管只是簡單的方法,也能大幅提升研發效率。

若願意閉著眼睛燒 token:直接用 Cluade Code 來修改 AOSP Source Tree 也可以。如果在意原生 Vibe Coding 方法成本略高,使用上述的加料法,便可以省點費用。


Tags: vibe

純手工打造說明:技術專欄文章為 Jollen 原創,內容皆為人工撰寫,無 AI 生成。轉載請註明出處與作者,並全文引用。轉載時請在文章開頭或結尾明顯處註明「本文出處:https://www.jollen.org,已取得原作者同意並授權使用。」
訂閱電子報:不定期 Jollen's Blog 精選文章隨 Moko365 電子報寄送;請透過 Moko365 電子報訂閱(可隨時取消)。

Copyright(c) 2001–2026 www.jollen.org. All rights reserved.
Last update: May 26, 2026 at 4:55 PM