Android 搭配 AI 解決方案

使用生成式 AI 大幅提升 Android 應用程式的效能

在這個學習途徑中,您將瞭解如何使用 Google 技術,以較少的力氣建構更具吸引力的 Android 應用程式。在後續章節中,您將建構並改善假想的餐點製作應用程式,這個應用程式是指您現在可能正在進行的 Android 開發人員類型應用程式。

您將瞭解如何在 Android Studio 中使用 Gemini,以便更快速地學習及開發應用程式;使用 Firebase 建構應用程式的儲存層和登入功能;使用 Gemini 在應用程式中建構先進的生成式 AI 功能;以及使用 Firebase 遠端設定、Google Analytics 和 Crashlytics 等工具,為實際環境中的應用程式提供支援。

運用 Android Studio 中的 Gemini 大幅提升 Android 開發效率

有了 Android Studio 中的 Gemini 這位 AI 程式設計好幫手,建構 Android 應用程式比以往更輕鬆。

Gemini 版 Android Studio 可直接在您每天使用的 IDE 中整合 AI,在整個軟體開發生命週期中提供協助,讓您更輕鬆快速地建構優質 Android 應用程式。這表示您可以更快學習新概念、輕鬆製作原型,並將更多時間專注於應用程式的重要部分。

開始開發 Android 應用程式時,請參閱 Android Studio 中的 Gemini 如何為開發過程注入強大動力。
如果您是 Android 或特定 Android 開發領域的新手,Android Studio 中的 Gemini 就是不可或缺的學習工具。

  • 立即獲得問題解答:您可以直接在 Android Studio 的即時通訊視窗中,向 Gemini 詢問有關 Android 基本概念、特定 API 或最佳做法的相關問題。舉例來說,你可以詢問「深色主題是什麼?」或「在 Android 裝置上取得位置資訊的最佳方式為何?」
  • 接收程式碼範例和指引:Gemini 可產生程式碼片段,並提供實作各種功能的指引,例如新增相機支援或建立 Room 資料庫。您甚至可以要求以 Kotlin 或 Jetpack Compose 專用的程式碼撰寫。
  • 瞭解錯誤並找出解決方法:遇到建構或同步處理錯誤時,您可以請 Gemini 說明並提供解決方法。Gemini 還能協助分析 App Quality Insights 中的當機報告,提供摘要並建議後續步驟。
舉例來說,假設您有一個餐點製作應用程式,可以要求 Gemini 協助製作新的 Compose 版面配置原型,以便顯示食譜資訊卡。只要使用 Gemini 的多模態功能,提供線框模型模擬圖,並請 Gemini 為您的 UI 繪製程式碼即可。
在預先發布期間,Android Studio 中的 Gemini 個人版免付費。

不過,如果您在有更嚴格隱私權和管理需求的大團隊環境中進行開發,Studio 中的 Gemini 企業版可提供額外實用的優點,包括強化隱私權、安全性和程式碼自訂功能,而且可搭配 Google Cloud 抵免額使用。

搭配 Gemini Code Assist,這些工具可讓團隊安心運用 AI 的強大功能,滿足重要的隱私權、安全性和管理需求。

應用程式的 Firebase 建構元素

應用程式開發的常見功能 (例如雲端儲存空間、使用者驗證和當機回報) 是開發及操作任何應用程式時的必要元件。

Firebase 提供這些必要的構成要素,簡化 Android 應用程式開發程序,讓您不必自行實作後端。
舉例來說,如果您要建構食譜製作應用程式,就必須將食譜、餐點計畫和食材清單儲存在裝置以外的位置 (以防使用者換手機)。您可以將這些資料儲存在 Cloud Firestore 中。

Cloud Firestore 是 Firebase 和 Google Cloud 提供的可擴充 NoSQL 雲端資料庫。這項功能可透過即時事件監聽器,在用戶端應用程式間同步處理資料,並支援離線使用行動版和網頁版,因此無論網路連線狀況如何,都能確保應用程式回應迅速。可與其他 Firebase 和 Google Cloud 產品 (包括 Cloud Functions) 完美整合。

