از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
پشته شبکه
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Network Stack یک ماژول Mainline قابل بهروزرسانی است که تضمین میکند اندروید میتواند با استانداردهای شبکه در حال تحول سازگار شود و امکان همکاری با پیادهسازیهای جدید را فراهم میکند. به عنوان مثال، بهروزرسانیهای شناسایی پورتال محصور و کد ورود به سیستم به اندروید اجازه میدهد تا با تغییر مدلهای پورتال محصور بهروز بماند، و بهروزرسانیهای APF به Android اجازه میدهد تا با رایج شدن انواع جدید بستهها، در مصرف برق Wi-Fi صرفهجویی کند.
اجزای شامل
ماژول Network Stack شامل اجزای زیر است. در دستگاههایی که از ماژول استفاده میکنند، این سرویسها به فرآیند دیگری منتقل شدند و از طریق یک رابط AIDL پایدار قابل دسترسی هستند.
خدمات IP IpClient
(قبلاً IpManager
) مؤلفه ای است که مسئول تأمین و نگهداری لایه IP است. در اندروید 9، قبلاً توسط مؤلفههایی مانند بلوتوث از پردازش متقاطع و مؤلفههایی مانند Wi-Fi در فرآیند استفاده میشد. DhcpClient
آدرس های IP را از سرورهای DHCP دریافت می کند تا بتوان آنها را به واسط ها اختصاص داد.
مانیتور شبکه. مؤلفه NetworkMonitor
دسترسی به اینترنت را هنگام اتصال به یک شبکه جدید یا در صورت خرابی شبکه، هنگام شناسایی پورتال های محصور و هنگام تأیید اعتبار شبکه ها آزمایش می کند.
برنامه ورود به پورتال اسیر. یک برنامه از پیش نصب شده که مسئول مدیریت ورود به سیستم در پورتال های محبوس است. این یک برنامه جداگانه از اندروید 5.0 بوده است، اما با NetworkMonitor
تعامل دارد تا برخی از انتخاب های کاربر را به سیستم ارسال کند.
مسیرهای تحت تاثیر
مسیرهایی که توسط Refactor به ماژول Network Stack منتقل شده اند در زیر فهرست شده اند.
مکان جدید کد منتقل شده در packages/modules/NetworkStack
، packages/modules/CaptivePortalLogin
و برخی مکان های مشترک دیگر است. مسیرهای بالا به محل فایلها قبل از انتقال به Mainline اشاره میکنند. فایلهای موجود در packages/modules/NetworkStack
و packages/modules/CaptivePortalLogin
بخشی از ماژول Mainline هستند و قابل تغییر نیستند.
ماژول Network Stack شامل اجزای زیر در قالب APK است:
- خدمات IP
- ورود به پورتال اسیر (
com.google.android.captiveportallogin
)
این ماژول با ماژول Network Stack Permission Config همراه است که یک فایل APK از پیش نصب شده است که مجوزهای لازم را برای اجزای Network Stack تعریف می کند.
وابستگی ها
ماژول Network Stack به موارد زیر بستگی دارد:
روشهای @hide دارای امتیاز در سرور سیستم (به عنوان مثال، در IConnectivityManager.aidl
). این APIها @SystemApi
ساخته شدهاند و بهطور مناسب محافظت شدهاند تا برای ماژول Mainline قابل دسترسی باشند، اما نه سایر برنامههای ممتاز (مثلاً با استفاده از مجوز امضای جدید).
اتصال IPC به netd
در INetd.aidl
تعریف شده است. این رابط به AIDL پایدار تبدیل شده است و تحت آزمایشات انطباق قرار دارد.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]