অ্যান্ড্রয়েড আর্কিটেকচার

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

অ্যান্ড্রয়েড সিস্টেম আর্কিটেকচারে নিম্নলিখিত উপাদানগুলি রয়েছে:

অ্যান্ড্রয়েড সিস্টেম আর্কিটেকচারের ওভারভিউ
চিত্র 1. অ্যান্ড্রয়েড সিস্টেম আর্কিটেকচার
  • অ্যাপ্লিকেশন ফ্রেমওয়ার্ক । অ্যাপ্লিকেশন ফ্রেমওয়ার্কটি প্রায়শই অ্যাপ্লিকেশন বিকাশকারীরা ব্যবহার করে। একজন হার্ডওয়্যার ডেভেলপার হিসেবে, আপনার ডেভেলপার এপিআই সম্পর্কে সচেতন হওয়া উচিত যতগুলো ম্যাপ সরাসরি অন্তর্নিহিত HAL ইন্টারফেসে আছে এবং ড্রাইভার বাস্তবায়নের বিষয়ে সহায়ক তথ্য প্রদান করতে পারে।
  • বাইন্ডার আইপিসি । বাইন্ডার ইন্টার-প্রসেস কমিউনিকেশন (IPC) মেকানিজম অ্যাপ্লিকেশন ফ্রেমওয়ার্ককে প্রক্রিয়ার সীমানা অতিক্রম করতে এবং অ্যান্ড্রয়েড সিস্টেম পরিষেবা কোডে কল করার অনুমতি দেয়। এটি হাই লেভেল ফ্রেমওয়ার্ক API গুলিকে Android সিস্টেম পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে৷ অ্যাপ্লিকেশন ফ্রেমওয়ার্ক স্তরে, এই যোগাযোগ বিকাশকারীর কাছ থেকে লুকানো হয় এবং জিনিসগুলি "শুধু কাজ" বলে মনে হয়৷
  • সিস্টেম পরিষেবা । সিস্টেম পরিষেবাগুলি হল মডুলার, ফোকাসড উপাদান যেমন উইন্ডো ম্যানেজার, সার্চ সার্ভিস, বা নোটিফিকেশন ম্যানেজার। অ্যাপ্লিকেশন ফ্রেমওয়ার্ক API দ্বারা উন্মুক্ত কার্যকারিতা অন্তর্নিহিত হার্ডওয়্যার অ্যাক্সেস করতে সিস্টেম পরিষেবাগুলির সাথে যোগাযোগ করে। অ্যান্ড্রয়েডে দুটি গ্রুপের পরিষেবা রয়েছে: সিস্টেম (যেমন উইন্ডো ম্যানেজার এবং নোটিফিকেশন ম্যানেজার) এবং মিডিয়া (মিডিয়া প্লে এবং রেকর্ডিং এর সাথে জড়িত পরিষেবা)।
  • হার্ডওয়্যার বিমূর্তকরণ স্তর (HAL) । একটি HAL হার্ডওয়্যার বিক্রেতাদের বাস্তবায়নের জন্য একটি আদর্শ ইন্টারফেস সংজ্ঞায়িত করে, যা অ্যান্ড্রয়েডকে নিম্ন-স্তরের ড্রাইভার বাস্তবায়ন সম্পর্কে অজ্ঞেয় হতে সক্ষম করে। HAL ব্যবহার করলে আপনি উচ্চ স্তরের সিস্টেমকে প্রভাবিত বা পরিবর্তন না করে কার্যকারিতা বাস্তবায়ন করতে পারবেন। HAL বাস্তবায়ন মডিউলগুলিতে প্যাকেজ করা হয় এবং উপযুক্ত সময়ে Android সিস্টেম দ্বারা লোড করা হয়। বিস্তারিত জানার জন্য, হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) দেখুন।
  • লিনাক্স কার্নেল । আপনার ডিভাইস ড্রাইভারগুলি বিকাশ করা একটি সাধারণ লিনাক্স ডিভাইস ড্রাইভার বিকাশের অনুরূপ। অ্যান্ড্রয়েড কিছু বিশেষ সংযোজন সহ লিনাক্স কার্নেলের একটি সংস্করণ ব্যবহার করে যেমন লো মেমরি কিলার (একটি মেমরি ম্যানেজমেন্ট সিস্টেম যা মেমরি সংরক্ষণে আরও আক্রমণাত্মক), ওয়েক লক (একটি PowerManager সিস্টেম পরিষেবা), বাইন্ডার আইপিসি ড্রাইভার এবং অন্যান্য গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি একটি মোবাইল এমবেডেড প্ল্যাটফর্মের জন্য। এই সংযোজনগুলি প্রাথমিকভাবে সিস্টেম কার্যকারিতার জন্য এবং ড্রাইভারের বিকাশকে প্রভাবিত করে না। আপনি কার্নেলের যেকোনো সংস্করণ ব্যবহার করতে পারেন যতক্ষণ না এটি প্রয়োজনীয় বৈশিষ্ট্যগুলি সমর্থন করে (যেমন বাইন্ডার ড্রাইভার)। যাইহোক, আমরা Android কার্নেলের সর্বশেষ সংস্করণ ব্যবহার করার পরামর্শ দিই। বিস্তারিত জানার জন্য, বিল্ডিং কার্নেল দেখুন।

