Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release
thay vì aosp-main
để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Ngăn xếp mạng
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Ngăn xếp mạng là một mô-đun Mainline có thể cập nhật, đảm bảo rằng Android có thể thích ứng với các tiêu chuẩn mạng đang phát triển và cho phép khả năng tương tác với các phương thức triển khai mới. Ví dụ: các bản cập nhật cho tính năng phát hiện cổng thông tin và mã đăng nhập cho phép Android luôn cập nhật các mô hình cổng thông tin đang thay đổi, đồng thời các bản cập nhật cho APF cho phép Android tiết kiệm pin trên Wi-Fi khi các loại gói mới trở nên phổ biến.
Các thành phần đi kèm
Mô-đun Ngăn xếp mạng chứa các thành phần sau. Trên các thiết bị sử dụng mô-đun này, các dịch vụ này đã được chuyển sang một quy trình khác và được truy cập thông qua giao diện AIDL ổn định.
Dịch vụ IP. IpClient
(trước đây là IpManager
) là một thành phần chịu trách nhiệm cấp và bảo trì lớp IP. Trong Android 9, các thành phần như Bluetooth đã sử dụng tính năng này trên nhiều quy trình và các thành phần như Wi-Fi đã sử dụng tính năng này trong quy trình. DhcpClient
lấy địa chỉ IP từ máy chủ DHCP để có thể chỉ định cho các giao diện.
NetworkMonitor. Thành phần NetworkMonitor
kiểm tra khả năng truy cập Internet khi kết nối với một mạng mới hoặc khi xảy ra lỗi mạng, khi phát hiện trang xác thực và khi xác thực mạng.
Ứng dụng đăng nhập trang xác thực. Một ứng dụng được cài đặt sẵn chịu trách nhiệm quản lý việc đăng nhập trên trang xác thực. Đây là một ứng dụng riêng biệt kể từ Android 5.0, nhưng ứng dụng này tương tác với NetworkMonitor
để chuyển tiếp một số lựa chọn của người dùng đến hệ thống.
Các đường dẫn bị ảnh hưởng
Dưới đây là danh sách các đường dẫn được di chuyển sang mô-đun Ngăn xếp mạng bằng quá trình tái cấu trúc.
Vị trí mới của mã đã di chuyển nằm trong packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
và một số vị trí dùng chung khác. Các đường dẫn trên
tham chiếu đến vị trí của các tệp trước khi được chuyển đến đó cho Mainline.
Các tệp trong packages/modules/NetworkStack
và
packages/modules/CaptivePortalLogin
là một phần của mô-đun Mainline và không thể
sửa đổi.
Mô-đun Ngăn xếp mạng chứa các thành phần sau đây ở định dạng APK:
- Dịch vụ về quyền sở hữu trí tuệ
- Đăng nhập trang xác thực (
com.google.android.captiveportallogin
)
Mô-đun này đi kèm với mô-đun Cấu hình quyền ngăn xếp mạng,
là một tệp APK được cài đặt sẵn xác định các quyền cần thiết cho
các thành phần Ngăn xếp mạng.
Phần phụ thuộc
Mô-đun Ngăn xếp mạng phụ thuộc vào những phần sau:
Các phương thức @hide đặc quyền trong máy chủ hệ thống (ví dụ: trong IConnectivityManager.aidl
). Các API này đã được tạo @SystemApi
và được bảo vệ thích hợp để mô-đun Mainline có thể truy cập nhưng các ứng dụng đặc quyền khác thì không (ví dụ: sử dụng quyền chữ ký mới).
IPC của liên kết đến netd
được xác định trong INetd.aidl
.
Giao diện này đã được chuyển đổi thành AIDL ổn định và phải tuân theo các quy trình kiểm thử về việc tuân thủ.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Network Stack is an updatable Mainline module that ensures that Android can\nadapt to evolving network standards and allows for interoperability with new\nimplementations. For example, updates to captive portal detection and login code\nallow Android to stay up to date with changing captive portal models, and\nupdates to APF allow Android to save power on Wi-Fi as new types of packets\nbecome common.\n\nIncluded components\n-------------------\n\nThe Network Stack module contains the following components. On devices using the\nmodule, these services were moved to a different process and are accessed\nthrough a stable AIDL interface.\n\n- **IP services.** `IpClient` (formerly `IpManager`) is a component in charge of\n IP layer provisioning and maintenance. In Android 9, it was already used\n cross-process by components such as Bluetooth, and in-process by components\n such as Wi-Fi. `DhcpClient` obtains IP addresses from DHCP servers so they can\n be assigned to interfaces.\n\n- **NetworkMonitor.** The `NetworkMonitor` component tests for internet\n reachability when connecting to a new network or upon network failures, when\n detecting captive portals, and when validating networks.\n\n- **Captive portal login app.** A preinstalled app in charge of managing login\n on captive portals. This has been a separate app since Android 5.0, but it\n interacts with `NetworkMonitor` to forward some user choices to the system.\n\nAffected paths\n--------------\n\nThe paths moved to the Network Stack module by the refactor are listed below.\n\n- **IP services.** In `frameworks/base/services/net/java/android/net/`:\n\n - `apf`\n - `dhcp`\n - `ip`\n - `netlink`\n - `util` (partly)\n- **Captive portal detection and login.** In `frameworks/base/`:\n\n - `core/java/android/net/captiveportal/`\n - `services/core/java/com/android/server/connectivity/NetworkMonitor.java`\n - `packages/CaptivePortalLogin/*`\n\nThe new location of the moved code is in `packages/modules/NetworkStack`,\n`packages/modules/CaptivePortalLogin` and some other shared locations. The above\npaths refer to the location of files before being moved there for Mainline.\nFiles in `packages/modules/NetworkStack` and\n`packages/modules/CaptivePortalLogin` are part of the Mainline module and cannot\nbe modified.\n\nPackage format\n--------------\n\nThe Network Stack module contains the following components in APK format:\n\n- IP services\n- Captive portal login (`com.google.android.captiveportallogin`)\n\nThis module is accompanied by the Network Stack Permission Config module,\nwhich is a pre-installed APK file that defines the necessary permissions for the\nNetwork Stack components.\n\nDependencies\n------------\n\nThe Network Stack module depends on the following:\n\n- Privileged @hide methods in the system server (e.g., in\n `IConnectivityManager.aidl`). These APIs have been made `@SystemApi` and\n appropriately protected so that they are accessible to the Mainline module but\n not other privileged apps (e.g., using a new signature permission).\n\n- Binder IPCs to `netd` defined in\n [`INetd.aidl`](https://android.googlesource.com/platform/system/netd/+/android16-release/server/binder/android/net/INetd.aidl).\n This interface has been converted to stable AIDL and is subject to conformance\n tests."]]