স্থাপত্য ওভারভিউ

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

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

AOSP স্থাপত্য

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

AOSP সফটওয়্যার স্ট্যাক আর্কিটেকচার।

চিত্র ১. AOSP সফটওয়্যার স্ট্যাকের স্থাপত্য।

চিত্র ১-এ ব্যবহৃত পরিভাষাগুলোর সংজ্ঞা নিচে দেওয়া হলো:

অ্যান্ড্রয়েড অ্যাপ
শুধুমাত্র অ্যান্ড্রয়েড এপিআই (API) ব্যবহার করে তৈরি একটি অ্যাপ। অ্যান্ড্রয়েড অ্যাপ খোঁজা এবং ডাউনলোড করার জন্য গুগল প্লে স্টোর বহুল ব্যবহৃত হয়, যদিও এর আরও অনেক বিকল্প রয়েছে। কিছু ক্ষেত্রে, কোনো ডিভাইস নির্মাতা ডিভাইসের মূল কার্যকারিতা সমর্থন করার জন্য একটি অ্যান্ড্রয়েড অ্যাপ আগে থেকেই ইনস্টল করে রাখতে চাইতে পারে। আপনি যদি অ্যান্ড্রয়েড অ্যাপ তৈরিতে আগ্রহী হন, তবে developers.android.com দেখুন।
বিশেষাধিকারপ্রাপ্ত অ্যাপ
অ্যান্ড্রয়েড এবং সিস্টেম এপিআই-এর সমন্বয়ে তৈরি একটি অ্যাপ। এই অ্যাপগুলো অবশ্যই ডিভাইসে প্রিভিলেজড অ্যাপ হিসেবে আগে থেকে ইনস্টল করা থাকতে হবে।
ডিভাইস প্রস্তুতকারকের অ্যাপ
অ্যান্ড্রয়েড এপিআই, সিস্টেম এপিআই এবং অ্যান্ড্রয়েড ফ্রেমওয়ার্ক ইমপ্লিমেন্টেশনে সরাসরি অ্যাক্সেসের সমন্বয়ে তৈরি একটি অ্যাপ। যেহেতু কোনো ডিভাইস নির্মাতা অ্যান্ড্রয়েড ফ্রেমওয়ার্কের মধ্যে থাকা অস্থিতিশীল এপিআইগুলো সরাসরি অ্যাক্সেস করতে পারে, তাই এই অ্যাপগুলো ডিভাইসে আগে থেকেই ইনস্টল করা আবশ্যক এবং শুধুমাত্র ডিভাইসের সিস্টেম সফটওয়্যার আপডেট করার সময়ই এগুলো আপডেট করা যায়।
সিস্টেম এপিআই
সিস্টেম এপিআই হলো সেইসব অ্যান্ড্রয়েড এপিআই যা শুধুমাত্র পার্টনার এবং ওইএম-দের জন্য বান্ডেল অ্যাপ্লিকেশনে অন্তর্ভুক্ত করার উদ্দেশ্যে উপলব্ধ। সোর্স কোডে এই এপিআইগুলোকে @SystemApi হিসেবে চিহ্নিত করা থাকে।
অ্যান্ড্রয়েড এপিআই
অ্যান্ড্রয়েড এপিআই হলো তৃতীয় পক্ষের অ্যান্ড্রয়েড অ্যাপ ডেভেলপারদের জন্য সর্বজনীনভাবে উপলব্ধ এপিআই। অ্যান্ড্রয়েড এপিআই সম্পর্কে তথ্যের জন্য, অ্যান্ড্রয়েড এপিআই রেফারেন্স দেখুন।
অ্যান্ড্রয়েড ফ্রেমওয়ার্ক
জাভা ক্লাস, ইন্টারফেস এবং অন্যান্য প্রি-কম্পাইলড কোডের একটি সমষ্টি, যার উপর ভিত্তি করে অ্যাপ তৈরি করা হয়। ফ্রেমওয়ার্কের কিছু অংশ অ্যান্ড্রয়েড এপিআই ব্যবহারের মাধ্যমে সর্বজনীনভাবে অ্যাক্সেসযোগ্য। ফ্রেমওয়ার্কের অন্যান্য অংশ শুধুমাত্র সিস্টেম এপিআই ব্যবহারের মাধ্যমে ওইএম-দের জন্য উপলব্ধ। অ্যান্ড্রয়েড ফ্রেমওয়ার্ক কোড একটি অ্যাপের প্রসেসের ভিতরে চলে।
সিস্টেম পরিষেবা
সিস্টেম সার্ভিসগুলো হলো মডিউলার ও সুনির্দিষ্ট উপাদান, যেমন system_server , SurfaceFlinger এবং MediaService। অ্যান্ড্রয়েড ফ্রেমওয়ার্ক এপিআই দ্বারা উন্মুক্ত কার্যকারিতা অন্তর্নিহিত হার্ডওয়্যার অ্যাক্সেস করার জন্য সিস্টেম সার্ভিসগুলোর সাথে যোগাযোগ করে।
অ্যান্ড্রয়েড রানটাইম (ART)
AOSP দ্বারা প্রদত্ত একটি জাভা রানটাইম এনভায়রনমেন্ট। ART অ্যাপের বাইটকোডকে প্রসেসর-নির্দিষ্ট নির্দেশাবলীতে অনুবাদ করে, যা ডিভাইসের রানটাইম এনভায়রনমেন্ট দ্বারা নির্বাহ করা হয়।
হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL)
HAL হলো একটি অ্যাবস্ট্রাকশন লেয়ার, যার একটি স্ট্যান্ডার্ড ইন্টারফেস রয়েছে যা হার্ডওয়্যার ভেন্ডররা ইমপ্লিমেন্ট করে। HAL অ্যান্ড্রয়েডকে নিম্ন-স্তরের ড্রাইভার ইমপ্লিমেন্টেশন সম্পর্কে অজ্ঞ থাকতে সাহায্য করে। HAL ব্যবহার করে আপনি উচ্চ-স্তরের সিস্টেমকে প্রভাবিত বা পরিবর্তন না করেই বিভিন্ন কার্যকারিতা ইমপ্লিমেন্ট করতে পারেন। আরও তথ্যের জন্য, HAL ওভারভিউ দেখুন।
নেটিভ ডেমন এবং লাইব্রেরি

