Android ওপেন সোর্স প্রোজেক্ট (AOSP) হল সর্বজনীনভাবে উপলভ্য এবং পরিবর্তনযোগ্য Android সোর্স কোড। যেকোনও ব্যক্তি তার ডিভাইসের জন্য AOSP ডাউনলোড ও পরিবর্তন করতে পারবেন। AOSP Android মোবাইল প্ল্যাটফর্মের সম্পূর্ণ ও সম্পূর্ণ কার্যকরী প্রয়োগ প্রদান করে।
AOSP প্রয়োগকারী ডিভাইসের জন্য দুই লেভেলের কম্প্যাটিবিলিটি আছে: AOSP কম্প্যাটিবিলিটি এবং Android কম্প্যাটিবিলিটি। AOSP-এর সাথে মানানসই ডিভাইসকে অবশ্যই মানানসই হওয়ার সংজ্ঞা সংক্রান্ত ডকুমেন্ট (CDD)-এ প্রদত্ত প্রয়োজনীয়তার তালিকা মেনে চলতে হবে। কোনও Android-এর সাথে মানানসই ডিভাইসকে CDD ও ভেন্ডর সফ্টওয়্যার সংক্রান্ত প্রয়োজনীয়তা (VSR) এবং ভেন্ডর টেস্ট স্যুট (VTS) ও কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS)-এর মতো টেস্টের প্রয়োজনীয়তা মেনে চলতে হবে। Android কম্প্যাটিবিলিটি সম্পর্কে আরও জানতে, Android কম্প্যাটিবিলিটি প্রোগ্রাম দেখুন।
AOSP আর্কিটেকচার
AOSP-এর জন্য সফ্টওয়্যার স্ট্যাকে নিম্নলিখিত লেয়ারগুলি রয়েছে:
ছবি ১. AOSP সফ্টওয়্যার স্ট্যাক আর্কিটেকচার।
১ নম্বর ছবিতে ব্যবহৃত শব্দগুলির সংজ্ঞা নিচে দেওয়া হল:
- Android অ্যাপ
- শুধুমাত্র Android API ব্যবহার করে তৈরি করা অ্যাপ। Android অ্যাপ খুঁজে পেতে ও ডাউনলোড করতে Google Play Store ব্যাপকভাবে ব্যবহার করা হয়, যদিও এর অনেক বিকল্প আছে। কিছু ক্ষেত্রে, ডিভাইস প্রস্তুতকারক ডিভাইসের মূল কার্যকারিতা সাপোর্ট করার জন্য Android অ্যাপ আগে থেকেই ইনস্টল করতে চাইতে পারেন। আপনি Android অ্যাপ ডেভেলপ করতে আগ্রহী হলে, developers.android.com দেখুন।
- বিশেষ অধিকারপ্রাপ্ত অ্যাপ
- Android ও সিস্টেম API-এর কম্বিনেশন ব্যবহার করে তৈরি করা অ্যাপ। এইসব অ্যাপ কোনও ডিভাইসে প্রিভিলেজড অ্যাপ হিসেবে আগে থেকেই ইনস্টল করা থাকতে হবে।
- ডিভাইস প্রস্তুতকারী অ্যাপ
- Android API, সিস্টেম API এবং Android ফ্রেমওয়ার্ক ইমপ্লিমেন্টেশনে সরাসরি অ্যাক্সেস ব্যবহার করে তৈরি করা অ্যাপ। কারণ, ডিভাইস প্রস্তুতকারী Android ফ্রেমওয়ার্কের মধ্যে থাকা অস্থির API সরাসরি অ্যাক্সেস করতে পারে, এইসব অ্যাপ ডিভাইসে আগে থেকেই ইনস্টল করা থাকতে হবে এবং ডিভাইসের সিস্টেম সফ্টওয়্যার আপডেট করা হলেই শুধুমাত্র আপডেট করা যাবে।
- সিস্টেম API
- বান্ডেল করা অ্যাপ্লিকেশনে অন্তর্ভুক্ত করার জন্য সিস্টেম API শুধুমাত্র পার্টনার ও OEM-এর জন্য উপলভ্য Android API-কে উপস্থাপন করে। এইসব API সোর্স কোডে @SystemApi হিসেবে চিহ্নিত করা আছে।
- Android API
- Android API হল থার্ড-পার্টি Android অ্যাপ ডেভেলপারদের জন্য সর্বজনীনভাবে উপলভ্য API। Android API সম্পর্কে তথ্য পেতে, Android API রেফারেন্স দেখুন।
- Android ফ্রেমওয়ার্ক
- Java ক্লাস, ইন্টারফেস ও অন্যান্য প্রি-কম্পাইল করা কোডের একটি গ্রুপ যার উপর ভিত্তি করে অ্যাপ তৈরি করা হয়। Android API ব্যবহারের মাধ্যমে ফ্রেমওয়ার্কের কিছু অংশ সর্বজনীনভাবে অ্যাক্সেস করা যায়। ফ্রেমওয়ার্কের অন্যান্য অংশ শুধুমাত্র OEM-এর জন্য সিস্টেম API ব্যবহারের মাধ্যমে উপলভ্য। Android ফ্রেমওয়ার্ক কোড অ্যাপের প্রসেসের মধ্যে রান করে।
- সিস্টেম সার্ভিস
- সিস্টেম সার্ভিস হল মডিউলার, ফোকাস করা কম্পোনেন্ট যেমন
system_server, SurfaceFlinger এবং MediaService। Android ফ্রেমওয়ার্ক API-এর মাধ্যমে প্রকাশিত কার্যকারিতা আন্ডারলাইং হার্ডওয়্যার অ্যাক্সেস করার জন্য সিস্টেম পরিষেবার সাথে যোগাযোগ করে। - Android রানটাইম (ART)
- AOSP-এর প্রদান করা একটি Java রানটাইম এনভায়রনমেন্ট। ART, অ্যাপের বাইটকোডকে প্রসেসর-নির্দিষ্ট নির্দেশাবলীতে ট্রান্সলেট করে যা ডিভাইসের রানটাইম এনভায়রনমেন্ট দ্বারা এক্সিকিউট করা হয়।
- হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL)
- HAL হল হার্ডওয়্যার ভেন্ডরদের জন্য স্ট্যান্ডার্ড ইন্টারফেস সহ একটি অ্যাবস্ট্রাকশন লেয়ার যা তারা প্রয়োগ করতে পারে। HAL-এর মাধ্যমে Android-কে লোয়ার-লেভেল ড্রাইভার ইমপ্লিমেন্টেশন সম্পর্কে অজ্ঞাত রাখা যায়। HAL ব্যবহার করলে, উচ্চতর লেভেলের সিস্টেমকে প্রভাবিত বা পরিবর্তন না করেই আপনি কার্যকারিতা প্রয়োগ করতে পারবেন। আরও তথ্যের জন্য, HAL ওভারভিউ দেখুন।
- নেটিভ ডেমন ও লাইব্রেরি
এই লেয়ারে নেটিভ ডেমনের মধ্যে
init,healthd,logdএবংstoragedঅন্তর্ভুক্ত। এইসব ডেমনের কার্নেল বা অন্যান্য ইন্টারফেসের সাথে সরাসরি ইন্টার্যাক্ট করে এবং ইউজারস্পেস-ভিত্তিক HAL প্রয়োগের উপর নির্ভর করে না।এই লেয়ারের নেটিভ লাইব্রেরির মধ্যে
libc,liblog,libutils,libbinderএবংlibselinuxঅন্তর্ভুক্ত। এই নেটিভ লাইব্রেরিগুলি কার্নেল বা অন্যান্য ইন্টারফেসের সাথে সরাসরি ইন্টার্যাক্ট করে এবং ব্যবহারকারীর স্পেস-ভিত্তিক HAL ইমপ্লিমেন্টেশনের উপর নির্ভর করে না।- কার্নেল
কার্নেল হল যেকোনও অপারেটিং সিস্টেমের কেন্দ্রীয় অংশ এবং এটি ডিভাইসের অন্তর্নিহিত হার্ডওয়্যারের সাথে যোগাযোগ করে। যেখানে সম্ভব, AOSP কার্নেলকে হার্ডওয়্যার-অ্যাগনস্টিক মডিউল এবং ভেন্ডর-নির্দিষ্ট মডিউলে ভাগ করা হয়। AOSP কার্নেল কম্পোনেন্ট সম্পর্কে বিবরণ, সংজ্ঞা সহ জানতে, কার্নেল ওভারভিউ দেখুন।
এর পরে কী হবে?
- আপনি যদি AOSP-তে নতুন হন এবং ডেভেলপমেন্ট শুরু করতে চান, তাহলে শুরু করুন বিভাগ দেখুন।
- আপনি যদি AOSP-এর কোনও নির্দিষ্ট লেয়ার সম্পর্কে আরও জানতে চান, তাহলে বাঁদিকের নেভিগেশনে সেই বিভাগের নামে ক্লিক করুন এবং সেই বিভাগের ওভারভিউ থেকে শুরু করুন।