使用者驗證功能非常重要,因為它可讓使用者在切換裝置後存取自己的資料,並確保其他人無法存取其資料!

Firebase 驗證是一項強大的工具,可簡化在 Android 應用程式中新增使用者驗證的程序。它提供後端服務,以及內含現成 UI 程式庫的 SDK,可支援各種驗證方法,包括電子郵件/密碼登入、電話號碼驗證,以及與 Google、Facebook 和 Twitter 等熱門聯合識別資訊提供者整合。
監控錯誤和當機情形,是確保應用程式穩定可靠的必要條件。如果應用程式發生當機情形,使用者會感到不耐煩,並將其解除安裝!

Firebase Crashlytics 是即時當機回報程式,可協助您追蹤、排定優先順序並解決會影響應用程式品質的穩定性問題。這項工具可自動將當機事件分組,並突顯導致當機的情況,協助您節省疑難排解時間。

Cloud Firestore 和 Firebase 驗證都提供免付費的配額,但如果應用程式需要更多配額或這些服務的進階功能,就必須採用付費方案。不過別擔心,您可以使用 Cloud 抵免額來支付這些費用!無論您使用 Crashlytics 的頻率為何,都無須支付費用。

如要瞭解 Firebase 提供的其他解決方案,請造訪 Firebase 網站
scope.launch {
  val response = model.generateContent(
    "Create a shopping list with $cuisineStyle ingredients")
}
以食譜應用程式為例,Gemini 2.0 Flash 可建立食材購物清單,讓使用者以特定料理風格烹飪。您甚至可以要求模型產生 JSON 字串,以便在應用程式中輕鬆剖析,並轉換成 UI。如要產生清單,只要使用文字提示呼叫 `generateContent()` 函式即可。

詳情請參閱 Android 開發人員指南

Android 生成式 AI

您可以透過各種方式,在 Android 應用程式中整合生成式 AI。以下簡要說明各個選項:
Gemini Nano 是 Gemini 系列的模型,經過最佳化調整,可在裝置上運作。並透過 AICore 直接整合至 Android 作業系統。您可以使用這項功能提供生成式 AI 體驗,無須連上網路或將資料傳送至雲端。

如果您主要考量低延遲、低成本和隱私權保護,裝置端 AI 就是絕佳的選擇。舉例來說,在餐點預訂應用程式中,Gemini Nano 可根據不同料理和使用者的用餐記錄,提供餐點建議。

如要進一步瞭解 Gemini Nano 的技術架構,請參閱 Android 說明文件。

如要在自己的應用程式中試用 Gemini Nano,請參閱下方有關 Gemini Nano 裝置端的 Google AI Edge SDK 實驗功能。
經過最佳化,可在雲端執行的生成式 AI 模型,通常比裝置端 AI 模型功能更強大。

Android 開發人員可以使用 Vertex AI in Firebase,在 Android 應用程式中快速導入生成式 AI 功能,並使用 Gemini Pro 和 Flash 模型執行文字生成作業,以及使用 Imagen 執行圖像生成作業。

Gemini Pro 和 Flash 系列 AI 模型屬於多模態模型,可處理各種工作。這些模型會接收圖片、音訊和影片輸入內容,並產生文字輸出內容,可轉換為 JSON、XML 和 CSV 格式。最新的 Gemini 模型甚至可以生成多模態輸出內容,例如音訊和圖片!

舉例來說,在餐點準備應用程式中,您可以使用 Gemini 模型,針對特定類型的料理,建立包含食材的購物清單。

您可以使用 Google Cloud 抵免額支付這些 Gemini 模型呼叫的費用!

如要瞭解如何在應用程式中使用雲端代管的 Gemini 模型,請參閱下方的「透過 Firebase 中的 Vertex AI 使用 Gemini」步驟。
Imagen 3 是 Google 最新的圖像生成模型。您可以透過 Firebase 中的 Vertex AI 存取這項功能,快速且無縫地在 Android 應用程式中新增圖片生成功能。