এই স্তরের নেটিভ ডেমনগুলোর মধ্যে রয়েছে init , healthd , logd এবং storaged । এই ডেমনগুলো সরাসরি কার্নেল বা অন্যান্য ইন্টারফেসের সাথে যোগাযোগ করে এবং কোনো ইউজারস্পেস-ভিত্তিক HAL ইমপ্লিমেন্টেশনের উপর নির্ভর করে না।

এই স্তরের নেটিভ লাইব্রেরিগুলোর মধ্যে রয়েছে libc , liblog , libutils , libbinder এবং libselinux । এই নেটিভ লাইব্রেরিগুলো সরাসরি কার্নেল বা অন্যান্য ইন্টারফেসের সাথে যোগাযোগ করে এবং কোনো ইউজারস্পেস-ভিত্তিক HAL ইমপ্লিমেন্টেশনের উপর নির্ভর করে না।

কার্নেল

কার্নেল হলো যেকোনো অপারেটিং সিস্টেমের কেন্দ্রীয় অংশ এবং এটি ডিভাইসের অন্তর্নিহিত হার্ডওয়্যারের সাথে যোগাযোগ করে। যেখানে সম্ভব, AOSP কার্নেলকে হার্ডওয়্যার-নিরপেক্ষ মডিউল এবং বিক্রেতা-নির্দিষ্ট মডিউলে বিভক্ত করা হয়। AOSP কার্নেলের উপাদানগুলোর সংজ্ঞাসহ বিবরণের জন্য, কার্নেল ওভারভিউ দেখুন।

এরপর কী?

  • আপনি যদি AOSP-তে নতুন হন এবং ডেভেলপমেন্ট শুরু করতে চান, তাহলে "Get started" বিভাগটি দেখুন।
  • আপনি যদি AOSP-এর কোনো নির্দিষ্ট লেয়ার সম্পর্কে আরও জানতে চান, তাহলে বাম দিকের নেভিগেশনে সেকশনটির নামে ক্লিক করুন এবং সেই সেকশনটির ওভারভিউ দিয়ে শুরু করুন।