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