舉例來說,在餐點準備應用程式中,您可以使用 Imagen 3 模型產生食譜插圖。

Google Cloud 抵免額可支付這筆費用。

如要瞭解如何在應用程式中使用 Imagen 3,請參閱下方的「使用 Imagen 3 生成圖像」步驟。
您也可以透過後端整合功能新增生成式 AI 功能:

  • Genkit 是開放原始碼架構,可簡化 AI 應用程式的開發、部署和監控作業。
  • 針對更進階的 MLOps 需求,Google Cloud 的 Vertex AI 提供全代管服務,以及透過 Vertex AI Model Garden 提供的豐富模型。您也可以使用 Google Cloud 點數支付這些服務的費用。


如果您想在 Gemini Nano 以外的裝置上執行 AI 推論,也可以試試 LiteRT 和 MediaPipe:
  • LiteRT (舊稱 TFLite) 是 Google 的裝置端 AI 高效能執行階段,可直接在裝置上執行機器學習模型。
  • MediaPipe 是開放原始碼架構,可讓開發人員建構機器學習管道,用於即時處理多媒體資料 (例如影片和音訊)。


如要進一步瞭解 Android GenAI 服務,請參閱 Android 說明文件的 AI 專區
Google AI Edge SDK 可讓 Android 應用程式開發人員整合並試驗 Gemini Nano 的裝置端生成式 AI 功能,以提升應用程式效能。以下是開始使用的方法:
  • 加入 aicore-experimental Google 群組
  • 選擇加入 Android AICore 測試計畫
    完成這些步驟後,Play 商店中 (在「管理應用程式和裝置」下方) 的 AICore 應用程式名稱應會從「Android AICore」變更為「Android AICore (Beta 版)」。
  • 按照這些步驟操作,確保 APK 和二進位檔已正確下載至裝置。
  • 接著,新增下列依附元件,更新應用程式的 Gradle 設定:implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
    請務必將最低 SDK 目標設為 31。
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
接著,您可以設定模型來控制回應。這包括提供內容,並視需要設定下列參數:

  • 溫度:控制隨機程度。值越高,輸出內容的多樣性就越高。
  • Top K:指定系統在產生輸出內容時,要考慮的最高排名詞元數量。
  • 候選人數量:設定要傳回的回覆數量上限。
  • 輸出符記數量上限:設定回覆的長度上限。
val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext()
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}
建立選用的 downloadCallback 函式。這個回呼函式用於下載模型。也會傳回可用於偵錯的訊息。使用先前建立的產生和選用下載設定,產生 `GenerativeModel` 物件。
val downloadConfig = DownloadConfig(downloadCallback)
val generativeModel = GenerativeModel(
  generationConfig = generationConfig,
  downloadConfig = downloadConfig // optional
)
最後,將提示傳遞至模型,啟動推論。請確認 GenerativeModel.generateContent() 位於適當的協同程式範圍內,因為這是暫停函式。

在餐點準備應用程式示例的情況下,Gemini Nano 可提供餐點靈感,建議不同於用餐記錄的各種料理類型和餐點。
scope.launch {
  val input = "Suggest different types of cuisines and easy to cook dishes that are not $recentMealList"
  val response = generativeModel.generateContent(input)
  print(response.text)
}
Gemini Nano 模型的輸入符記上限為 12,000。如要進一步瞭解 Gemini Nano 實驗功能,請參閱 Android 說明文件中的「Gemini Nano」一節。

透過 Firebase 中的 Vertex AI 使用 Gemini

您可以利用 Firebase 中的 Vertex AI,使用 Gemini Cloud 模型建構生成式 AI 功能,並透過 Firebase 生態系統流暢地部署及管理。