HAL ইন্টারফেস সংজ্ঞা ভাষা (AIDL/HIDL)

অ্যান্ড্রয়েড 8.0 অ্যান্ড্রয়েড ওএস ফ্রেমওয়ার্ক ( ট্রেবল নামে পরিচিত একটি প্রজেক্টে) পুনরায় আর্কিটেক্ট করেছে যাতে নির্মাতাদের জন্য অ্যান্ড্রয়েডের একটি নতুন সংস্করণে ডিভাইস আপডেট করা সহজ, দ্রুত এবং কম ব্যয়বহুল হয়। এই নতুন আর্কিটেকচারে, HAL ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (HIDL, উচ্চারিত "hide-l") HAL এবং এর ব্যবহারকারীদের মধ্যে ইন্টারফেস নির্দিষ্ট করে, HAL-কে পুনর্নির্মাণ না করেই Android ফ্রেমওয়ার্ক প্রতিস্থাপন করতে সক্ষম করে। অ্যান্ড্রয়েড 10-এ, এইচআইডিএল বৈশিষ্ট্যগুলি এআইডিএল-এ অন্তর্ভুক্ত করা হয়েছিল। তারপর থেকে, HIDL অবচয় এবং শুধুমাত্র সাবসিস্টেমের দ্বারা ব্যবহৃত হয় যেগুলি এখনও AIDL-এ রূপান্তরিত হয়নি।

Treble একটি নতুন বিক্রেতা ইন্টারফেসের মাধ্যমে Android OS ফ্রেমওয়ার্ক থেকে বিক্রেতা বাস্তবায়ন (ডিভাইস-নির্দিষ্ট, সিলিকন নির্মাতাদের দ্বারা লিখিত নিম্ন-স্তরের সফ্টওয়্যার) আলাদা করে। বিক্রেতারা বা SOC নির্মাতারা একবার HAL তৈরি করে এবং সেগুলিকে ডিভাইসে একটি /vendor পার্টিশনে রাখে; ফ্রেমওয়ার্ক, তার নিজস্ব পার্টিশনে, HAL-কে পুনরায় কম্পাইল না করেই একটি ওভার-দ্য-এয়ার (OTA) আপডেট দিয়ে প্রতিস্থাপন করা যেতে পারে।

লিগ্যাসি অ্যান্ড্রয়েড আর্কিটেকচার এবং বর্তমান, IDL-ভিত্তিক আর্কিটেকচারের মধ্যে পার্থক্য হল ভেন্ডর ইন্টারফেসের ব্যবহারে:

  • অ্যান্ড্রয়েড 7.x এবং তার আগে, কোনও আনুষ্ঠানিক বিক্রেতা ইন্টারফেস বিদ্যমান নেই, তাই ডিভাইস নির্মাতাদের অবশ্যই Android কোডের বড় অংশ আপডেট করতে হবে একটি ডিভাইসকে Android এর একটি নতুন সংস্করণে সরানোর জন্য:

    চিত্র 2. লিগ্যাসি অ্যান্ড্রয়েড আপডেট পরিবেশ
  • অ্যান্ড্রয়েড 8.0 এবং উচ্চতর সংস্করণে, একটি নতুন স্থিতিশীল বিক্রেতা ইন্টারফেস অ্যান্ড্রয়েডের হার্ডওয়্যার-নির্দিষ্ট অংশগুলিতে অ্যাক্সেস সরবরাহ করে, তাই ডিভাইস নির্মাতারা সিলিকন নির্মাতাদের অতিরিক্ত কাজ ছাড়াই কেবল Android OS ফ্রেমওয়ার্ক আপডেট করার মাধ্যমে নতুন অ্যান্ড্রয়েড রিলিজ সরবরাহ করতে পারে:

    চিত্র 3. বর্তমান অ্যান্ড্রয়েড আপডেট পরিবেশ

