নেটওয়ার্ক স্ট্যাক হলো একটি আপডেটেবল মেইনলাইন মডিউল, যা অ্যান্ড্রয়েডকে পরিবর্তনশীল নেটওয়ার্ক স্ট্যান্ডার্ডের সাথে খাপ খাইয়ে নিতে এবং নতুন ইমপ্লিমেন্টেশনগুলোর সাথে ইন্টারঅপারেবিলিটি নিশ্চিত করে। উদাহরণস্বরূপ, ক্যাপটিভ পোর্টাল ডিটেকশন এবং লগইন কোডের আপডেট অ্যান্ড্রয়েডকে পরিবর্তনশীল ক্যাপটিভ পোর্টাল মডেলগুলোর সাথে আপ-টু-ডেট থাকতে সাহায্য করে, এবং APF-এর আপডেট অ্যান্ড্রয়েডকে ওয়াই-ফাই-এ শক্তি সাশ্রয় করতে সহায়তা করে যখন নতুন ধরনের প্যাকেট সাধারণ হয়ে ওঠে।
অন্তর্ভুক্ত উপাদান
নেটওয়ার্ক স্ট্যাক মডিউলটিতে নিম্নলিখিত উপাদানগুলো রয়েছে। যে ডিভাইসগুলোতে এই মডিউলটি ব্যবহৃত হয়, সেগুলোতে এই পরিষেবাগুলোকে একটি ভিন্ন প্রসেসে স্থানান্তর করা হয়েছে এবং একটি স্থিতিশীল AIDL ইন্টারফেসের মাধ্যমে এগুলো অ্যাক্সেস করা হয়।
আইপি পরিষেবা।
IpClient(পূর্বেIpManager) হলো একটি কম্পোনেন্ট যা আইপি লেয়ারের প্রোভিশনিং এবং রক্ষণাবেক্ষণের দায়িত্বে থাকে। অ্যান্ড্রয়েড ৯-এ, এটি ব্লুটুথের মতো কম্পোনেন্ট দ্বারা ক্রস-প্রসেস এবং ওয়াই-ফাই-এর মতো কম্পোনেন্ট দ্বারা ইন-প্রসেস ব্যবহৃত হতো।DhcpClientডিএইচসিপি সার্ভার থেকে আইপি অ্যাড্রেস সংগ্রহ করে, যাতে সেগুলোকে ইন্টারফেসে বরাদ্দ করা যায়।নেটওয়ার্কমনিটর।
NetworkMonitorকম্পোনেন্টটি নতুন নেটওয়ার্কে সংযোগ করার সময় বা নেটওয়ার্ক ব্যর্থতার ক্ষেত্রে, ক্যাপটিভ পোর্টাল শনাক্ত করার সময় এবং নেটওয়ার্ক যাচাই করার সময় ইন্টারনেট সংযোগযোগ্যতা পরীক্ষা করে।ক্যাপটিভ পোর্টাল লগইন অ্যাপ। এটি একটি আগে থেকে ইনস্টল করা অ্যাপ যা ক্যাপটিভ পোর্টালে লগইন পরিচালনার দায়িত্বে থাকে। অ্যান্ড্রয়েড ৫.০ থেকে এটি একটি আলাদা অ্যাপ হলেও, এটি ব্যবহারকারীর কিছু সিদ্ধান্ত সিস্টেমে পাঠানোর জন্য
NetworkMonitorসাথে কাজ করে।
প্রভাবিত পথ
রিফ্যাক্টরের মাধ্যমে নেটওয়ার্ক স্ট্যাক মডিউলে স্থানান্তরিত পাথগুলো নিচে তালিকাভুক্ত করা হলো।
আইপি পরিষেবা।
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/NetworkStack , packages/modules/CaptivePortalLogin এবং আরও কিছু শেয়ার্ড লোকেশন। উপরের পাথগুলো মেইনলাইনের জন্য ফাইলগুলো স্থানান্তরিত করার আগের অবস্থানকে নির্দেশ করে। packages/modules/NetworkStack এবং packages/modules/CaptivePortalLogin এর ফাইলগুলো মেইনলাইন মডিউলের অংশ এবং এগুলো পরিবর্তন করা যাবে না।
প্যাকেজ ফরম্যাট
নেটওয়ার্ক স্ট্যাক মডিউলটিতে APK ফরম্যাটে নিম্নলিখিত উপাদানগুলো রয়েছে:
- আইপি পরিষেবা
- ক্যাপটিভ পোর্টাল লগইন (
com.google.android.captiveportallogin)
এই মডিউলটির সাথে নেটওয়ার্ক স্ট্যাক পারমিশন কনফিগ মডিউলটি থাকে, যা একটি আগে থেকে ইনস্টল করা APK ফাইল এবং এটি নেটওয়ার্ক স্ট্যাকের উপাদানগুলোর জন্য প্রয়োজনীয় পারমিশনগুলো নির্ধারণ করে।
নির্ভরশীলতা
নেটওয়ার্ক স্ট্যাক মডিউলটি নিম্নলিখিত বিষয়গুলোর উপর নির্ভর করে:
সিস্টেম সার্ভারে বিশেষাধিকারপ্রাপ্ত @hide মেথডসমূহ (যেমন,
IConnectivityManager.aidlএ)। এই API-গুলোকে@SystemApiকরা হয়েছে এবং যথাযথভাবে সুরক্ষিত করা হয়েছে, যাতে এগুলো মেইনলাইন মডিউলের জন্য অ্যাক্সেসযোগ্য হলেও অন্যান্য বিশেষাধিকারপ্রাপ্ত অ্যাপের জন্য নয় (যেমন, একটি নতুন সিগনেচার পারমিশন ব্যবহার করে)।INetd.aidlএnetdজন্য বাইন্ডার আইপিসি সংজ্ঞায়িত করা হয়েছে। এই ইন্টারফেসটি স্থিতিশীল AIDL-এ রূপান্তরিত হয়েছে এবং এটি সামঞ্জস্য পরীক্ষার অধীন।