AOSP আর্কিটেকচার

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

অ্যান্ড্রয়েড ওপেন সিস্টেম প্ল্যাটফর্ম (AOSP) সর্বজনীনভাবে উপলব্ধ এবং পরিবর্তনযোগ্য Android সোর্স কোড। যে কেউ তাদের ডিভাইসের জন্য AOSP ডাউনলোড এবং পরিবর্তন করতে পারে। AOSP অ্যান্ড্রয়েড মোবাইল প্ল্যাটফর্মের একটি সম্পূর্ণ এবং সম্পূর্ণ কার্যকরী বাস্তবায়ন প্রদান করে।

AOSP বাস্তবায়নকারী ডিভাইসগুলির জন্য সামঞ্জস্যের দুটি স্তর রয়েছে: AOSP সামঞ্জস্য এবং Android সামঞ্জস্যতা। একটি AOSP-সামঞ্জস্যপূর্ণ ডিভাইস অবশ্যই কম্প্যাটিবিলিটি ডেফিনিশন ডকুমেন্ট (CDD) এর প্রয়োজনীয়তার তালিকা মেনে চলতে হবে। একটি অ্যান্ড্রয়েড-সামঞ্জস্যপূর্ণ ডিভাইস অবশ্যই CDD এবং ভেন্ডর সফ্টওয়্যার প্রয়োজনীয়তা (VSR) এবং ভেন্ডর টেস্ট স্যুট (VTS) এবং Compatability Test Suite (CTS) এর মতো পরীক্ষাগুলির তালিকা মেনে চলতে হবে৷ অ্যান্ড্রয়েড সামঞ্জস্যের বিষয়ে আরও তথ্যের জন্য, অ্যান্ড্রয়েড সামঞ্জস্যতা প্রোগ্রাম দেখুন।

AOSP আর্কিটেকচার

AOSP-এর জন্য সফ্টওয়্যার স্ট্যাকে নিম্নলিখিত স্তরগুলি রয়েছে:

AOSP সফটওয়্যার স্ট্যাক আর্কিটেকচার
চিত্র 1. AOSP সফ্টওয়্যার স্ট্যাক আর্কিটেকচার।
  • অ্যান্ড্রয়েড অ্যাপ। শুধুমাত্র Android SDK-এর মধ্যে Android API ব্যবহার করে তৈরি করা একটি অ্যাপ। Google Play Store ব্যাপকভাবে অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি খুঁজে পেতে এবং ডাউনলোড করতে ব্যবহৃত হয়, যদিও অন্যান্য অনেক বিকল্প রয়েছে। কিছু ক্ষেত্রে, একটি ডিভাইস প্রস্তুতকারক ডিভাইসের মূল কার্যকারিতা সমর্থন করার জন্য একটি Android অ্যাপ পূর্ব-ইন্সটল করতে চাইতে পারে। আপনি যদি অ্যান্ড্রয়েড অ্যাপ তৈরি করতে আগ্রহী হন, তাহলে developers.android.com- এ যান।
  • বিশেষ সুবিধাপ্রাপ্ত অ্যাপ। অ্যান্ড্রয়েড এবং সিস্টেম API-এর সংমিশ্রণ ব্যবহার করে তৈরি একটি অ্যাপ। এই অ্যাপগুলিকে একটি ডিভাইসে প্রিভলেজড অ্যাপ হিসেবে আগে থেকে ইনস্টল করা থাকতে হবে।
  • ডিভাইস উত্পাদন অ্যাপ্লিকেশন। অ্যান্ড্রয়েড এপিআই, সিস্টেম এপিআই এবং অ্যান্ড্রয়েড ফ্রেমওয়ার্ক বাস্তবায়নে সরাসরি অ্যাক্সেসের সংমিশ্রণ ব্যবহার করে তৈরি একটি অ্যাপ। যেহেতু একটি ডিভাইস প্রস্তুতকারক Android ফ্রেমওয়ার্কের মধ্যে অস্থির APIগুলি সরাসরি অ্যাক্সেস করতে পারে, তাই এই অ্যাপগুলিকে অবশ্যই ডিভাইসে আগে থেকে ইনস্টল করতে হবে এবং ডিভাইসের সিস্টেম সফ্টওয়্যার আপডেট হলেই আপডেট করা যেতে পারে৷
  • অ্যান্ড্রয়েড ফ্রেমওয়ার্ক। জাভা ক্লাস, ইন্টারফেস এবং অন্যান্য প্রি-কম্পাইল করা কোডের একটি গ্রুপ যার উপর অ্যাপ তৈরি করা হয়। ফ্রেমওয়ার্কের অংশগুলি অ্যান্ড্রয়েড এসডিকে-এর অ্যান্ড্রয়েড এপিআই ব্যবহারের মাধ্যমে সর্বজনীনভাবে অ্যাক্সেসযোগ্য। ফ্রেমওয়ার্কের অন্যান্য অংশগুলি শুধুমাত্র Android SDK-এর সিস্টেম API ব্যবহার করে OEM-দের কাছে উপলব্ধ। অ্যান্ড্রয়েড ফ্রেমওয়ার্ক কোড একটি অ্যাপের প্রক্রিয়ার মধ্যে চলে।
  • অ্যান্ড্রয়েড এসডিকে। অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করে এমন অ্যাপ তৈরিতে ব্যবহারের জন্য একটি সফটওয়্যার ডেভেলপমেন্ট কিট। Android SDK-এর মধ্যে রয়েছে Android API, সমস্ত অ্যাপের জন্য উপলব্ধ, এবং সিস্টেম API, শুধুমাত্র সুবিধাপ্রাপ্ত অ্যাপগুলির জন্য উপলব্ধ৷ Android SDK-এর Android API সম্পর্কে আরও তথ্যের জন্য, developers.android.com- এ যান। মনে রাখবেন যে একটি Android নেটিভ ডেভেলপমেন্ট কিট (NDK) রয়েছে যা আপনাকে নেটিভ কোড ব্যবহার করে আপনার Android অ্যাপের অংশ লিখতে দেয়।
  • সিস্টেম পরিষেবা। সিস্টেম পরিষেবাগুলি হল মডুলার, ফোকাস করা উপাদান যেমন 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-এর একটি নির্দিষ্ট স্তর সম্পর্কে আরও জানতে চান, বাম নেভিগেশনে স্তরটির নাম ক্লিক করুন এবং সেই স্তরের জন্য ওভারভিউ দিয়ে শুরু করুন।