dependencies {
...
// Import the BoM for the Firebase platform
implementation(platform("com.google.firebase:firebase-bom:"))

// Add the dependency for the Vertex AI in Firebase library
// When using the BoM, you don't specify versions in Firebase
// library dependencies
implementation("com.google.firebase:firebase-vertexai")
}
請先在 Vertex AI Studio 中試驗提示。這是互動式介面,可用於提示設計和原型設計。您可以上傳檔案,以文字和圖片測試提示,並儲存提示以便日後查看。

準備好從應用程式呼叫 Gemini API 後,請按照 Vertex AI in Firebase 入門指南中的操作說明設定 Firebase 和 SDK。

接著,請將 Gradle 依附元件新增至專案:

val generativeModel = Firebase.vertexAI
  .generativeModel(
  "gemini-2.0-flash",
  generationConfig = generationConfig {
        responseMimeType = "application/json"
        responseSchema = jsonSchema
  }
    )
您現在可以透過 Kotlin 程式碼呼叫 Gemini API。首先初始化 Vertex AI 服務,並建立 `GenerativeModel` 例項:
scope.launch {
  val response = model.generateContent("
    Create a shopping list with $cuisineStyle ingredients")
}
以食譜應用程式為例,Gemini 2.0 Flash 可建立食材購物清單,讓使用者以特定料理風格烹飪。您甚至可以要求模型產生 JSON 字串,以便在應用程式中輕鬆剖析,並轉換成 UI。如要產生清單,只要使用文字提示呼叫 `generateContent()` 函式即可。

詳情請參閱 Android 開發人員指南

用於產生圖片的 Imagen 3

您可以透過 Firebase 中的 Vertex AI 存取 Imagen 3,將圖片生成功能無縫整合至 Android 應用程式。作為 Google 最先進的圖像生成模型,Imagen 3 可產生高品質圖片,提供出色的細節、最少的雜訊,以及逼真的光線效果,為圖像生成技術樹立新標準。

舉例來說,Imagen 3 可讓使用者自行產生個人資料頭像,或建立素材資源來說明現有的畫面流程。以餐點準備應用程式為例,您可以使用 Imagen 3 為食譜畫面產生圖片。

使用以下提示產生的圖像:廚房檯面的俯瞰圖,圖中可見地中海餐點的美味食材。
dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.10.0"))

    implementation("com.google.firebase:firebase-vertexai")
}
整合 Imagen 3 的做法與透過 Firebase 中的 Vertex AI 存取 Gemini 模型類似。

請先將 Gradle 依附元件新增至 Android 專案:
val imageModel = Firebase.vertexAI.imagenModel(
modelName = "imagen-3.0-generate-001",
generationConfig = ImagenGenerationConfig(
  imageFormat = ImagenImageFormat.jpeg(compresssionQuality = 75),
  addWatermark = true,
  numberOfImages = 1,
  aspectRatio = ImagenAspectRatio.SQUARE_1x1
)
接著,在 Kotlin 程式碼中,透過傳遞模型名稱和模型設定 (選用) 來建立 `ImageModel` 例項:
val imageResponse = imageModel.generateImages(
prompt = "A cartoon style illustration of a top overview of a kitchen countertop
  with beautiful ingredients for a $cuisineStyle meal."
)
最後,請使用文字提示呼叫 `generateImages()` 來產生圖片:
val image = imageResponse.images.first()
val uiImage = image.asBitmap()
從 `imageResponse` 擷取產生的圖片,並以點陣圖的形式顯示:
如要進一步瞭解如何使用 Imagen 3,請參閱 Android 開發人員網誌Android 開發人員說明文件

使用 Firebase 準備正式版

在應用程式中導入 genAI 功能後,請務必先完成下列重要步驟,再將應用程式部署至正式環境: 此外,請務必保護使用者的隱私權並負責任地使用 AI,並向使用者說明模型可能出現的非預期行為。請參閱以下 部落格文章,進一步瞭解如何在 Firebase 中使用 Vertex AI 進行實際應用。