অ্যান্ড্রয়েড 8.0 এবং উচ্চতর সহ লঞ্চ হওয়া সমস্ত নতুন ডিভাইস নতুন আর্কিটেকচারের সুবিধা নিতে পারে। বিক্রেতা বাস্তবায়নের ফরোয়ার্ড সামঞ্জস্য নিশ্চিত করার জন্য, ভেন্ডর ইন্টারফেস ভেন্ডর টেস্ট স্যুট (VTS) দ্বারা যাচাই করা হয়, যা সামঞ্জস্য পরীক্ষা স্যুট (CTS) এর সাথে সাদৃশ্যপূর্ণ। আপনি লিগ্যাসি এবং বর্তমান অ্যান্ড্রয়েড আর্কিটেকচার উভয় ক্ষেত্রে HAL এবং OS কার্নেল পরীক্ষা স্বয়ংক্রিয় করতে VTS ব্যবহার করতে পারেন।

স্থাপত্য সম্পদ

অ্যান্ড্রয়েড আর্কিটেকচারের বিশদ বিবরণের জন্য, নিম্নলিখিত বিভাগগুলি দেখুন:

  • HAL প্রকার । বাইন্ডারাইজড, পাসথ্রু, সেম-প্রসেস (এসপি), এবং লিগ্যাসি HALs বর্ণনা করে।
  • এআইডিএল । এআইডিএল সম্পর্কে ডকুমেন্টেশন, এটি সাধারণত বা HAL ইন্টারফেস হিসাবে ব্যবহৃত হয়।
  • এইচআইডিএল (সাধারণ) । একটি HAL এবং এর ব্যবহারকারীদের মধ্যে ইন্টারফেস সম্পর্কে সাধারণ তথ্য রয়েছে।
  • HIDL (C++) । HIDL ইন্টারফেসের C++ বাস্তবায়নের জন্য বিশদ বিবরণ রয়েছে।
  • এইচআইডিএল (জাভা) । HIDL ইন্টারফেসের জন্য জাভা ফ্রন্টএন্ড সম্পর্কে বিশদ বিবরণ রয়েছে।
  • কনফিগস্টোর HAL । অ্যান্ড্রয়েড ফ্রেমওয়ার্ক কনফিগার করতে ব্যবহৃত শুধুমাত্র-পঠন কনফিগারেশন আইটেমগুলি অ্যাক্সেস করার জন্য APIগুলি বর্ণনা করে৷
  • ডিভাইস ট্রি ওভারলে । Android-এ ডিভাইস ট্রি ওভারলে (DTOs) ব্যবহার করার বিষয়ে বিশদ প্রদান করে।
  • ভেন্ডর নেটিভ ডেভেলপমেন্ট কিট (VNDK) । বিক্রেতা HALs বাস্তবায়নের জন্য বিক্রেতা-এক্সক্লুসিভ লাইব্রেরির সেট বর্ণনা করে।
  • ভেন্ডর ইন্টারফেস অবজেক্ট (VINTF) । বস্তুগুলি বর্ণনা করে যা একটি ডিভাইস সম্পর্কে প্রাসঙ্গিক তথ্য একত্রিত করে এবং একটি অনুসন্ধানযোগ্য API এর মাধ্যমে সেই তথ্য উপলব্ধ করে৷
  • Android 8.0 এর জন্য SELinux । SELinux পরিবর্তন এবং কাস্টমাইজেশনের বিবরণ।

এই সাইটে সংস্থান ছাড়াও, ট্রেবল টিমের সদস্যরা প্রকাশ করেছে ট্রেবল: বিশ্বব্যাপী বিতরণ করা স্টেকহোল্ডারদের একটি সক্রিয় সফ্টওয়্যার ইকোসিস্টেমে একটি ভারসাম্য তৈরি করে দ্রুত সফ্টওয়্যার আপডেট । কাগজটি ACM সদস্যদের জন্য বিনামূল্যে এবং অ-সদস্যরা বিমূর্তটি কিনতে বা পড়তে পারেন।