建構和使用支援執行階段的 SDK

1
Key concepts
2
Set up your development environment
3
Build an RE SDK
4
Consume the RE SDK
5
Testing, and building for distribution

核心概念

本節說明 SDK 執行階段架構、如何安裝支援執行階段的 SDK、回溯相容性,以及如何將現有 SDK 遷移至 SDK 執行階段。

詞彙

  • 支援執行階段的 SDK (RE SDK):這類 SDK 專為在 SDK 執行階段環境中執行而設計,並透過跨程序通訊 (IPC) 與應用程式通訊。
  • 支援執行階段的 SDK (RA SDK):與應用程式靜態連結的非執行階段 SDK,可能包含現有的 SDK 程式碼,以及呼叫支援執行階段的 SDK 的新程式碼。
    • 有時也稱為「靜態連結」或「靜態 SDK」
  • Shim:Jetpack 程式庫,可協助抽象化跨程序或程序間通訊 (IPC),並維護相同的應用程式-SDK 介面。

SDK 執行階段架構

SDK 執行階段採用用戶端伺服器類型的模型。

主要差別在於「用戶端」(應用程式) 和「伺服器」(啟用執行階段的 SDK) 是在同一部裝置上執行,且這項通訊會跨程序進行。

為協助解決這些挑戰,我們建構了下列 Jetpack 程式庫和工具,簡化 SDK 執行階段中的應用程式與 SDK 整合:

  • 墊片程式庫:包裝函式庫 (或墊片) 有助於抽象化跨程序通訊或程序間通訊 (IPC)。此外,這項功能也有助於維持相同的應用程式 SDK 介面。
  • 回溯相容性程式庫:這個程式庫可處理回溯相容性,確保 SDK 相容性,無論 SDK 執行階段是否可用。
  • UI 程式庫:我們也提供程式庫來處理遠端呈現作業,例如從啟用執行階段的 SDK 擷取 UI,或是調整檢視畫面大小和重新配置版面。
SDK 執行階段架構總覽
圖表:應用程式透過不同程式庫與支援執行階段的 SDK 互動。

安裝流程異動

在 Android Studio 或其他工具中建構支援執行階段的 SDK 時,您會建立 Android SDK 套件 (ASB),這是支援執行階段的 SDK 的發布格式。

bundletool 會處理 ASB,為支援執行階段的 SDK 產生 APK:這個獨立的 APK 包含 SDK 程式碼,但不含應用程式程式碼。

應用程式的資訊清單檔案會宣告依附於支援執行階段的 SDK 名稱和版本,而安裝程式應用程式會解決這項依附元件。

安裝程式取得 SDK APK 後,就會開始安裝 SDK APK。成功後,系統會接著安裝應用程式的 APK。

如果應用程式安裝在 Android 13 之前的版本,以及不支援 SDK 執行階段的裝置上,流程會有所不同。在這種情況下,商店會安裝包含啟用執行階段的 SDK 和應用程式程式碼的單一 APK。詳情請參閱發布一節

每當應用程式在正式版中依附這個 SDK,應用程式商店就會從這個 ASB 建立正確的 SDK APK,並安裝該 APK。

回溯相容性

Android 14 導入了 SDK 執行階段,因此我們需要支援舊版,同時避免為 SDK 或應用程式開發人員帶來額外負擔。

為處理 Android 13 和舊版的回溯相容性,我們推出了 Jetpack 程式庫,無論裝置是否支援 SDK 執行階段,都能順暢執行啟用執行階段的 SDK。

按照本指南操作後,支援執行階段的 SDK 預設會具備回溯相容性,您不必採取其他步驟。

我們會強調在相關階段與回溯相容性相關的動作,但一般而言,您應確保已宣告正確的依附元件,並在適用時使用 *Compat 類別。

遷移現有 SDK

如果您想將現有 SDK 遷移至執行階段,不必一次重構整個程式碼集,而是可以選擇逐步將現有 SDK 邏輯遷移至支援執行階段的新 SDK。

建議您分三個階段將現有 SDK 遷移至 SDK 執行階段:

  1. 建構過渡期支援執行階段的 SDK,以及對應的厚實執行階段感知 SDK。這可讓您從現有 SDK 逐步遷移商業邏輯,並提供 A/B 測試的測試平台
  2. 將所有現有的 SDK 業務邏輯移至穩定狀態,並搭配對應的精簡型執行階段感知 SDK,簡化應用程式遷移作業
  3. 支援感興趣的應用程式全面遷移,直接使用支援執行階段的 SDK,不必使用精簡的執行階段感知 SDK

第 1 階段 - 過渡期:可感知執行階段的 SDK

您可以先選擇將部分業務邏輯保留在可感知執行階段的 SDK 中。我們稱之為「可感知執行階段的 SDK」或「應用程式內包裝函式」。

採用這種做法,您就能將 SDK 的所有或部分功能保留在靜態應用程式程式庫中,並搭配新建立的支援執行階段 SDK。

這樣一來,您就能逐步將用途遷移至啟用執行階段的 SDK,並針對現有 SDK 測試啟用執行階段的 SDK。

在這個階段,應用程式開發人員不需要變更任何 SDK 使用方式,因為是靜態應用程式程式庫 (可感知執行階段的 SDK) 負責執行必要工作,以使用可感知執行階段的 SDK。

應用程式會呼叫自身內部的靜態、支援執行階段的 SDK,其中可能包含翻譯層,可呼叫支援執行階段的 SDK,以及其中的其他商業邏輯。
應用程式會呼叫自身內部的靜態、支援執行階段的 SDK,其中可能包含翻譯層,可呼叫支援執行階段的 SDK,以及其中的其他業務邏輯。

第 2 階段 - 穩定狀態:精簡的執行階段感知 SDK

與厚執行階段感知 SDK 相比,薄型包裝函式或薄型執行階段感知 SDK (薄型 RA_SDK) 只會在靜態連結的程式庫 SDK 中,包含 API 轉譯和啟用執行階段的 SDK 呼叫程式碼。

在這個階段,您應該已將所有 SDK 程式碼從靜態應用程式程式庫 SDK 遷移至啟用執行階段的 SDK。

應用程式開發人員不必進行任何第 1 階段的變更,因為應用程式中的精簡型執行階段感知 SDK 會處理呼叫 SDK 執行階段內支援執行階段的 SDK。

應用程式會呼叫自身內部的靜態 SDK,該 SDK 只包含翻譯層。
應用程式會在自身呼叫靜態 SDK,而該 SDK 只包含翻譯層。

第 3 階段 - 完整遷移

在最後這個階段,您已將所有 SDK 功能遷移至啟用執行階段的 SDK,並從應用程式中移除所有靜態程式庫。

此時,應用程式用戶端不再需要在建構作業中加入程式庫,只要在資訊清單中列出 SDK 依附元件,並在應用程式程式碼中加入 SDK 呼叫即可。

系統會將 SDK 呼叫轉送至 SDK 執行階段,並自動載入支援執行階段的 SDK。

完整遷移階段的架構,應用程式的廣告程式碼會直接叫用啟用執行階段的 SDK。
完整遷移階段的架構,應用程式的廣告程式碼會直接叫用支援執行階段的 SDK。


簡介

步驟 2:設定開發環境