網路堆疊

網路堆疊是可更新的 Mainline 模組,可確保 Android 可以 適應不斷演進的網路標準,且能與新的 。例如,更新網頁認證入口偵測和登入代碼 讓 Android 即時掌握不斷變更的網頁認證入口模型,以及 更新 APF 後,Android 可將 Wi-Fi 能源節省下來,成為新型封包的一種 變得常見

包含的元件

網路堆疊模組包含下列元件。在使用此模組的裝置上,這些服務會移至其他程序,並透過穩定的 AIDL 介面存取。

  • IP 服務。IpClient (舊稱 IpManager) 是負責 IP 層佈建和維護的元件。在 Android 9 中,藍牙等元件已跨程序使用此功能,而 Wi-Fi 等元件則在程序中使用。DhcpClient 會從 DHCP 伺服器取得 IP 位址,以便 均指派給介面

  • NetworkMonitorNetworkMonitor 元件會在連線至新網路或網路發生錯誤時,以及在偵測網頁認證入口和驗證網路時,測試網路可及性。

  • 網頁認證入口登入應用程式。負責管理登入行為的預先安裝應用程式 請前往網頁認證入口這個應用程式自 Android 5.0 版起已成為獨立的應用程式 會與 NetworkMonitor 互動,將部分使用者選項轉送至系統。

受影響的路徑

以下列出經過重構後移至 Network Stack 模組的路徑。

  • IP 服務。frameworks/base/services/net/java/android/net/ 中:

    • apf
    • dhcp
    • ip
    • netlink
    • util (部分)
  • 網頁認證入口偵測和登入frameworks/base/ 中:

    • core/java/android/net/captiveportal/
    • services/core/java/com/android/server/connectivity/NetworkMonitor.java
    • packages/CaptivePortalLogin/*

已移動程式碼的新位置位於 packages/modules/NetworkStackpackages/modules/CaptivePortalLogin 和其他共用位置。以上 做為 Mainline 的移動檔案位置,路徑是指檔案的位置。 「packages/modules/NetworkStack」和 packages/modules/CaptivePortalLogin 是 Mainline 模組的一部分,無法 可能會遭到修改

套件格式

網路堆疊模組包含以下 APK 格式的元件:

  • IP 服務
  • 網頁認證入口登入 (com.google.android.captiveportallogin)

本單元隨附網路堆疊權限設定模組 這是預先安裝的 APK 檔案,定義了 網路堆疊元件

依附元件

網路堆疊模組會依附下列項目:

  • 系統伺服器中的特殊權限 @hide 方法 (例如: IConnectivityManager.aidl)。這些 API 已設為@SystemApi 確保其可供 Mainline 模組存取 而非其他具有特殊權限的應用程式 (例如使用新的簽章權限)。

  • 將 Binder IPC 連結至 INetd.aidl 中定義的 netd。此介面已轉換為穩定的 AIDL,並須接受相容性測試。